2015年7月8日水曜日

Maxima も Welch 検定,内田論文を見て思ったこと


まずは,誤解されないように述べておくが,後述する内田論文に,Maxima は使われていないし,Welch 検定の正統的とも言える用法も使われていない。

Welch 検定については,私もブログや Yahoo!知恵袋で,何度となく言及してきた。その詳細は,この解説末尾のウェブページを参照してほしい。

要するに,等分散検定をした上で,等分散なら通常の t 検定,等分散でなければ Welch 検定という使い分けは妥当ではない,等分散検定をせずに Welch 検定をしよう,という趣旨なのである。Welch の意図を解説したブログにも書いたが,そもそも,Welch 検定は,等分散か否かを仮定しない,という前提で考案された。非等分散の場合に使われるという前提ではないのである。

統計解析ソフト Rt.test 関数では,デフォルトで,つまり,非等分散の指定をしなくても,Welch検定を実施する。

例えば,次のような2群 x,y を考えて,t.test 関数で,特にオプションを指定せず,平均の差の検定を行なう。

x<- c(2, 2, 3) y<- c(4, 8, 11) t.test(x, y)

結果の概要は次の通りである。

Welch Two Sample t-test
t = -2.5955, df = 2.108, p-value = 0.1156

言うまでもなく,デフォルトで Welch 検定を実施する。

これは,分散分析の関数 oneway.test を利用しても同じである。分散分析は,2群(2標本)以上の平均値の差の検定法である。これまた,3群以上,と誤って解説する大学教員さえいるので注意が必要である。 oneway.test の help解説を読むと

下部の See Also の項目に
The standard t test (t.test) as the special case for two samples
と,ちゃんと書かれている。2群以上の分散分析の中の特殊な場合が t 検定なのである。

前述の2群に対して,oneway.test をデフォルトで使うと,以下のようになる。

dat<- c(x, y) grp<- rep(c(1, 2), c(3, 3)) oneway.test(dat ~ grp)

結果の概要は次の通りである。

One-way analysis of means (not assuming equal variances)
F = 6.7368, num df = 1.000, denom df = 2.108, p-value = 0.1156

当然ながら,前述の Welch 検定の p 値と一致する。それは,分母(denominator)の自由度 2.108 が Welch 検定の自由度となり,F 値の平方根(ここでは正の値としておく)
sqrt(oneway.test(dat ~ grp)$ statistic)
が,t 値に一致するからである。

つまり,t が自由度 n の t 分布に従えば,t2 = F は,自由度 (1, n) の F 分布に従う,という定理が使われている。

三重大・奥村晴彦氏が,ブログt検定で,
最初からズバリ「等分散を仮定しない t 検定」を行うのが正しいやり方である。
と断じているのは,水戸黄門的な爽快感を感じるのだが,日本の大学教員の場合,少なくとも,ネット上で,そのような断言は,そう多くない。

ここまで,R の計算について述べてきたが,ここから,タイトルどおり Maxima の計算について触れる。Maxima は,R と異なり,数式処理専門のフリーソフトであり,その意味では,統計計算は充実していない。しかし,それでもなお,t 検定程度の簡単な検定なら可能である。余談だが,前述の奥村氏が,かつて放送大学の講義で Maxima の解説をしていた。また最近,コクワガタの3型を統計解析した私の研究でも Maxima が使われた。

Iguchi, Y. (2013)
Male mandible trimorphism in the stag beetle Dorcus rectus (Coleoptera: Lucanidae).
European Journal of Entomology, 110: 159-163.


フリーソフトだと信用が無いかのようなトンチンカンな心配が時々聞かれるが,決してそんなことはない。最近,私が統計解析の協力をした松延祥平君(筑波大・大学院)は,ホヤの尾の吸収に関する研究をしたが,フリーソフト R を効果的に使い,そのことを論文にも記している。

Matsunobu S. and Sasakura Y.
Time course for tail regression during metamorphosis of the ascidian Ciona intestinalis
Developmental Biology, オンライン速報版.

