« さうして、このごろ 20130228 | 最新のページに戻る | タブレットをケージに貼り付ける作戦、について試行錯誤 »

■ サンプルサイズと検出力

ふと思い立って、検出力のカーブを描いてみた。

シンプルに正規分布で、mu=0, sd=1でalpha=5%で検定するとH0:mu=0が棄却される確率は0.05 (横軸0の点)。


さらにH1: mu≠0として、mu=-3:3, sd=1でデータを振ってやって、H0が棄却される確率(1-beta)を横軸にmuをふってplotしてやると、図のようになる。randnでデータ作って、ttestする。べつべつのデータごとにttestに使うデータの数を変えている。

そうすると、データ数5のときは、効果量=abs(mu)>1.6とかでないと1-beta > 0.80にならない。データ数が10,000あると、効果量>0.02とかで1-beta > 0.80になる。要は、effect size小さくてもnさえ稼げればなんでも有意になる。

だから、nがサッカードの数だったりしてデータ数が1万とかあって、応答潜時への効果とか見るとなんでも有意になってしまう。実験データでなくてシミュレーションで有意差付けたりしたことがあるが、これもいくらでもデータが生成できるからいくらでもp値を小さくできる。

サンプルサイズの議論は、効果量がこれこれで、サンプルサイズがこれだけしかないのに有意差出ちゃったときは1-beta計算してみれば<0.8になってるからそれは偶然(もしくは有意になったところでデータ集め打ち切った)だからもっとデータ集めないとだけですよ、みたいな議論は出来るけど、サンプルサイズが異様にでかいときになんか言ってくれるわけではない。

もちろん、効果量をちゃんと書くべきということにはなるが、効果量が小さければ意味がないというものでもない。MRのBOLD変化やEMGのspike-triggered averagingはデータはノイジー(=正規化すると効果量は小さい)だが、それは間接的な計測であることの帰結。

だから統計的有意味性と生物的な有意味性を分けて考えようみたいな話になるわけだけど、「生物的な有意味性」というのはけっきょく社会的合意の産物っぽい。

たとえばポズナー課題でSRTが5ms短くなったとしてそれにどのくらい意味があるかは、なんかべつのものに置き換えて評価するべきなのかも。たとえばspeed-accuracy trade-offを考慮して、5ms応答潜時が早くなることは正答率が何%向上するのと同等であるとか。

ここまで書いて見直してみたが、検出力の意味を説明するには絶望的に説明が足りてないな。まあそういうのは必要に応じて作ることにする。

そういう話ではなくって、データありすぎっていう状況に対していったい何が出来るのだろうかとか考えたかったのだけど、なんだかワケわからなくなってしまった。

効果量と検出力とサンプルデータ数の間には一定の関係があるのだから、たとえば、データ多すぎるときは、推定される効果量とあらかじめ決めた検出力(0.8とか)で必要とされるサンプル数が決まるから、多すぎるデータから適切なサンプル数をリサンプルして、検定を繰り返すとか? p値の確率密度分布、みたいなわけの分からないことになってきた。

もともとH0:mu=0ってのが一点しかないのが間違いで、幅があれば、alphaとbetaのどちらを重視するかっていうpayoff matrixを書いて、それが最適になるようにalphaとbetaを意志決定すればよいのだけど、そうなってない。

alpha=0.05, 1-beta=0.80に固定すると、effect sizeとnumber of sampled dataの関係が決まる。これをプロットするとこうなる。

よく分からないけど、log-logプロットで直線になった。


今回やった検出力のシミュレーションのコードをbitbucketに上げてみた。Subversionからgitへの移行の練習を兼ねて。


お勧めエントリ


月別過去ログ