scipy.stats.

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’:樣本底層分佈的平均值大於對照組底層分佈的平均值。

rngnumpy.random.Generator, 選填

虛擬隨機數產生器狀態。當 rng 為 None 時,會使用來自作業系統的熵建立新的 numpy.random.Generator。除了 numpy.random.Generator 之外的類型會傳遞給 numpy.random.default_rng 以實例化 Generator

在 1.15.0 版本變更: 作為從使用 numpy.random.RandomState 過渡到 numpy.random.GeneratorSPEC-007 轉換的一部分,此關鍵字已從 random_state 變更為 rng。在過渡期間,兩個關鍵字將繼續運作,但一次只能指定一個。在過渡期之後,使用 random_state 關鍵字的功能呼叫將發出警告。在棄用期之後,將移除 random_state 關鍵字。

返回:
resDunnettResult

包含屬性的物件

statisticfloat ndarray

每次比較的檢定計算統計量。索引 i 處的元素是組別 i 與對照組之間比較的統計量。

pvaluefloat ndarray

每次比較的檢定計算 p 值。索引 i 處的元素是組別 i 與對照組之間比較的 p 值。

以及以下方法

confidence_interval(confidence_level=0.95)

計算組別與對照組的平均值差異 +- 容許量。

另請參閱

tukey_hsd

執行平均值的成對比較。

Dunnett 檢定

延伸範例

註解

與獨立樣本 t 檢定類似,Dunnett 檢定 [1] 用於推斷樣本來自的分佈的平均值。然而,當在固定的顯著性水準下執行多個 t 檢定時,「家族誤差率」- 在至少一個檢定中錯誤拒絕虛無假說的機率 - 將超過顯著性水準。Dunnett 檢定旨在執行多重比較,同時控制家族誤差率。

Dunnett 檢定比較多個實驗組的平均值與單個對照組。Tukey 誠實顯著性差異檢定是另一個控制家族誤差率的多重比較檢定,但 tukey_hsd 執行組別之間所有成對比較。當不需要實驗組之間的成對比較時,Dunnett 檢定因其更高的檢定力而更佳。

此檢定的使用依賴於幾個假設。

  1. 觀察值在組別內部和組別之間是獨立的。

  2. 每個組別內的觀察值呈常態分佈。

  3. 樣本來自的分佈具有相同的有限變異數。

參考文獻

[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 檢定