dunnett#
- scipy.stats.dunnett(*samples, control, alternative='two-sided', rng=None)[原始碼]#
Dunnett 檢定:多組平均值與對照組的比較。
這是 Dunnett 原始單步檢定的實作,如 [1] 中所述。
- 參數:
- sample1, sample2, …1D 類陣列
每個實驗組的樣本測量值。
- control1D 類陣列
對照組的樣本測量值。
- alternative{‘two-sided’, ‘less’, ‘greater’}, 選填
定義對立假說。
虛無假說是樣本和對照組底層分佈的平均值相等。以下是對立假說選項(預設為 ‘two-sided’)
‘two-sided’:樣本和對照組底層分佈的平均值不相等。
‘less’:樣本底層分佈的平均值小於對照組底層分佈的平均值。
‘greater’:樣本底層分佈的平均值大於對照組底層分佈的平均值。
- rng
numpy.random.Generator
, 選填 虛擬隨機數產生器狀態。當 rng 為 None 時,會使用來自作業系統的熵建立新的
numpy.random.Generator
。除了numpy.random.Generator
之外的類型會傳遞給numpy.random.default_rng
以實例化Generator
。在 1.15.0 版本變更: 作為從使用
numpy.random.RandomState
過渡到numpy.random.Generator
的 SPEC-007 轉換的一部分,此關鍵字已從 random_state 變更為 rng。在過渡期間,兩個關鍵字將繼續運作,但一次只能指定一個。在過渡期之後,使用 random_state 關鍵字的功能呼叫將發出警告。在棄用期之後,將移除 random_state 關鍵字。
- 返回:
- res
DunnettResult
包含屬性的物件
- statisticfloat ndarray
每次比較的檢定計算統計量。索引
i
處的元素是組別i
與對照組之間比較的統計量。- pvaluefloat ndarray
每次比較的檢定計算 p 值。索引
i
處的元素是組別i
與對照組之間比較的 p 值。
以及以下方法
- confidence_interval(confidence_level=0.95)
計算組別與對照組的平均值差異 +- 容許量。
- res
另請參閱
tukey_hsd
執行平均值的成對比較。
- Dunnett 檢定
延伸範例
註解
與獨立樣本 t 檢定類似,Dunnett 檢定 [1] 用於推斷樣本來自的分佈的平均值。然而,當在固定的顯著性水準下執行多個 t 檢定時,「家族誤差率」- 在至少一個檢定中錯誤拒絕虛無假說的機率 - 將超過顯著性水準。Dunnett 檢定旨在執行多重比較,同時控制家族誤差率。
Dunnett 檢定比較多個實驗組的平均值與單個對照組。Tukey 誠實顯著性差異檢定是另一個控制家族誤差率的多重比較檢定,但
tukey_hsd
執行組別之間所有成對比較。當不需要實驗組之間的成對比較時,Dunnett 檢定因其更高的檢定力而更佳。此檢定的使用依賴於幾個假設。
觀察值在組別內部和組別之間是獨立的。
每個組別內的觀察值呈常態分佈。
樣本來自的分佈具有相同的有限變異數。
參考文獻
[1] (1,2)Dunnett, Charles W. (1955) “A Multiple Comparison Procedure for Comparing Several Treatments with a Control.” Journal of the American Statistical Association, 50:272, 1096-1121, DOI:10.1080/01621459.1955.10501294
[2]Thomson, M. L., & Short, M. D. (1969). Mucociliary function in health, chronic obstructive airway disease, and asbestosis. Journal of applied physiology, 26(5), 535-539. DOI:10.1152/jappl.1969.26.5.535
範例
我們將使用來自 [2] 表 1 的資料。虛無假說是樣本和對照組底層分佈的平均值相等。
首先,我們檢定樣本和對照組底層分佈的平均值不相等 (
alternative='two-sided'
,預設值)。>>> import numpy as np >>> from scipy.stats import dunnett >>> samples = [[3.8, 2.7, 4.0, 2.4], [2.8, 3.4, 3.7, 2.2, 2.0]] >>> control = [2.9, 3.0, 2.5, 2.6, 3.2] >>> res = dunnett(*samples, control=control) >>> res.statistic array([ 0.90874545, -0.05007117]) >>> res.pvalue array([0.58325114, 0.99819341])
現在,我們檢定樣本底層分佈的平均值大於對照組底層分佈的平均值。
>>> res = dunnett(*samples, control=control, alternative='greater') >>> res.statistic array([ 0.90874545, -0.05007117]) >>> res.pvalue array([0.30230596, 0.69115597])
如需更詳細的範例,請參閱 Dunnett 檢定。