修士研究をしていた松延君は,当初,R を全く使えず,それをインストールすることから始めた。その後,それを使いこなし,最終的には見事な分析結果を出した。しかも,これらは全て電子メールとその添付ファイルで何回も私とやり取りして生まれた結果である。

話を戻そう。Maxima の場合,統計解析にはパッケージ stats を使う。その上で,Rで使ったのと同じデータで,t検定をデフォルトで行なってみる。

load("stats")$
x: [2, 2, 3]$
y: [4, 8, 11]$
test_means_difference(x, y);

その結果の概要は次の通りである。

method = Exact t-test. Welch approx.
distribution = [student_t, 2.108029197080292]
p_value = 0.11559643427222

言うまでも無く,Maxima もデフォルトで Welch 検定の結果なのである。デフォルトで14桁まで出力するのは,いかにも Maxima らしい。

t 検定というと,大学の講義では,まず等分散を仮定したt検定を教えるのだが,実際のデータ解析では,まず Welch 検定を考えるべきであることを,R や Maxima が物語っている。

ところで,奥村氏は,そのブログで
事前検定を行うことが不適切であることはだんだん理解されてきている
と述べているが,それが,そうでもないのである。再度言うが,大学教員でさえ,そうでないのである。

最近読んだ論文の一つに,このブログのタイトルに示した内田論文がある。

内田いづみ(2014)
講習会による学習支援効果の分析-情報基礎科目履修者を対象として-
駿河台大学論叢 49: 161-186


リンクをクリックすれば,pdf で読める。

その論文では,等分散検定の結果によって,等分散仮定の t 検定と Welch 検定の使い分けが行なわれている。p.176 以降,実に,5ヶ所連続で,その手順のオンパレードなのである。奥村氏の言うような理解されてきている状況には,ほど遠い感がある。

しかも,この論文では,等分散検定に Excel の F 検定を使っているのだが,その片側検定の出力結果を,そのまま解釈しているようなのである。分散が等しいか否かの検定なのだから,当然,両側検定であろう。

この論文には,他にも奇妙な統計的手法が採られている。

例えば,p.176 の (3) 勉強度合と得点率の変化を見ると,4件法による勉強度合のスコアと,得点率の変化を調べるのに,わざわざ,得点率が上がった集団と下がった集団に2分して,勉強度合スコアを比較しているのである。

上がった集団と下がった集団に2分したということは,前後差を取り,それをプラスとマイナスだけの二値情報に集約してしまったということである。こういうのを情報の損失(loss of information)と言う。

こんなことしなくても,文字通り得点率の変化,つまり,前後差と,勉強度合スコアの相関,例えば,スピアマン順位相関( Spearman's rank correlation)を調べればよいのであり,このほうが,はるかに多くの情報が得られる。

似たようなことを,p.175 の(2)勉強度合の期末試験得点への影響でも,行なっている。ここでは,今度は,4件法による勉強度合のスコアを2件法に集約して検定しているのである。これもまた,相関を調べたほうが,はるかに多くの情報が得られる。

実は,この研究論文を知ったきっかけは,ある学生からのメールで,なぜ相関を調べないのか,という質問によるものだった。もちろん,その学生には,相関を調べたほうが良いと私は伝えた。

内田氏は,大学の情報処理教育センターの教員だそうだ。本論文が,Word や Excel のスキル向上を目指した講習の効果を分析しようとした点は良く理解できる。結果も細かく提示され,同様な研究のメタアナリシスには有益となるだろう。しかし,それだからこそ単にコンピュータを扱うスキルの問題だけでなく,統計分析の理論や手法を熟慮して欲しかった内容であった。

参照ウェブページ
等分散検定から t検定・分散分析(ANOVA)・ウェルチ(Welch)検定への問題点

Welch検定が主流,単純t検定やANOVAは時代遅れ:Statwingの話題から

ウェルチ検定の意図とは: 標本サイズの誤解とExcel計算の話題も含めて

その他の統計学関連の話題