當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。