当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy contingency.odds_ratio用法及代码示例


本文简要介绍 python 语言中 scipy.stats.contingency.odds_ratio 的用法。

用法:

scipy.stats.contingency.odds_ratio(table, *, kind='conditional')#

计算 2x2 列联表的优势比。

参数

table 数组 整数

一个 2x2 列联表。元素必须是非负整数。

kind str,可选

要计算哪种优势比,样本优势比 (kind='sample') 或条件优势比 (kind='conditional')。默认为 'conditional'

返回

result OddsRatioResult 实例

返回的对象有两个计算属性:

统计 浮点数
  • 如果种类'sample',这是样本(或无条件)估计,由下式给出table[0, 0]*table[1, 1]/(table[0, 1]*table[1, 0]).

  • 如果种类'conditional',这是优势比的条件最大似然估计。它是费舍尔非中心超几何分布的非中心参数,其超几何参数与表格其均值是table[0, 0].

该对象具有计算优势比置信区间的方法confidence_interval。

注意

Fisher 讨论了条件比值比(参见 [1] 的“示例 1”)。涵盖优势比的文本包括 [2] 和 [3]。

参考

[1]

R. A. Fisher (1935),归纳推理的逻辑,皇家统计学会杂志,卷。 98,第 1 期,第 39-82 页。

[2]

布雷斯洛 NE,戴 NE (1980)。在癌症研究中的统计方法。第一卷 - case-control 研究分析。 IARC 科学出版物。 (32):5-338。 PMID:7216345。(参见第 4.2 节。)

[3]

H. Sahai 和 A. Khurshid (1996),《流行病学统计:方法、技术和应用》,CRC Press LLC,佛罗里达州博卡拉顿。

[4]

杰弗里·S·伯杰等人。 “阿司匹林用于女性和男性心血管事件的一级预防:Sex-Specific Meta-analysis 随机对照试验。” 《美国医学会杂志》,295(3):306-313,DOI:10.1001/jama.295.3.306,2006 年。

例子

在流行病学中,根据某些因子或治疗方法,个体被分类为“exposed”或“unexposed”。如果研究某种疾病的发生,则患有这种疾病的人通常被归类为“cases”,而没有这种疾病的人被归类为“noncases”。这些类出现的次数给出了一个列联表:

exposed    unexposed
cases          a           b
noncases       c           d

样本优势比可以写为 (a/c) / (b/d)a/c可以解释为在暴露组中发生病例的几率,而b/d可以解释为在未暴露组中发生病例的几率。样本优势比是这些优势的比值。如果优势比大于 1,则表明暴露与成为病例之间存在正相关关系。

交换列联表的行或列会反转优势比,因此在解释优势比时了解表的行和列的标签含义非常重要。

在[4]中,研究了使用阿司匹林预防女性和男性心血管事件的情况。该研究特别得出结论:

…aspirin therapy reduced the risk of a composite of cardiovascular events due to its effect on reducing the risk of ischemic stroke in women […]

文章列出了各种心血管事件的研究。让我们关注女性缺血性中风。

下表总结了参与者多年来定期服用阿司匹林或安慰剂的实验结果。记录了缺血性中风病例:

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 这一事实支持了作者的结论,即阿司匹林与统计学上显著减少缺血性中风有关。

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.contingency.odds_ratio。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。