2標本t検定の検出力


10

2つの独立したサンプルのt検定の場合の検出力の計算を理解しようとしています(分散が等しいと想定していないため、Satterthwaiteを使用しました)。

これは、プロセスを理解するのに役立つことがわかった図です。

ここに画像の説明を入力してください

したがって、2つの母集団について次のことを与え、サンプルサイズを与えると仮定しました。

mu1<-5
mu2<-6
sd1<-3
sd2<-2
n1<-20
n2<-20

アッパーテールの確率が0.05であることに関連して、nullの下で臨界値を計算できます。

df<-(((sd1^2/n1)+(sd2^2/n2)^2)^2) / ( ((sd1^2/n1)^2)/(n1-1) + ((sd2^2/n2)^2)/(n2-1)  )
CV<- qt(0.95,df) #equals 1.730018

そして、対立仮説を計算します(この場合、私が学んだのは「非中心t分布」です)。上の図で、中央以外の分布と上で見つかった臨界値を使用してベータを計算しました。Rの完全なスクリプトは次のとおりです。

#under alternative
mu1<-5
mu2<-6
sd1<-3
sd2<-2
n1<-20
n2<-20


#Under null
Sp<-sqrt(((n1-1)*sd1^2+(n2-1)*sd2^2)/(n1+n2-2))
df<-(((sd1^2/n1)+(sd2^2/n2)^2)^2) / ( ((sd1^2/n1)^2)/(n1-1) + ((sd2^2/n2)^2)/(n2-1)  )
CV<- qt(0.95,df)


#under alternative
diff<-mu1-mu2
t<-(diff)/sqrt((sd1^2/n1)+ (sd2^2/n2))
ncp<-(diff/sqrt((sd1^2/n1)+(sd2^2/n2)))


#power
1-pt(t, df, ncp)

これにより、0.4935132のパワー値が得られます。

これは正しいアプローチですか?他の電力計算ソフトウェア(以下の私の問題と同等に設定したと思われるSASなど)を使用すると、別の回答が得られます(SASからは0.33です)。

SASコード:

proc power;
      twosamplemeans test=diff_satt
         meandiff = 1
         groupstddevs = 3 | 2
         groupweights = (1 1)
         ntotal = 40
         power = .
        sides=1;
   run;

最終的には、より複雑な手順のシミュレーションを見ることができるようになりたいと思います。

編集:私は自分のエラーを見つけました。になるはずだった

1-pt(CV、df、ncp)NOT 1-pt(t、df、ncp)

回答:


8

あなたは近いですが、いくつかの小さな変更が必要です:

  • μ2μ1
  • n1+n22t
  • SASは、不均等な分散(このpdfで引用)が与えられた場合、ウェルチの式またはSatterthwaiteの式をdfに使用する可能性があります-結果に有効数字が2桁しかない(以下を参照)

n1, n2, mu1, mu2, sd1, sd2あなたの質問に定義されています:

> alpha   <- 0.05
> dfGP    <- n1+n2 - 2                     # degrees of freedom (used by G*Power)
> cvGP    <- qt(1-alpha, dfGP)             # crit. value for one-sided test (under the null)
> muDiff  <- mu2-mu1                       # true difference in means
> sigDiff <- sqrt((sd1^2/n1) + (sd2^2/n2)) # true SD for difference in empirical means
> ncp     <- muDiff / sigDiff              # noncentrality parameter (under alternative)
> 1-pt(cvGP, dfGP, ncp)                    # power
[1] 0.3348385

これは、これらの質問に最適なプログラムであるG * Powerの結果と一致します。df、臨界値、ncpも表示されるため、これらすべての計算を個別に確認できます。

ここに画像の説明を入力してください

編集:Satterthwaiteの式またはWelchの式を使用しても、大きな変化はありません(まだ0.33 *):

# Satterthwaite's formula
> var1  <- sd1^2
> var2  <- sd2^2
> num   <- (var1/n1 + var2/n2)^2
> denST <- var1^2/((n1-1)*n1^2) + var2^2/((n2-1)*n2^2)
> (dfST <- num/denST)
[1] 33.10309

> cvST <- qt(1-alpha, dfST)
> 1-pt(cvST, dfST, ncp)
[1] 0.3336495

# Welch's formula
> denW <- var1^2/((n1+1)*n1^2) + var2^2/((n2+1)*n2^2)
> (dfW <- (num/denW) - 2)
[1] 34.58763

> cvW   <- qt(1-alpha, dfW)
> 1-pt(cvW, dfW, ncp)
[1] 0.3340453

(注私は少しのように、いくつかの変数名を変更したことtdfおよびdiffのためのあなたのコードの分子は、そのノートも、また組み込み関数の名前ですdf間違っている、それが紛失している^2、と1 ^2あまりにも多く、それはする必要があります((sd1^2/n1) + (sd2^2/n2))^2


ありがとう!1つは、このdfの式は、母標準偏差が等しいと想定していないことです。次の3ページ(Satterthwaite dfを入手した場所)を参照してください:stata-journal.com/sjpdf.html?articlenum=st0062。おそらく、SASは私が投稿したプロシージャでこの近似を使用しています。
B_Miner '15年

私は自分のエラーを見つけ、上記の質問で調整しました。再度、感謝します!
B_Miner '15年

1
@B_Miner私はあなたの質問に対処するために私の答えを更新しました。
カラカル、2011年

1

(手動で行うのではなく)主にパワーの計算に関心があり、すでにRを使用している場合は、pwrパッケージとpwr.t.testまたはpwr.t2n.test関数のいずれかを調べます。(これらは、学習のために手作業で行った場合でも、結果を検証するのに適しています)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.