두 개의 샘플 t 테스트를위한 검정력


10

두 개의 독립적 인 샘플 t- 검정의 경우 전력 계산을 이해하려고합니다 (동일한 분산을 가정하지 않으므로 Satterthwaite를 사용했습니다).

프로세스를 이해하는 데 도움이되는 다이어그램은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

그래서 두 모집단에 대해 다음을 가정하고 표본 크기를 가정했습니다.

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
  • G * Power여기에 설명 된대로 Cohen의 제안에 따라 를이 경우 분포 의 자유도 (다른 분산, 동일한 그룹 크기)로 사용 합니다.1+22
  • SAS는 동일하지 않은 분산 (이 인용 된 pdf 에서 찾을 수 있음)에서 df에 Welch의 공식 또는 Satterthwaite의 공식을 사용할 수 있습니다. 결과에 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

(주 나는 약간 몇 가지 변수 이름을 변경하는 것이 아니라 t, dfdiff내장 기능도에 대한 코드의 분자가주의의 이름 또한 df, 그것은 잘못했다 잘못되고 ^2, 하나는 ^2너무 많은, 그것은해야한다 ((sd1^2/n1) + (sd2^2/n2))^2)


감사! 하나는, df에 대한이 공식이 모집단 표준 편차가 같다고 가정하지 않습니까? 다음의 3 페이지를 참조하십시오 (Satterthwaite df가있는 곳 : stata-journal.com/sjpdf.html?articlenum=st0062) . 아마도 SAS는 내가 게시 한 절차 에서이 근사치를 사용한다고 가정합니다.
B_Miner

내 오류를 발견하고 내 질문에서 위를 조정했습니다. 다시 감사합니다!
B_Miner

1
@B_Miner 귀하의 질문에 답변하기 위해 답변을 업데이트했습니다.
caracal

1

전력을 계산하는 데 주로 관심이 있고 (수동으로 배우는 것이 아니라) 이미 R을 사용하고 있다면 pwr패키지와 pwr.t.test또는 pwr.t2n.test함수 를 살펴보십시오 . (수동으로 배우더라도 결과를 확인하는 것이 좋습니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.