odds_ratio#
- scipy.stats.contingency.odds_ratio(table, *, kind='conditional')[source]#
计算 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. (参见第 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)。
有关更详细的示例,请参见 列联表的比值比。