非中心パラメーターを使用して anova パワーとサンプル サイズを計算する関数をいくつか作成しようとしました。
Rには非常に優れた機能がいくつかありますが、私の機能は生物統計学の本から考え方を学習して再現することでした...
数学が関係しているにもかかわらず、私の「nc」と「fpower」関数はうまく機能し、期待どおりです。
nc <- function(diff,n,sd) {
nonc <- (diff^2/2)*(n/sd^2)
return(nonc)
}
fpower <- function(k,n,diff,sd,alpha=0.05) {
nonc <- nc(diff,n,sd)
dfn <- k - 1
dfd <- k*(n-1)
f1 <- qf(1-alpha,dfn,dfd)
f2 <- pf(f1,dfn,dfd,nonc)
return(1-f2)
}
ただし、私の「fsample」は期待どおりに機能しません。seq の最初の n である 2 を返します。
fsample <- function(k,diff,sd,alpha=0.05,power=0.9){
for(n in 2:5000){
if ( fpower(k,n,sd,alpha) >= power) break
}
return(n)
}
しかし、コンソールでこのコードを「手で」実行すると、期待どおりに動作します!! そして、正しい n 値を返します。
どうしたの?