scipy.stats.contingency.

相对风险#

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

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

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

参数:
暴露案例非负整数

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

暴露总数正整数

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

控制案例非负整数

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

control_total正整数

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

返回:
结果 : RelativeRiskResult 的实例实例

该对象具有浮点属性 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 计算CI的估计值,或者使用函数 riskratio.wald

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

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

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

Added in version 1.7.0.

参考文献

[1]

Alan Agresti, 《分类数据分析导论》(第二版), Wiley, Hoboken, NJ, USA (2007).

[2] (1,2)

Hardeo Sahai 和 Anwer Khurshid,《流行病学中的统计学》,CRC Press LLC,Boca Raton,FL,美国(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风险增加相关的说法。