tanihito’s blog

デジタル・新規事業開発・健康など、興味のあることについてつらつらと書いてきます。

対応のある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%の有意水準でハンバーガーの得点の平均には差があることが示せます。