本文簡要介紹 python 語言中 scipy.stats.barnard_exact
的用法。
用法:
scipy.stats.barnard_exact(table, alternative='two-sided', pooled=True, n=32)#
在 2x2 列聯表上執行 Barnard 精確檢驗。
- table: 數組 整數
一個 2x2 列聯表。元素應該是非負整數。
- alternative: {‘雙麵’,‘less’, ‘greater’},可選
定義原假設和備擇假設。默認為“雙麵”。請參閱下麵注釋部分中的說明。
- pooled: 布爾型,可選
是否使用合並方差(例如 Student 的 t-test)或非合並方差(例如 Welch 的 t-test)計算得分統計。默認為
True
。- n: 整數,可選
構建采樣方法時使用的采樣點數。請注意,由於
scipy.stats.qmc.Sobol
用於選擇樣本點,因此該參數將自動轉換為 2 的下一個更高的冪。默認值為 32。必須為正數。在大多數情況下,32 個點足以達到良好的精度。更多的積分是以性能為代價的。
- ber: BarnardExactResult
具有以下屬性的結果對象。
- 統計 浮點數
具有合並或非合並方差的 Wald 統計量,具體取決於用戶對合並的選擇。
- p值 浮點數
P 值,假設零假設為真,獲得至少與實際觀察到的分布一樣極端的分布的概率。
參數 ::
返回 ::
注意:
Barnard 檢驗是用於分析列聯表的精確檢驗。它檢查兩個分類變量的關聯,是比 Fisher 對 2x2 列聯表的精確檢驗更有效的替代方法。
讓我們定義 一個代表觀察樣本的 2x2 矩陣,其中每一列存儲二項式實驗,如下例所示。我們還定義 和 和 的理論二項式概率。當使用巴納德精確檢驗時,我們可以斷言三個不同的零假設:
相對 , 和選擇= “less”
相對 , 和選擇= “greater”
相對 , 和選擇= “two-sided”(默認一個)
為了計算 Barnard 的精確檢驗,我們使用帶有合並或未合並方差的 Wald 統計量 [3]。在兩個方差相等(
pooled = True
)的默認假設下,統計量計算為:和 是 和 的估計量,後者是組合概率,假設 。
如果此假設無效(
pooled = False
),則統計數據為:然後 p 值計算如下:
總和超過所有 2x2 列聯表
這樣:* 當選擇= “less”, * 當選擇= “greater”,或 * 當選擇= “two-sided”。更多, 是第 1 列和第 2 列的總和,並且 總數(4 個樣本元素的總和)。返回的 p 值是對有害參數 采取的最大 p 值,其中 。
這個函數的複雜度是
,其中n是樣本點的數量。參考:
[1]Barnard, G. A. “2x2 表的顯著性檢驗”。生物計量學. 34.1/2(1947):123-138。DOI:dpgkg3
[2] (1,2)梅塔、賽勒斯 R. 和 Pralay Senchaudhuri。 “比較兩個二項式的條件與無條件精確檢驗。” Cytel 軟件公司 675(2003 年):1-5。
[3]“Wald Test”。維基百科.https://en.wikipedia.org/wiki/Wald_test
例子:
[2] 中介紹了 Barnard 檢驗的一個示例使用。
Consider the following example of a vaccine efficacy study (Chan, 1998). In a randomized clinical trial of 30 subjects, 15 were inoculated with a recombinant DNA influenza vaccine and the 15 were inoculated with a placebo. Twelve of the 15 subjects in the placebo group (80%) eventually became infected with influenza whereas for the vaccine group, only 7 of the 15 subjects (47%) became infected. The data are tabulated as a 2 x 2 table:
Vaccine Placebo Yes 7 12 No 8 3
在使用統計假設檢驗時,我們通常使用閾值概率或顯著性水平,我們決定根據該閾值拒絕原假設 。假設我們選擇 5% 的共同顯著性水平。
我們的替代假設是疫苗會降低感染病毒的機會;也就是概率
用疫苗感染病毒將是少於概率 在沒有疫苗的情況下感染病毒。因此,我們稱barnard_exact
與alternative="less"
選項:>>> import scipy.stats as stats >>> res = stats.barnard_exact([[7, 12], [8, 3]], alternative="less") >>> res.statistic -1.894... >>> res.pvalue 0.03407...
在疫苗不會降低感染機會的零假設下,獲得至少與觀察數據一樣極端的測試結果的概率約為 3.4%。由於該 p 值小於我們選擇的顯著性水平,因此我們有證據拒絕 而支持替代方案。
假設我們使用了 Fisher 精確檢驗:
>>> _, pvalue = stats.fisher_exact([[7, 12], [8, 3]], alternative="less") >>> pvalue 0.0640...
在 5% 的閾值顯著性相同的情況下,我們將無法拒絕零假設以支持替代方案。如 [2] 中所述,Barnard 檢驗比 Fisher 精確檢驗更強大,因為 Barnard 檢驗不以任何邊際為條件。僅當兩組邊際均固定時,才應使用 Fisher 檢驗。
相關用法
- Python SciPy stats.bartlett用法及代碼示例
- Python SciPy stats.bayes_mvs用法及代碼示例
- Python SciPy stats.boltzmann用法及代碼示例
- Python SciPy stats.brunnermunzel用法及代碼示例
- Python SciPy stats.betaprime用法及代碼示例
- Python SciPy stats.betabinom用法及代碼示例
- Python SciPy stats.boxcox_normplot用法及代碼示例
- Python SciPy stats.boxcox用法及代碼示例
- Python SciPy stats.binned_statistic_2d用法及代碼示例
- Python SciPy stats.binned_statistic用法及代碼示例
- Python SciPy stats.boxcox_normmax用法及代碼示例
- Python SciPy stats.burr12用法及代碼示例
- Python SciPy stats.boschloo_exact用法及代碼示例
- Python SciPy stats.bootstrap用法及代碼示例
- Python SciPy stats.binom用法及代碼示例
- Python SciPy stats.burr用法及代碼示例
- Python SciPy stats.bws_test用法及代碼示例
- Python SciPy stats.beta用法及代碼示例
- Python SciPy stats.bradford用法及代碼示例
- Python SciPy stats.binomtest用法及代碼示例
- Python SciPy stats.binned_statistic_dd用法及代碼示例
- Python SciPy stats.boxcox_llf用法及代碼示例
- Python SciPy stats.binom_test用法及代碼示例
- Python SciPy stats.bernoulli用法及代碼示例
- Python SciPy stats.anderson用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.barnard_exact。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。