Sebagai lanjutan dari posting oleh Stephan Kolassa (saya tidak bisa menambahkan ini sebagai komentar), saya punya beberapa kode alternatif untuk simulasi. Ini menggunakan struktur dasar yang sama, tetapi meledak sedikit lebih, jadi mungkin sedikit lebih mudah dibaca. Ini juga didasarkan pada kode oleh Kleinman dan Horton untuk mensimulasikan regresi logistik.
nn adalah angka dalam sampel. Kovariat harus didistribusikan secara terus menerus secara normal, dan distandarisasi untuk berarti 0 dan sd 1. Kami menggunakan rnorm (nn) untuk menghasilkan ini. Kami memilih rasio odds dan menyimpannya di odds.ratio. Kami juga memilih nomor untuk intersep. Pilihan nomor ini menentukan proporsi sampel yang mengalami "peristiwa" (mis. 0,1, 0,4, 0,5). Anda harus bermain-main dengan nomor ini sampai Anda mendapatkan proporsi yang tepat. Kode berikut memberi Anda proporsi 0,1 dengan ukuran sampel 950 dan OR 1,5:
nn <- 950
runs <- 10000
intercept <- log(9)
odds.ratio <- 1.5
beta <- log(odds.ratio)
proportion <- replicate(
n = runs,
expr = {
xtest <- rnorm(nn)
linpred <- intercept + (xtest * beta)
prob <- exp(linpred)/(1 + exp(linpred))
runis <- runif(length(xtest),0,1)
ytest <- ifelse(runis < prob,1,0)
prop <- length(which(ytest <= 0.5))/length(ytest)
}
)
summary(proportion)
ringkasan (proporsi) menegaskan bahwa proporsinya ~ 0,1
Kemudian menggunakan variabel yang sama, daya dihitung lebih dari 10.000 berjalan:
result <- replicate(
n = runs,
expr = {
xtest <- rnorm(nn)
linpred <- intercept + (xtest * beta)
prob <- exp(linpred)/(1 + exp(linpred))
runis <- runif(length(xtest),0,1)
ytest <- ifelse(runis < prob,1,0)
summary(model <- glm(ytest ~ xtest, family = "binomial"))$coefficients[2,4] < .05
}
)
print(sum(result)/runs)
Saya pikir kode ini benar - saya memeriksanya dengan contoh yang diberikan dalam Hsieh, 1998 (tabel 2), dan sepertinya setuju dengan tiga contoh yang diberikan di sana. Saya juga mengujinya terhadap contoh pada hal 342 - 343 dari Hosmer dan Lemeshow, di mana ia menemukan kekuatan 0,75 (dibandingkan dengan 0,8 dalam Hosmer dan Lemeshow). Jadi mungkin dalam beberapa keadaan pendekatan ini meremehkan kekuasaan. Namun, ketika saya menjalankan contoh yang sama dalam kalkulator online ini , saya menemukan bahwa itu sesuai dengan saya dan bukan hasil di Hosmer dan Lemeshow.
Jika ada yang bisa memberi tahu kami mengapa demikian, saya akan tertarik untuk mengetahuinya.