odds_ratio#
- scipy.stats.contingency.odds_ratio(table, *, kind='conditional')[原始碼]#
計算 2x2 列聯表的勝算比。
- 參數:
- tablearray_like of ints
一個 2x2 列聯表。元素必須是非負整數。
- kindstr, optional
要計算哪種勝算比,可以是樣本勝算比(
kind='sample'
)或條件勝算比(kind='conditional'
)。預設值為'conditional'
。
- 回傳值:
- result
OddsRatioResult
實例 回傳的物件有兩個計算出的屬性
- statisticfloat
如果 kind 為
'sample'
,這是樣本(或無條件)估計值,由table[0, 0]*table[1, 1]/(table[0, 1]*table[1, 0])
給出。如果 kind 為
'conditional'
,這是勝算比的條件最大概似估計值。它是 Fisher 非中心超幾何分佈的非中心性參數,具有與 table 相同的超幾何參數,且其平均值為table[0, 0]
。
該物件具有方法 confidence_interval,用於計算勝算比的信賴區間。
- result
另請參閱
註解
費雪 (Fisher) 討論過條件勝算比(請參閱 [1] 的「範例 1」)。涵蓋勝算比的文本包括 [2] 和 [3]。
在 1.10.0 版本中新增。
參考文獻
[1]R. A. Fisher (1935), The logic of inductive inference, Journal of the Royal Statistical Society, Vol. 98, No. 1, pp. 39-82.
[2]Breslow NE, Day NE (1980). Statistical methods in cancer research. Volume I - The analysis of case-control studies. IARC Sci Publ. (32):5-338. PMID: 7216345. (See section 4.2.)
[3]H. Sahai and A. Khurshid (1996), Statistics in Epidemiology: Methods, Techniques, and Applications, CRC Press LLC, Boca Raton, Florida.
範例
在流行病學中,個體被分類為「暴露」或「未暴露」於某些因子或治療。如果正在研究某種疾病的發生,則患有該疾病的人通常被分類為「病例」,而未患病的人則被分類為「非病例」。這些類別的發生次數計數給出了一個列聯表
exposed unexposed cases a b noncases c d
樣本勝算比可以寫成
(a/c) / (b/d)
。a/c
可以解釋為暴露組中發生病例的勝算,而b/d
可以解釋為未暴露組中發生病例的勝算。樣本勝算比是這些勝算的比率。如果勝算比大於 1,則表示暴露與成為病例之間存在正相關。交換列聯表的行或列會反轉勝算比,因此在解釋勝算比時,務必理解給定表格的行和列標籤的含義。
考慮一個假設的例子,假設暴露於某種化學物質與某種疾病的發生率增加有關。假設我們有以下包含 410 人的表格
exposed unexposed cases 7 15 noncases 58 472
我們提出的問題是「暴露於該化學物質是否與疾病風險增加有關?」
計算勝算比
>>> from scipy.stats.contingency import odds_ratio >>> res = odds_ratio([[7, 15], [58, 472]]) >>> res.statistic 3.7836687705553493
對於此樣本,已暴露於該化學物質的人罹患該疾病的勝算,幾乎是未暴露於該化學物質的人的 3.8 倍。
我們可以計算勝算比的 95% 信賴區間
>>> res.confidence_interval(confidence_level=0.95) ConfidenceInterval(low=1.2514829132266785, high=10.363493716701269)
條件勝算比的 95% 信賴區間大約為 (1.25, 10.4)。
如需更詳細的範例,請參閱 列聯表的勝算比。