Python でダンのテストを実行する方法
クラスカル・ウォリス検定は、 3 つ以上の独立したグループの中央値間に統計的に有意な差があるかどうかを判断するために使用されます。これは、 一元配置 ANOVAと同等のノンパラメトリックとみなされます。
クラスカル-ウォリス検定の結果が統計的に有意である場合は、 ダン検定を実行してどのグループが異なるかを正確に判断することが適切です。
このチュートリアルでは、Python でダンのテストを実行する方法を説明します。
例: Python の Dunn テスト
研究者は、3 つの異なる肥料が異なるレベルの植物の成長につながるかどうかを知りたいと考えています。彼らは 30 個の異なる植物をランダムに選択し、10 個ずつ 3 つのグループに分け、各グループに異なる肥料を適用します。 1 か月後、各植物の高さを測定します。
クラスカル-ウォリス検定を実行した後、全体の p 値が統計的に有意であることがわかりました。これは、成長の中央値が 3 つのグループ間で同じではないことを意味します。次に、ダンのテストを実行して、どのグループが異なるかを正確に判断します。
Python で Dunn テストを実行するには、scikit-posthocs ライブラリのposthoc_dunn()関数を使用できます。
次のコードは、この関数の使用方法を示しています。
ステップ 1: scikit-posthocs をインストールします。
まず、scikit-posthocs ライブラリをインストールする必要があります。
pip install scikit-posthocs
ステップ 2: ダンテストを実行します。
次に、データを作成してダン テストを実行します。
#specify the growth of the 10 plants in each group group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8] group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8] group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9] data = [group1, group2, group3] #perform Dunn's test using a Bonferonni correction for the p-values import scikit_posthocs as sp sp. posthoc_dunn (data, p_adjust = ' bonferroni ') 1 2 3 1 1.000000 0.550846 0.718451 2 0.550846 1.000000 0.036633 3 0.718451 0.036633 1.000000
ファミリワイズエラー率を制御するために、p 値にボンフェローニ補正を使用することを選択しましたが、 p_adjust引数には他にも次のような選択肢があることに注意してください。
- シダク
- ホルム・シダック
- シムズ・ホッホベルグ
- マンル
- fdr_bh
- fdr_by
- fdr_tsbh
これらの各 p 値調整方法の詳細については、 ドキュメントを参照してください。
ステップ 3: 結果を解釈します。
ダンのテストの結果から、次のことがわかります。
- グループ 1 とグループ 2 の差の調整された p 値は0.550846です。
- グループ 1 とグループ 3 の差の調整された p 値は0.718451です。
- グループ 2 とグループ 3 の差の調整された p 値は0.036633です。
したがって、α = 0.05 で統計的に有意な差がある 2 つのグループのみがグループ 2 と 3 です。