พลังงานสำหรับการทดสอบตัวอย่างสองตัวอย่าง


10

ฉันพยายามที่จะเข้าใจการคำนวณพลังงานสำหรับกรณีของการทดสอบตัวอย่างอิสระสองรายการ (ไม่ได้สมมติความแปรปรวนเท่ากันดังนั้นฉันจึงใช้ Satterthwaite)

นี่คือแผนภาพที่ฉันพบเพื่อช่วยให้เข้าใจกระบวนการ:

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นฉันจึงสันนิษฐานว่าให้สิ่งต่อไปนี้เกี่ยวกับประชากรสองคนและกำหนดขนาดตัวอย่าง:

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

ฉันสามารถคำนวณค่าวิกฤตภายใต้ null ที่เกี่ยวข้องกับการมีความน่าจะเป็นหางส่วนบน 0.05:

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

แล้วคำนวณสมมติฐานทางเลือก (ซึ่งสำหรับกรณีนี้ฉันได้เรียนรู้คือ "การกระจายตัวทีไม่ใช่ศูนย์กลาง") ฉันคำนวณเบต้าในแผนภาพด้านบนโดยใช้การแจกแจงที่ไม่ใช่ศูนย์กลางและค่าวิกฤตที่พบข้างต้น นี่คือสคริปต์แบบเต็มใน 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) ไม่ใช่ 1-pt (t, df, ncp)

คำตอบ:


8

คุณปิดแล้วจำเป็นต้องทำการเปลี่ยนแปลงเล็กน้อย:

  • μ2-μ1
  • n1+n2-2เสื้อ
  • SAS อาจใช้สูตรของ Welch หรือสูตรของ Satterthwaite สำหรับ df ที่ให้ผลต่างไม่เท่ากัน (พบในไฟล์ PDFนี้ที่คุณอ้างถึง ) - มีเพียง 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, dfและdiffนอกจากนี้ยังมีชื่อของฟังก์ชั่นนอกจากนี้ยังทราบว่าเศษของรหัสของคุณสำหรับdfถูกผิดก็มีใส่ผิด^2และหนึ่ง^2มากเกินไปมันควรจะเป็น((sd1^2/n1) + (sd2^2/n2))^2)


ขอบคุณ! สิ่งหนึ่งคือสูตรนี้สำหรับ df ไม่สมมติว่าค่าเบี่ยงเบนมาตรฐานประชากรเท่ากันหรือไม่ ดูหน้า 3 ต่อไปนี้ (ที่ผมได้ Satterthwaite DF): stata-journal.com/sjpdf.html?articlenum=st0062 คาดคะเนว่า SAS ใช้การประมาณนี้ใน proc I ที่โพสต์
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.