优势比#
- 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'
,则这是优势比的条件最大似然估计。它是具有与 table 相同超几何参数的 Fisher 非中心超几何分布的非中心参数,其平均值为table[0, 0]
。
该对象具有方法 confidence_interval,它计算优势比的置信区间。
- result
注释
条件优势比由 Fisher 讨论(参见 [1] 中的“示例 1”)。涵盖优势比的文本包括 [2] 和 [3]。
在 1.10.0 版本中添加。
参考资料
[1]R. A. Fisher (1935),归纳推理的逻辑,皇家统计学会杂志,第 98 卷,第 1 号,第 39-82 页。
[2]Breslow NE, Day NE (1980)。癌症研究中的统计方法。第一卷 - 病例对照研究的分析。IARC Sci Publ. (32):5-338. PMID: 7216345。 (参见第 4.2 节。)
[3]H. Sahai 和 A. Khurshid (1996),流行病学中的统计学:方法、技术和应用,CRC Press LLC,佛罗里达州博卡拉顿。
[4]Berger, Jeffrey S. 等人。“阿司匹林预防女性和男性心血管事件:随机对照试验的性别特异性荟萃分析。” JAMA, 295(3):306-313, DOI:10.1001/jama.295.3.306, 2006。
示例
在流行病学中,个体被归类为“暴露”或“未暴露”于某个因素或治疗。如果正在研究某种疾病的发生,则患病者通常被归类为“病例”,而未患病者被归类为“非病例”。这些类别发生情况的计数给出了列联表
exposed unexposed cases a b noncases c d
样本优势比可以写成
(a/c) / (b/d)
。a/c
可以解释为暴露组中发生病例的几率,而b/d
可以解释为未暴露组中发生病例的几率。样本优势比是这些几率的比率。如果优势比大于 1,则表明暴露与病例之间存在正相关关系。交换列联表的行或列会反转优势比,因此在解释优势比时,重要的是要理解赋予表行和列的标签的含义。
在 [4] 中,研究了使用阿司匹林预防女性和男性心血管事件。该研究得出以下结论
……阿司匹林疗法通过降低女性缺血性卒中的风险,降低了心血管事件复合终点的风险……
这篇文章列出了各种心血管事件的研究。让我们关注女性的缺血性卒中。
下表总结了参与者定期服用阿司匹林或安慰剂多年的实验结果。记录了缺血性卒中的病例
Aspirin Control/Placebo Ischemic stroke 176 230 No stroke 21035 21018
我们要问的问题是“是否有证据表明阿司匹林可以降低缺血性卒中的风险?”
计算优势比
>>> from scipy.stats.contingency import odds_ratio >>> res = odds_ratio([[176, 230], [21035, 21018]]) >>> res.statistic 0.7646037659999126
对于这个样本,服用阿司匹林者发生缺血性卒中的几率是服用安慰剂者的 0.76 倍。
为了对所研究的人群进行统计推断,我们可以计算优势比的 95% 置信区间
>>> res.confidence_interval(confidence_level=0.95) ConfidenceInterval(low=0.6241234078749812, high=0.9354102892100372)
条件优势比的 95% 置信区间约为 (0.62, 0.94)。
整个 95% 置信区间都低于 1 的事实支持了作者的结论,即阿司匹林与缺血性卒中的统计学显著降低有关。