統計分析における仮説検定と確率分布の重要性についてはすでに数度にわたって解説してきた通りですが、ここであらためて帰無仮説と対立仮説についてもう一度振り返ってみましょう。
製品の改良についてのシナリオ
D 社では科学計算機用の演算装置を開発しています。このたび研究開発チームは既存のバージョンを改良して性能を向上した新しいプロトタイプを作成しました。同社の品質管理チームはさっそくソフトウェアのベンチマークを測定し、本当に改良がされているか 50 個のサンプルを抽出してテストすることにしました。
品質管理チームによると、もともとの旧製品の性能スコアは平均して 1294 、標準偏差は 34.5 であり、サンプルとしてテストした新製品の性能スコアは平均して 1311 、標準偏差は 28.3 とのことでした。
帰無仮説と対立仮説
話だけを聞くと性能スコアが向上していますから確かに製品が改良されたように思います。このとき、次の 帰無仮説 (null hypothesis) が成立します。
「新製品の性能の平均は、旧製品の平均に等しい」
われわれの感覚では「新製品の性能の平均は本当に旧製品より向上している」というふうに仮説を立てたいところです。統計学的仮説検定では、それが棄却 (= 否定) されたときに意味を持つ仮説をたてます。
つまり帰無仮説が棄却されれば等しくない、つまり新製品が確かに改良されたという積極的な意味をもって言えるわけです。逆に棄却されなければ、特に新製品のサンプルと旧製品が等しくないわけではないということがわかるわけです。だからといって本当に性能が改良されていないかどうかはわかりませんが、少なくとも今回の実験では改良されたと言えない、というふうに言うのが正しいです。
一方、上記の例のように「新製品の性能の平均は本当に旧製品より向上している」というような仮説を 対立仮説 (alternative hypothesis) と言います。
仮説を検定する
以前にもおこないましたが、あらためて SciPy で t 検定をおこなってみましょう。
研究開発チームから届いた各製品のスコアは以下のとおりでした。
# 旧製品群
[ 1225.95543492 1313.6427203 1255.29559405 1245.89449916 1366.75762258
1327.53242061 1317.92790831 1324.61493269 1265.29687633 1328.31664814
1261.87166693 1267.1872685 1308.34491084 1298.87127779 1297.86204665
1245.68834845 1277.92232162 1318.1037024 1317.6412105 1321.97106981
1376.45531456 1300.69798728 1293.57249855 1252.72982576 1307.78459733
1308.73137839 1305.15108854 1281.34013092 1299.69826184 1347.69776592
1252.48079949 1285.19555021 1271.30831279 1264.09883356 1309.92019558
1275.0874674 1365.35342566 1263.27713759 1303.39574014 1294.24464261
1293.56856821 1336.95824401 1291.61986512 1275.92673335 1331.23147617
1266.5493744 1350.91634825 1298.22788355 1339.36570452 1355.4465444 ]
# 新製品群
[ 1354.13405911 1323.75265515 1277.60453412 1327.83291747 1349.05822437
1272.68414964 1307.47711383 1379.03552722 1258.5028792 1328.53923338
1363.80040966 1273.70734254 1326.38009765 1323.89588985 1327.32084927
1311.6073846 1324.9257883 1285.28367883 1281.79079995 1336.87973377
1327.11775168 1275.35676837 1266.37666597 1290.45032715 1312.39184943
1296.47809079 1342.23383962 1310.94699159 1303.78171421 1296.65505569
1342.84984941 1296.4890814 1357.35004255 1276.81169935 1283.04973271
1292.6973255 1310.64071015 1310.07473863 1315.06180632 1268.3989793
1294.0418435 1355.21947184 1293.42257727 1257.01667603 1286.30458648
1286.74731659 1303.56261411 1336.33192992 1290.53467814 1328.87278939]
コード
t, p = stats.ttest_rel(old, new)
print( "t 値は %(t)s" %locals() )
print( "確率は %(p)s" %locals() )
if p < 0.05:
print("有意な差があります")
else:
print("有意な差がありません")
t 値は -1.503290038513141
確率は 0.139182542398
有意な差がありません
となりました。
まとめ
帰無仮説と対立仮説についてあらためて整理し、製品の品質向上を検定してみました。帰無仮説については混乱しやすいポイントなので正しく理解しておきましょう。
参考
統計学入門
http://ruby.kyoto-wu.ac.jp/~konami/Text/
Scipy: 高水準の科学技術計算
http://turbare.net/transl/scipy-lecture-notes/intro/scipy.html
Statistical functions (scipy.stats)
http://docs.scipy.org/doc/scipy/reference/stats.html