Sức mạnh cho hai bài kiểm tra mẫu t


10

Tôi đang cố gắng hiểu tính toán công suất cho trường hợp của hai bài kiểm tra mẫu độc lập (không giả sử phương sai bằng nhau nên tôi đã sử dụng Satterthwaite).

Đây là một sơ đồ mà tôi tìm thấy để giúp hiểu quá trình:

nhập mô tả hình ảnh ở đây

Vì vậy, tôi giả định rằng đã đưa ra những điều sau đây về hai quần thể và đưa ra các cỡ mẫu:

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

Tôi có thể tính giá trị tới hạn theo giá trị null liên quan đến xác suất đuôi trên 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

và sau đó tính toán giả thuyết thay thế (mà trong trường hợp này tôi đã học được là "phân phối không trung tâm"). Tôi đã tính beta trong sơ đồ trên bằng cách sử dụng phân phối không trung tâm và giá trị tới hạn được tìm thấy ở trên. Đây là kịch bản đầy đủ trong 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)

Điều này cho giá trị năng lượng là 0,4935132.

Đây có phải là cách tiếp cận chính xác? Tôi thấy rằng nếu tôi sử dụng phần mềm tính toán năng lượng khác (như SAS, mà tôi nghĩ rằng tôi đã thiết lập tương đương với vấn đề của mình bên dưới), tôi nhận được một câu trả lời khác (từ SAS là 0,33).

MÃ SỐ:

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

Cuối cùng, tôi muốn có được một sự hiểu biết cho phép tôi xem xét các mô phỏng cho các thủ tục phức tạp hơn.

EDIT: Tôi tìm thấy lỗi của tôi. nên đã được

1-pt (CV, df, ncp) KHÔNG 1-pt (t, df, ncp)

Câu trả lời:


8

Bạn đang ở gần, một số thay đổi nhỏ được yêu cầu mặc dù:

  • Sự khác biệt thực sự về phương tiện thường được lấy là , không phải theo cách khác.μ2μ1
  • G * Power sử dụng làm mức độ tự do cho phân phối trong trường hợp này (các phương sai khác nhau, cùng kích thước nhóm), theo gợi ý từ Cohen như được giải thích ở đâyn1+n22t
  • SAS có thể sử dụng công thức của Welch hoặc công thức của Satterthwaite cho df với các phương sai không bằng nhau (được tìm thấy trong pdf này mà bạn đã trích dẫn ) - chỉ có 2 chữ số có nghĩa trong kết quả mà người ta không thể biết (xem bên dưới)

Với n1, n2, mu1, mu2, sd1, sd2như được định nghĩa trong câu hỏi của bạn:

> 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

Điều này phù hợp với kết quả từ G * Power , một chương trình tuyệt vời cho những câu hỏi này. Nó cũng hiển thị df, giá trị tới hạn, ncp, vì vậy bạn có thể kiểm tra tất cả các tính toán này một cách riêng biệt.

nhập mô tả hình ảnh ở đây

Chỉnh sửa: Sử dụng công thức của Satterthwaite hoặc công thức của Welch không thay đổi nhiều (vẫn là 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

(lưu ý rằng tôi đã thay đổi một số tên biến như t, dfdiffcũng là tên của các hàm dựng sẵn, cũng lưu ý rằng tử số của mã của bạn dflà sai, nó bị đặt sai vị trí ^2^2quá nhiều, nên là vậy ((sd1^2/n1) + (sd2^2/n2))^2)


cảm ơn! Một điều là, không phải công thức này cho df giả định rằng độ lệch chuẩn dân số là bằng nhau? Xem trang 3 của phần sau (nơi tôi đã nhận Satterthwaite df): stata-journal.com/sjpdf.html?articlenum=st0062 . Giả sử, SAS sử dụng xấp xỉ này trong Proc tôi đã đăng.
B_Miner

Tôi tìm thấy lỗi của tôi và điều chỉnh ở trên trong câu hỏi của tôi. Cảm ơn một lần nữa!
B_Miner

1
@B_Miner Tôi đã cập nhật câu trả lời của mình để giải quyết câu hỏi của bạn.
caracal

1

Nếu bạn chủ yếu quan tâm đến việc tính toán sức mạnh (thay vì học bằng cách thực hiện bằng tay) và bạn đã sử dụng R thì hãy xem pwrgói và chức năng pwr.t.testhoặc pwr.t2n.testchức năng. (những điều này có thể tốt để xác minh kết quả của bạn ngay cả khi bạn làm bằng tay để tìm hiểu).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.