2011年8月31日水曜日

あまり知られていないt検定

あんまり(少なくとも私たちの分野では)知られていないt検定を取り上げます.

めっちゃ基礎的な統計学の本とか,研究方法を取り扱ったテキストなんかでは掲載されているのですが,私自身知らなかったこともあってあまり使ったこともありません.

一般的には 「1サンプルのt検定」 と呼ばれ,標本集団の平均値と母集団の平均値とを比較するt検定です.
SPSSにも装備されていて,ここでは「1サンプルのT検定」 という名称がついています.
for Windows Ver 11.0では以下のような表示です.

t検定といえば繰り返しのあるデータ同士の比較 (いわゆるあのt検定) だけだと思っていたのですが.

いつの頃だったか,友人から,
「今回の実験で測定した値が,標準値と比べて有意な差があるかどうかを検定する方法ってわかる?」

って聞かれて初めて,
「そういえば知らないなぁ.でも,あったら利用価値は高いよなぁ」
と思いながら調べた記憶があります.



この検定は簡単な研究報告とか卒論レベルでの利用価値が高いかと思います.
これからの季節は学生たちの無計画な卒業研究と実験や調査が始まる時期です.

適当な友達を集めてとりあえず何か測定したんだけど,その測定値が何を意味するのか分かんないので指導教員に聞いてみたら 「自分で考えろ」 と突っぱねられたので,仕方なく私のところに来た.というパターンが考えられます.

無計画な実験なので対照群とかを用意していることもなく,今から測定しろよと指示すると 「就活があるから...」 などと言って逃げまわるので,とりあえずそこにあるデータをいじるしかないオチです.
しょうがないので 「全国標準値と比べてみるか」 なんて状況になるんですね.

まぁ,測定したデータをパッと見て,印象だけで 「高い/低い」 「優れている/劣っている」 と結論づけちゃうよりは,
「データは統計学的な手順を踏んで有意性が認められないと,断定的な物言いはできないよ」
ということをわかってもらうだけでも十分だと思うんです.
研究活動というものに特段興味を示す学生以外にとっては,きっちりとした実験とか調査をやらせるだけ骨折り損のくたびれ儲けです.
卒論という活動を通じて,少なくともデータを解釈する重要性を伝えたいものです.卒論をやる価値はそこにあるのではないかと.

そんなわけで,学生自身に統計学的なフィルターを通すことの重要性を学んでもらうためにも,まずはアナログ式にExcelでの計算方法を学ばせるのも一考です.



SPSSでやってもいいのですが,操作を覚えさせるだけでも大変ですから.
そんなに難しくないので,Excelで計算できるようになっちゃいましょう.

以下のようなシートを作成します.

D列4行目とE列4行目は算出済みの数値を入力するだけで構いません.
C列4行目は,特に気にせずその時のN数(対象者数)を入力するだけでOKです.

比較したい母集団のデータですが,平均値がわかっていればOKです.D列3行目に入れています.

今回の例では「全国調査時の平均が30だった.今回の調査対象の平均は33.4だった.対象者は22名,標準偏差は6.4だった」 ということにして入力しています.


t検定をするわけですから,t値を算出するのですが,それをやっているのがC列6行目のセルです.式は以下のとおり.

=(D3-D4)/(E4/SQRT(C4))
おまけとして,このt検定の計算式を下に示します.
M : 母集団の平均値
μ : 標本集団の平均値
SM : 標本集団の標準偏差
n : N数(対象者数)

これでt値が算出できましたので,このt値からP値を求めたのがC列7行目です.

=TDIST(ABS(C6),C4-1,2)
統計の算出式の仕組みに興味がない人は,気にせずそのまま入力してください.
これで,1サンプルのt検定シートが完成です.


これをSPSSでやった場合も紹介しときます.
上記の例と同じデータを扱っています.
こんな感じのデータとして入力し,「1サンプルのT検定」 を選択します.

こういう画面が出てきますので,検定したいデータが入った列を 「検定変数」 のところに放り込みます.
そして,「検定値」 の部分を全国調査の平均である30と入力してOKをクリックです.
そしたら,以下のような結果の画面が出てきます.
Excelで検定した場合と全く同じ結果になるはずです.



あと最後に,以前紹介したt検定の時みたいに,一気にバーっと検定する方法もやっときます.

「t値なんてどーでもいいから,P値だけ知りたい」 というのが本音でしょうから,以下の例では,それ用の計算式にしています.
ポイントとしては,「基準値(比較したい数値)」 を列に揃えて並べておくことでしょうか.
当たり前のことかもしれませんが,念のため指摘しておきます.これでオートフィルしたときに自動的に参照してくれるようになりますので.

=TDIST(ABS((B14-B12)/(B13/SQRT(COUNT(B2:B11)))),COUNT(B2:B11)-1,2)
そしてこれをオートフィルします.
一気にP値を算出できます.

計算式がどういう意味なのか?は興味がある人だけ調べてください.
まぁ,とりあえずこれで母集団と標本集団の平均値のt検定は可能です.


ここで1サンプルのt検定について重要なことをお話ししますので,あともう少し聞いてください.
このt検定は 「母集団と標本集団の比較」 という前提の検定です.
こんな場合は検定できませんので注意が必要です.

例えば,A大学の学生のテストの平均値だけ入手できたとします.
そんで,このA大学の平均値と自分とこの大学のテスト結果を1サンプルのt検定で比較しましょう,ということは実はできません.
こういうのは標本集団同士の比較ですので,一般的に知られている 「対応のないt検定」 をしなければいけません.

ゆえに,この場合はA大学の学生一人ひとりのテスト結果を入手せにゃならんということです.


あと,自分とこの大学の結果とは言え,「前回のテストの平均点だけわかっているから,それと比較」 というのもダメです.

検定可能なのは,自分とこの大学の全学生のテストの平均値 (これが母集団平均) と,その一部の学生である◯◯学科のテストの平均値 (標本集団平均) を比較する,といった場合です.

あとは一般的に認知されている不特定多数から得たデータ,例えば 「ヒトの基準値」 とか 「日本人の平均値」 といったものとの比較ならOKです.


次回は,これも学生から多い質問なのですが,
ノンパラメトリック検定での多重比較はどうすればいいか?
というやつです.
2群の比較ならMann-WhitneyのU検定やWilcoxonの符号付き順位検定で問題なくできますよね.

でも,SPSSなんかを使ってみると,Kruskal-Wallisの検定とかFriedmanの検定には 「その後の検定」 という多重比較検定の操作がありません.
なので,どうしたらいいのか?という疑問があるわけです.
これについて取り上げようと思います.


※統計的有意にこだわらないのであれば,
効果量(SE:effect size)をエクセルで算出する
がオススメです.

外れ値を算出する方法もよく似ています.
外れ値や異常値を判断する統計処理をエクセルでやる方法

※後日,こんな怪しいブログよりも信頼性が高いものに触れてもらうよう,
独学で統計処理作業をスキルアップさせるための本
という記事を書きました.参照してください.