Pythonでウィルコクソンの符号付順位和検定(Wilcoxon signed-rank test)を実行するには、scipy.statsモジュールのwilcoxon関数を使用します。この検定は、対応のある2つのサンプル群間の差異が偶然によるものかどうかを評価するのに使われます。特に、データが正規分布に従わない場合の非パラメトリックな検定として適用されます。
ウィルコクソンの符号付順位和検定の実装
まず、必要なライブラリをインストールします(まだインストールしていない場合):
$ pip install scipy
次に、サンプルデータに対してウィルコクソンの符号付順位和検定を実行する例を示します。
import scipy.stats as stats # サンプルデータ data1 = [20, 22, 19, 20, 22, 18, 24, 20, 19, 23, 17, 21] data2 = [22, 24, 18, 21, 24, 16, 26, 22, 20, 25, 19, 23] # ウィルコクソンの符号付順位和検定を実行 stat, p = stats.wilcoxon(data1, data2) # 結果を表示 print('統計量:', stat) print('p値:', p)
<実行結果>
統計量: 10.0
p値: 0.02099609375
結果の解釈
統計量(stat): 検定統計量は、順位の差の絶対値の合計です。この値自体は一般的に解釈されることは少ないです。
p値(p): p値が統計的有意水準(通常は0.05)以下の場合、2つのサンプル群間に統計的に有意な差異があると解釈されます。つまり、p値が0.05以下であれば、2つのサンプル群間の差異は偶然ではない可能性が高いと考えられます。
この検定を使用する際の注意点
ウィルコクソンの符号付順位和検定は、対応のある2つのサンプルに対して使用されます。独立した2つのサンプルにはウィルコクソンの順位和検定(Mann-Whitney U test)を使用する必要があります。データのペア数が少ない場合(通常は30ペア未満)、検定の結果は解釈に注意が必要です。
コメント