Ön Bilgiler:
NESα
@ GregSnow'un mükemmel yayınına ek olarak , CV üzerinde simülasyon tabanlı güç analizleri için gerçekten harika bir rehber burada bulunabilir: İstatistiksel gücün hesaplanması . Temel fikirleri özetlemek için:
- tespit edebilmek istediğiniz etkiyi çözmek
- Bu olası dünyadan N veri üretmek
- bu sahte veriler üzerinde yapmayı düşündüğünüz analizi yapın
- seçtiğiniz alfaya göre sonuçların 'anlamlı' olup olmadığını saklayın
- BN
- N
ppBpB
R'de verilen 'başarı' olasılığına sahip ikili veri oluşturmanın birincil yolu ? Rbinom'dur.
- Örneğin, olasılıklı p olan 10 Bernoulli denemesinden elde edilen başarı sayısını elde etmek için, kod şöyle olacaktır
rbinom(n=10, size=1, prob=p)
(muhtemelen sonucu depolamak için bir değişkene atamak isteyeceksiniz).
- bu verileri ayrıca ? runif , örneğin,
ifelse(runif(1)<=p, 1, 0)
- Sonuçların gizli bir Gauss değişkeni tarafından yönlendirildiğine inanıyorsanız, gizli değişkeninizi ? rnorm ile eş değişkenlerinizin bir işlevi olarak oluşturabilir ve ardından bunları kodunuzdakilerle olasılıklara dönüştürebilir ve bunları
pnorm()
kullanabilirsiniz rbinom()
.
var12var1∗var2var12∗var2
- Her ne kadar farklı bir soru bağlamında yazılsa da, buradaki cevabım: logit ve probit modeller arasındaki fark bu model türleri hakkında birçok temel bilgiye sahiptir.
Farklı türü vardır gibi Tip I hata oranları birden hipotezler (örneğin vardır başına aksine hata oranı , Familywise hata oranı , & başına ailenin hata oranı ), bu yüzden güç * orada farklı türde (örneğin içindir a tek etkili, önceden belirlenmiş için, herhangi bir etki ve için, tüm etkileri ). Ayrıca, belirli bir etki kombinasyonunu tespit etme gücü veya bir bütün olarak modelin eş zamanlı testinin gücü için de arama yapabilirsiniz. SAS kodunu açıklamana göre tahminime göre bu sonuncusu. Ancak, durumunuzla ilgili tanımınızdan, etkileşim etkilerini minimumda tespit etmek istediğinizi farz ediyorum.
İktidarla ilgili meseleler hakkında düşünmenin farklı bir yolu için, buradaki cevaba bakınız: Örneklem büyüklüğünü haklı çıkarma bağlamında korelasyonları tahmin etmede genel kesinliği nasıl rapor edersiniz.
R'de lojistik regresyon için basit post-hoc güç:
Diyelim ki kabul ettiğiniz cevap oranları, dünyadaki gerçek durumu ve 10.000 mektup gönderdiğinizi. Bu etkileri tespit etmenin gücü nedir? ("Komik olarak etkin" kodunu yazdığım için ünlü olduğumu unutmayın, aşağıdakiler verimlilik için optimize edilmiş olmaktan ziyade takip edilmesi kolay olmalı, aslında oldukça yavaş.)
set.seed(1)
repetitions = 1000
N = 10000
n = N/8
var1 = c( .03, .03, .03, .03, .06, .06, .09, .09)
var2 = c( 0, 0, 0, 1, 0, 1, 0, 1)
rates = c(0.0025, 0.0025, 0.0025, 0.00395, 0.003, 0.0042, 0.0035, 0.002)
var1 = rep(var1, times=n)
var2 = rep(var2, times=n)
var12 = var1**2
var1x2 = var1 *var2
var12x2 = var12*var2
significant = matrix(nrow=repetitions, ncol=7)
startT = proc.time()[3]
for(i in 1:repetitions){
responses = rbinom(n=N, size=1, prob=rates)
model = glm(responses~var1+var2+var12+var1x2+var12x2,
family=binomial(link="logit"))
significant[i,1:5] = (summary(model)$coefficients[2:6,4]<.05)
significant[i,6] = sum(significant[i,1:5])
modelDev = model$null.deviance-model$deviance
significant[i,7] = (1-pchisq(modelDev, 5))<.05
}
endT = proc.time()[3]
endT-startT
sum(significant[,1])/repetitions # pre-specified effect power for var1
[1] 0.042
sum(significant[,2])/repetitions # pre-specified effect power for var2
[1] 0.017
sum(significant[,3])/repetitions # pre-specified effect power for var12
[1] 0.035
sum(significant[,4])/repetitions # pre-specified effect power for var1X2
[1] 0.019
sum(significant[,5])/repetitions # pre-specified effect power for var12X2
[1] 0.022
sum(significant[,7])/repetitions # power for likelihood ratio test of model
[1] 0.168
sum(significant[,6]==5)/repetitions # all effects power
[1] 0.001
sum(significant[,6]>0)/repetitions # any effect power
[1] 0.065
sum(significant[,4]&significant[,5])/repetitions # power for interaction terms
[1] 0.017
Bu nedenle, 10.000 harften bu yanıt oranlarını tespit etmek için% 80 güç (herhangi bir türde) gerçekten elde edilemiyor. (SAS kodunun, bu yaklaşımlar arasındaki keskin uyuşmazlığı açıklayabilmek için ne yaptığından yeterince emin değilim, ancak bu kod kavramsal olarak basit - eğer yavaşsa - ve kontrol etmek için biraz zaman harcadım ve bunları düşünüyorum. sonuçlar makul.)
Lojistik regresyon için simülasyon temelli a priori gücü:
NNNN
NN
sum(significant[,1])/repetitions # pre-specified effect power for var1
[1] 0.115
sum(significant[,2])/repetitions # pre-specified effect power for var2
[1] 0.091
sum(significant[,3])/repetitions # pre-specified effect power for var12
[1] 0.059
sum(significant[,4])/repetitions # pre-specified effect power for var1X2
[1] 0.606
sum(significant[,5])/repetitions # pre-specified effect power for var12X2
[1] 0.913
sum(significant[,7])/repetitions # power for likelihood ratio test of model
[1] 1
sum(significant[,6]==5)/repetitions # all effects power
[1] 0.005
sum(significant[,6]>0)/repetitions # any effect power
[1] 0.96
sum(significant[,4]&significant[,5])/repetitions # power for interaction terms
[1] 0.606
var12significant
N