scipy.stats.contingency.

relative_risk#

scipy.stats.contingency.relative_risk(exposed_cases, exposed_total, control_cases, control_total)[源代码]#

计算相对风险(也称为风险比)。

此函数计算与 2x2 列联表相关的相对风险([1], 第 2.2.3 节;[2], 第 3.1.2 节)。 它不是接受一个表作为参数,而是将用于计算相对风险的各个数字作为单独的参数给出。这是为了避免列联表的哪一行或哪一列对应于“暴露”病例,哪一行或哪一列对应于“对照”病例的歧义。与例如优势比不同,相对风险在行或列的互换下不是不变的。

参数:
exposed_cases非负整数

在“暴露”个体样本中,“病例”(即疾病或其他感兴趣事件的发生)的数量。

exposed_total正整数

样本中“暴露”个体的总数。

control_cases非负整数

在“对照”或未暴露个体样本中,“病例”的数量。

control_total正整数

样本中“对照”个体的总数。

返回:
resultRelativeRiskResult 的实例

该对象具有浮点属性 relative_risk,它是

rr = (exposed_cases/exposed_total) / (control_cases/control_total)

该对象还具有方法 confidence_interval,用于计算给定置信水平下相对风险的置信区间。

另请参阅

odds_ratio

注释

R 包 epitools 具有函数 riskratio,该函数接受具有以下布局的表

                disease=0   disease=1
exposed=0 (ref)    n00         n01
exposed=1          n10         n11

对于上述格式的 2x2 表,当给定参数 method=”wald” 时,或者使用函数 riskratio.wald,通过 riskratio 计算 CI 的估计值。

例如,在对吸烟者和非吸烟者样本中肺癌的发病率进行测试时,“暴露”类别将对应于“是吸烟者”,而“疾病”类别将对应于“患有或曾经患有肺癌”。

要将相同的数据传递给 relative_risk,请使用

relative_risk(n11, n10 + n11, n01, n00 + n01)

1.7.0 版本新增。

参考文献

[1]

Alan Agresti, An Introduction to Categorical Data Analysis (second edition), Wiley, Hoboken, NJ, USA (2007)。

[2] (1,2)

Hardeo Sahai 和 Anwer Khurshid, Statistics in Epidemiology, CRC Press LLC, Boca Raton, FL, USA (1996)。

示例

>>> from scipy.stats.contingency import relative_risk

此示例来自 [2] 的示例 3.1。一项心脏病研究的结果总结在下表中

         High CAT   Low CAT    Total
         --------   -------    -----
CHD         27         44        71
No CHD      95        443       538

Total      122        487       609

CHD 是冠心病,CAT 指的是循环儿茶酚胺的水平。CAT 是“暴露”变量,而高 CAT 是“暴露”类别。因此,要传递给 relative_risk 的表格数据是

exposed_cases = 27
exposed_total = 122
control_cases = 44
control_total = 487
>>> result = relative_risk(27, 122, 44, 487)
>>> result.relative_risk
2.4495156482861398

查找相对风险的置信区间。

>>> result.confidence_interval(confidence_level=0.95)
ConfidenceInterval(low=1.5836990926700116, high=3.7886786315466354)

该区间不包含 1,因此数据支持高 CAT 与 CHD 风险增加相关的说法。