最近、Fisherの正確確率検定を実装してみていた。
そのへんに転がっている本とかWebサイトを見ると、
一般性を欠いた説明もあるようで、それらを鵜呑みにするのは
微妙っぽい。
# そこに一緒に掲載されている分割表の例でなら合ってるけど
・片側のpを2倍して両側のp値にしている
・一番少ないセルの度数を減らすことで
分割表を生成している
片側のp値を2倍にして両側のp値になるかどうかという
問題は以下のページの例だと、片側のp値を2倍したものは、
全部の分割表の確率を計算してから計算したものと
異なっている。
http://<wbr></wbr>aoki2.s<wbr></wbr>i.gunma<wbr></wbr>-u.ac.j<wbr></wbr>p/Hanas<wbr></wbr>i/Algo/<wbr></wbr>p-value<wbr></wbr>.html
2倍するとつまり、正確確率検定のつもりが不正確確率検定になっているっぽい。
正確なものを求めるには全部のありうる分割表の確率をそれぞれ
計算してそれらから目的の分割表の確率以下のものを集めるか、
各分割表のPearson的なDiscrepancy(期待度数からのかけ離れ具合?)
を計算して、それが目的の分割表以上のものを集めるかなどして、
それらの確率の総和をp値とするようだ。
次の一番少ないセルの度数を減らして分割表を
生成しているのは書籍によく見られる例で、
上のURLの例では度数4のセルを減らそうと
していくことになって、おかしなことになる。
この問題は上に書いたような方法でp値を計算すれば、
避けられる。
で、そうなると少々困るのが目的の分割表が
上側に入っているのか、下側に入っているのかが
分からなくなってしまうというもの。教科書的な
やりかたなら度数の少ないところを減らしていくので
下側ということが前提になっているのだが、これらの
方法だとその前提が使えない。
2x2の分割表ならad-bc(phi coefficient?)の符号で判別できそうだが
2xmだと・・・
一応、どこかのセルに着目して0側からと最大度数側からとで
分割表を並べてたどっていけばどっち側か判別できるようだけど、
必ず判別できるわけではないようだ。まあ、どっちか分からないような
場合は大したことのないp値なようなので、えいやで
下側に決め打ちで突っ込んでもいいような気もするけど。
※コメント投稿者のブログIDはブログ作成者のみに通知されます