2014年1月9日木曜日

フィッシャーイグザクトメソッド

fisher exact method(fisher検定)はノンパラメトリック検定の1つであり、少数例の時でも背景因子の偏りを確かめることが出来る。

正規性を仮定できる時のみに用いることが出来る上位互換としてカイ二乗検定がある。

研究に使う場合はp値に関しては保守的に考えるべきであると考えているし、ミススペシファイしてしまうリスクを負う必要はないと思っており、正直カイ二乗検定は捨ててしまってもいいと考えている。

さて、fisher検定をRで用いるときはbaseの中にfisher.testという関数がある。

行列等を指定し、大きな行列となる時は作業につかう領域をworkspaceで指定する。

例えば

fisher.test(matrix(2:5,2,2),workspace=100000)

という具合である。多くの場合はp値が欲しいことが多いので

fisher.test(matrix(2:5,2,2),workspace=100000)$p.value

とすれば得ることが出来る。

たまにオッズが欲しくなるが、その場合は

fisher.test(matrix(2:5,2,2),workspace=100000)$estimate

オッズの信頼区間が欲しい場合は(2かける2の時)

fisher.test(matrix(2:5,2,2),workspace=100000)$conf.int


tableのそれぞれのセルの数が知りたければfisher.testをtableに変更すればよい。

もちろんfor文でも使えるので、幾つもの検定を一気に行うことも可能。

しかし、p値が小さすぎるときはデータに戻ることが大切。

そもそもマーカー陰性がいなかったり罹患した人がいなかったりするとオッズが変な値になる(計算出来ない)

計算結果はすぐに出てくるが、解釈をちゃんと行うこと。

それが一番大事。



多分いちばん多い質問。FFFFFAQに認定。