2012年10月18日木曜日

マン・ホイットニーのU検定(エクセルでp値を出す)

以前,3群以上のデータ間の差をノンパラメトリック検定し,それを多重比較する方法を紹介しました.
ノンパラメトリック検定で多重比較したいとき

その記事で私は,面倒くさがりなのでマン・ホイットニー(Mann-Whitney)のU検定による多重比較をSPSSのデータを元に紹介しています.
ですが,SPSSを持っていないとかエクセル統計もインストールしていないという人.あと,単純にエクセルでマン・ホイットニーのU検定のp値を出したいというマニアックな人がいるかと思いましたので,ここにそれを紹介しようと思います.


※後日,マン・ホイットニーのU検定で多重比較するためにも
クラスカル・ウォリスの検定をエクセルでやる
を記事にしました.


これで,「スチューデント化された範囲の表」とかを使わずとも,エクセルだけの機能を使ってノンパラメトリック検定の多重比較ができるようになります.
ぜんぜん嬉しくないことですが,これが人間のやることです.

マン・ホイットニーのU検定.
ウィルコクソンの順位和検定とも呼ばれる方法と同様のものです.

使うデータは以下のようなものです.
N数はA群:6,B群:5となっています.
そしてこれから「ノンパラメトリック検定」ですから,順位付けをしなければならないので,いつもと違い,群を縦に並べています.

では,順位付けです.
=RANK(B2,$B$2:$B$12,1)
という関数を使い,オートフィルでランク付けです.
上記のようになりました.
ちなみに,同順位値(タイ値)がある場合はどうすればいいかというと,以前,
Steel-Dwass法をExcelで計算する方法について,もう少し詳細に
で紹介したように処理してください.

そして,この順位値を群ごとに合計します.
ではいよいよ,マン・ホイットニーのU検定らしい作業に入っていきます.
統計量「U」を算出するため,以下のような式をセルに入れます.
=(A5*A11)+(A11*(A11+1)/2)-D12
A群,B群のどちらのN数や合計値を使ってもいいというわけではなく,N数が小さい方を1,大きい方を2とすると,

= (n数1 × n数2) + (n数1 × (n数1 + 1) / 2) -合計値1

ということにしておきましょう.


次は,p値を出すための算出です.
「平均」を出します.
=(A5*A11)/2

次に「分散」を出します.
=((A5*A11)*(A5+A11+1))/12

そんな感じで,最後に「Z」を出します.
 =(B14-B15)/SQRT(B16)

ということで,この算出した「Z」を使ってp値が出せるようになります.

以下の「NORMSDIST」という関数で出せるみたいです.
=NORMSDIST(B17)*2

数値を見てみると,
ということで,このデータは群間に有意な差が認められました.
ちなみに,SPSS11.0で算出した検定結果と比べてみましょう.
ん?ちょっと違う?
ということで,エクセルに貼り付けたデータにしてみました.
よかったです.同じ結果になっています.

たまにあるんですよね,SPSSの表示が算出値と少し違うこと.
焦ります.

でも「正確有意確率」の結果の方が優先されるということを聞きます.
であれば,0.052ですので,有意性はないことになっちゃいます.

今回紹介したのはSPSSの表示にある,「Z」を元に「漸近有意確率」というところを算出していることになります.
「正確有意確率」の算出ではありません.
正確有意確率の方を算出したほうがいいようなんですけど,まぁ,大外れするわけじゃないんだし,とりあえず正規分布に近似させた場合の確率なんで,という言い訳でいきましょう.

また追加情報があれば記事にします.

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

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