Excelの統計アドインツールは利用してはいけない
Excelで統計(検定)をするセミナーを受講したので、復習がてら、試してみました。
利用したデータは、内閣府の「平成 26 年度県民経済計算について」こちらのデータ。
47都道府県の県民所得や人口数などがデータ化されています。
で、検定内容は
人口トップ10都道府県(東京・神奈川・大阪・愛知・埼玉・千葉・兵庫・北海道・福岡・静岡とそれ以外の37県で、「一人あたりの県民所得」の平均に有意差はあるか?です。
データはPDFからコピペして、人口順に並べて上位10と下位37県に分類。
で、Excelのアドインから統計アドインを組み込んでt検定を実施してみたところ・・・
ソフト | Student's t | Welch |
Excel 統計アドイン | 0.004516037 | 0.059810691 |
ふむふむ。等分散性を仮定(Student's t)したらp<0.05だけど、仮定しなければ(Welch) p>0.05か(両側検定)
データを見ると、東京都の一人あたりの収入が突出していて、F検定の結果では等分散性は仮定できないからWelchだよな。
Excelの統計解析アドインって結構便利だな。
と思いつつ、他の統計ソフトも試してみるか。と調べてみたところ・・・
ソフト | Student's t | Welch |
JMP 12 | 0.0045 | 0.0587 |
SAS 9.3 | 0.0045 | 0.0587 |
R | 0.00452 | 0.05873 |
おぉい。Studen's tは他の統計ソフトと一致するけど、肝心のWelch検定の結果が、Excelと、統計解析ソフトの結果が違うじゃないか!
これだから、Excelは信用できねぇ。と思いつつ検索したところ。
bellcurve.jp
Welchの方法ではt分布の自由度に小数点以下の値が生じます。Excelの分析ツールでは、四捨五入後の自由度によるt分布を用いてP値を計算してしまいます。一方、ExcelのTTEST関数やT.TEST関数を使ってもWelchの方法によるt検定ができるのですが(関数の4番目の引数「検定の種類」を「3」に設定します)、関数から求められるP値は自由度を四捨五入しないで計算しています。より検定の精度を高めるなら、関数を使って検定を行った方が良いでしょう。
確かに、最初のExcelでの検定では、Welchの自由度が10になっていました。
が、JMPでは10.41862 (Rは10。419)
勝手に自由度を丸めて検定しているというクソ仕様でした。
ということで、ブログの記載の通り、分析ツールを利用せず、TTEST関数を利用したところ、
p=0.058725887と他の統計ソフトと一致しました。
関数ならちゃんと計算できるのに、アドインの分析ツールだと間違った答えになるなんて。
Excelって本当にだめなソフトですね。
ちなみに最初の講習会。
統計に関するExcel関数(VAR.S, STDEV.P, FREQUENCY等)をいろいろ教えていただけて結構役に立つセミナーでした。
アドインツールの説明が雑だったのは訳があったんですね。
こういうことしているからMicrosoftは信頼されないんだなぁ。と思ったfocuslightsでした。