ติดตามจากโพสต์โดย Stephan Kolassa (ฉันไม่สามารถเพิ่มสิ่งนี้เป็นความคิดเห็น) ฉันมีรหัสทางเลือกสำหรับการจำลอง สิ่งนี้ใช้โครงสร้างพื้นฐานเดียวกัน แต่มีการระเบิดเพิ่มขึ้นอีกเล็กน้อยดังนั้นจึงอาจอ่านง่ายขึ้นเล็กน้อย นอกจากนี้ยังขึ้นอยู่กับรหัสโดยKleinman และ Hortonเพื่อจำลองการถดถอยโลจิสติก
nn คือตัวเลขในตัวอย่าง covariate ควรกระจายอย่างต่อเนื่องตามปกติและมาตรฐานเป็นค่าเฉลี่ย 0 และ sd 1 เราใช้ rnorm (nn) เพื่อสร้างสิ่งนี้ เราเลือกอัตราส่วนอัตราต่อรองและเก็บไว้ในอัตราต่อรอง นอกจากนี้เรายังเลือกหมายเลขสำหรับการสกัดกั้น ตัวเลือกของหมายเลขนี้ควบคุมสัดส่วนของตัวอย่างประสบการณ์ "เหตุการณ์" (เช่น 0.1, 0.4, 0.5) คุณต้องเล่นกับหมายเลขนี้จนกว่าคุณจะได้สัดส่วนที่ถูกต้อง รหัสต่อไปนี้จะให้สัดส่วน 0.1 กับขนาดตัวอย่าง 950 และ 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)
สรุป (สัดส่วน) ยืนยันว่าสัดส่วนเป็น ~ 0.1
จากนั้นใช้ตัวแปรเดียวกันกำลังจะถูกคำนวณมากกว่า 10,000 ครั้ง:
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)
ฉันคิดว่ารหัสนี้ถูกต้อง - ฉันตรวจสอบกับตัวอย่างที่ให้ไว้ใน Hsieh, 1998 (ตารางที่ 2) และดูเหมือนว่าจะเห็นด้วยกับสามตัวอย่างที่ให้ไว้ที่นั่น ฉันยังทดสอบกับตัวอย่างใน p 342 - 343 ของ Hosmer และ Lemeshow ซึ่งพบพลัง 0.75 (เทียบกับ 0.8 ใน Hosmer และ Lemeshow) ดังนั้นอาจเป็นไปได้ว่าในบางสถานการณ์วิธีการนี้จะประเมินพลังงานต่ำกว่าที่ควร อย่างไรก็ตามเมื่อฉันเรียกใช้ตัวอย่างเดียวกันในเครื่องคิดเลขออนไลน์ฉันพบว่ามันเห็นด้วยกับฉันและไม่ใช่ผลลัพธ์ใน Hosmer และ Lemeshow
หากใครสามารถบอกเราได้ว่าเหตุใดในกรณีนี้ฉันสนใจที่จะรู้