製品の改良を仮説検定する

統計分析における[仮説検定と確率分布](http://qiita.com/ynakayama/items/e41f592ad7fe02f23c1c)の重要性についてはすでに数度にわたって解説してきた通りですが、ここであらためて帰無仮説と対立仮説についてもう一度振り返ってみましょう。

## 製品の改良についてのシナリオ

```
D 社では科学計算機用の演算装置を開発しています。このたび研究開発チームは既存のバージョンを改良して性能を向上した新しいプロトタイプを作成しました。同社の品質管理チームはさっそくソフトウェアのベンチマークを測定し、本当に改良がされているか 50 個のサンプルを抽出してテストすることにしました。
品質管理チームによると、もともとの旧製品の性能スコアは平均して 1294 、標準偏差は 34.5 であり、サンプルとしてテストした新製品の性能スコアは平均して 1311 、標準偏差は 28.3 とのことでした。
```

### 帰無仮説と対立仮説

話だけを聞くと性能スコアが向上していますから確かに製品が改良されたように思います。このとき、次の **帰無仮説 (null hypothesis)** が成立します。

「新製品の性能の平均は、旧製品の平均に等しい」

われわれの感覚では「新製品の性能の平均は本当に旧製品より向上している」というふうに仮説を立てたいところです。統計学的仮説検定では、それが棄却 (= 否定) されたときに意味を持つ仮説をたてます。

つまり帰無仮説が棄却されれば等しくない、つまり新製品が確かに改良されたという積極的な意味をもって言えるわけです。逆に棄却されなければ、特に新製品のサンプルと旧製品が等しくないわけではないということがわかるわけです。だからといって本当に性能が改良されていないかどうかはわかりませんが、少なくとも今回の実験では改良されたと言えない、というふうに言うのが正しいです。

一方、上記の例のように「新製品の性能の平均は本当に旧製品より向上している」というような仮説を **対立仮説 (alternative hypothesis)** と言います。

## 仮説を検定する

[以前](qiita.com/ynakayama/items/e41f592ad7fe02f23c1c)にもおこないましたが、あらためて [SciPy](http://docs.scipy.org/doc/scipy/reference/stats.html) で [t 検定](http://ja.wikipedia.org/wiki/T%E6%A4%9C%E5%AE%9A)をおこなってみましょう。

研究開発チームから届いた各製品のスコアは以下のとおりでした。

```py3
# 旧製品群
[ 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]
```

コード

```py3
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