対応のあるt検定
提案手法とベースラインが有意差があるかを調べるためには、対応のあるt検定を行なう必要があります。そこで練習のためにハンバーガー統計学にようこそ!に出ていた例をPythonで実装してみました。
8人の女子高生が2種類のハンバーガーを食べて、下表の得点をつけたとします。
女子高生 | ワクワクバーガーの点数 | モグモグバーガーの点数 |
1 | 90 | 95 |
2 | 75 | 80 |
3 | 75 | 80 |
4 | 75 | 80 |
5 | 80 | 75 |
6 | 65 | 75 |
7 | 75 | 80 |
8 | 80 | 85 |
ハンバーガーの得点に有意差があるか調べるコードは以下のようになります。
>>> import scipy as sp >>> from scipy import stats >>> wakuwaku_scores = sp.array([90, 75, 75, 75, 80, 65, 75, 80]) >>> mogumogu_scores = sp.array([95, 80, 80, 80, 75, 75, 80, 85]) >>> (t, prob) = stats.ttest_rel(wakuwaku_scores, mogumogu_scores) >>> t -2.9656149100771318 >>> prob 0.020937570206924772
t値は-2.97となりました。自由度7の時t値が-2.97になる確率は0.02です。これは0.05よりも小さいので、5%の有意水準でハンバーガーの得点の平均には差があることが示せます。