■
先日のやり方は間違ってました。
分割表の確率の計算方法が,期待値算出になってました。
正しくは,実際に得られたデータの比率を計算するだけです。
まず,以下の関数を再度定義。
sqr.obs<-function(x){ n<-sum(x) pob<-x/n print(pob) }
で,先日の例をおさらい。
> data [,1] [,2] [1,] 5 7 [2,] 13 12 > sqr.obs(data)->data2 [,1] [,2] [1,] 0.1351351 0.1891892 [2,] 0.3513514 0.3243243 > ES.w2(data2)->w1 > pwr.chisq.test(w=w1,df=(2-1)*(2-1),N=37) Chi squared power calculation w = 0.09678053 N = 37 df = 1 sig.level = 0.05 power = 0.09055218 NOTE: N is the number of observations
まぁあんまり変わらないけど,検出力はやはり低いですね。
んじゃ,サンプルサイズが増えれば,いいのでは?
と思い。
> data<-matrix(c(55,77,133,122),ncol=2,byrow=T) > data [,1] [,2] [1,] 55 77 [2,] 133 122 > sqr.obs(data)->data2 [,1] [,2] [1,] 0.1421189 0.1989664 [2,] 0.3436693 0.3152455 > ES.w2(data2)->w1 > pwr.chisq.test(w=w1,df=(2-1)*(2-1),N=sum(data)) Chi squared power calculation w = 0.09950278 N = 387 df = 1 sig.level = 0.05 power = 0.4990418 NOTE: N is the number of observations
なるほど,確かに検出力が上がってますね。それでも一般に推奨される0.8まではほど遠いです。
でも,
> chisq.test(data) Pearson's Chi-squared test with Yates' continuity correction data: data X-squared = 3.4232, df = 1, p-value = 0.06429
このようにp値もかなり低い値になっている。
2*3の場合には?
> d<-matrix(c(5,13,7,12,5,18),ncol=3) > d [,1] [,2] [,3] [1,] 5 7 5 [2,] 13 12 18 > sqr.obs(d) [,1] [,2] [,3] [1,] 0.08333333 0.1166667 0.08333333 [2,] 0.21666667 0.2000000 0.30000000 > pwr.chisq.test(w=ES.w2(obs.d),df=(2-1)*(3-1),N=60) Chi squared power calculation w = 0.1398043 N = 60 df = 2 sig.level = 0.05 power = 0.1482380 NOTE: N is the number of observations
となる。