ในบทความล่าสุดของNorton และคณะ (2018)ระบุว่า
อัตราส่วนของอัตราต่อรองที่แตกต่างจากการศึกษาเดียวกันไม่สามารถเปรียบเทียบได้เมื่อแบบจำลองทางสถิติที่ส่งผลให้การประมาณอัตราต่อรองมีตัวแปรอธิบายที่แตกต่างกัน และขนาดของอัตราต่อรองจากการศึกษาหนึ่งสามารถเปรียบเทียบกับขนาดของอัตราต่อรองได้จากการศึกษาอื่นเพราะตัวอย่างที่แตกต่างกันและข้อกำหนดของแบบจำลองที่แตกต่างกันจะมีปัจจัยการปรับขนาดโดยพลการแตกต่างกัน อีกนัยหนึ่งคือขนาดของอัตราต่อรองของการเชื่อมโยงที่กำหนดในการศึกษาหลาย ๆ ครั้งไม่สามารถสังเคราะห์ได้ในการวิเคราะห์อภิมาน
การจำลองขนาดเล็กแสดงให้เห็นถึงนี้ (รหัส R อยู่ที่ด้านล่างของคำถาม) สมมติว่ารูปแบบที่แท้จริงคือ:
ลองจินตนาการอีกว่าข้อมูลเดียวกันที่สร้างขึ้นโดยตัวแบบข้างต้นถูกวิเคราะห์โดยนักวิจัยสี่คนโดยใช้การถดถอยโลจิสติกส์ นักวิจัย 1 รวมเป็น covariate เท่านั้นนักวิจัย 2 รวมทั้งและและอื่น ๆ การประมาณการแบบจำลองโดยเฉลี่ยของอัตราต่อรองสำหรับของสี่นักวิจัยคือ:
res_1 res_2 res_3 res_4
1.679768 1.776200 2.002157 2.004077
เห็นได้ชัดว่ามีเพียงนักวิจัย 3 และ 4 เท่านั้นที่ได้รับอัตราต่อรองที่ถูกต้องประมาณในขณะที่นักวิจัย 1 และ 2 ไม่ได้ สิ่งนี้ไม่ได้เกิดขึ้นในการถดถอยเชิงเส้นซึ่งสามารถแสดงได้อย่างง่ายดายโดยการจำลองที่คล้ายกัน (ไม่แสดงที่นี่) ผมต้องยอมรับว่านี่คือผลที่ค่อนข้างประหลาดใจให้กับผมแม้ว่าปัญหานี้ดูเหมือนว่าจะรู้จักกันดี{[2]} Hernánและคณะ (2011)เรียกสิ่งนี้ว่า "ความผิดปกติทางคณิตศาสตร์" แทนที่จะเป็นอคติ
คำถามของฉัน:
- หากอัตราต่อรองนั้นไม่มีใครเทียบได้กับการศึกษาและแบบจำลองเราจะรวมผลลัพธ์ของการศึกษาที่แตกต่างกันสำหรับผลลัพธ์ไบนารีได้อย่างไร
- สิ่งที่สามารถกล่าวเกี่ยวกับการนับไม่ถ้วนอภิวิเคราะห์ที่ไม่รวมอัตราส่วนราคาต่อรองจากการศึกษาที่แตกต่างกันซึ่งแต่ละการศึกษาอาจจะปรับเปลี่ยนการตั้งค่าที่แตกต่างกันของตัวแปร? พวกมันไร้ประโยชน์หรือเปล่า?
อ้างอิง
[1]: Norton EC, Dowd, Maciejewski ML (2018): อัตราต่อรอง - วิธีปฏิบัติที่ดีที่สุดในปัจจุบันและการใช้งาน JAMA 320 (1): 84-85
[2]: Norton EC, Dowd BE (2017): อัตราต่อรองและการแปลความหมายของโมเดล Logit Res บริการสุขภาพ 53 (2): 859-878
[3]: Hernán MA, Clayton D, Keiding N (2011): ความขัดแย้งของ Simpson ไม่ได้รับการแก้ไข Int J Epidemiol 40: 780-785
การเปิดเผย
คำถาม (รวมทั้งรหัสการ R) เป็นรุ่นที่ปรับเปลี่ยนคำถามโพสต์โดยผู้ใช้timdisherบนdatamethods
รหัส R
set.seed(142857)
n_sims <- 1000 # number of simulations
out <- data.frame(
treat_1 = rep(NA, n_sims)
, treat_2 = rep(NA, n_sims)
, treat_3 = rep(NA, n_sims)
, treat_4 = rep(NA, n_sims)
)
n <- 1000 # number of observations in each simulation
coef_sim <- "x1" # Coefficient of interest
# Coefficients (log-odds)
b0 <- 1
b1 <- log(2)
b2 <- log(2.5)
b3 <- log(3)
b4 <- 0
for(i in 1:n_sims){
x1 <- rbinom(n, 1, 0.5)
x2 <- rnorm(n)
x3 <- rnorm(n)
x4 <- rnorm(n)
z <- b0 + b1*x1 + b2*x2 + b3*x3 + b4*x4
pr <- 1/(1 + exp(-z))
y <- rbinom(n, 1, pr)
df <- data.frame(y = y, x1 = x1, x2 = x2, x3 = x3, x4 = x4)
model1 <- glm(y ~ x1, data = df, family = "binomial")
model2 <- glm(y ~ x1 + x2, data = df, family = "binomial")
model3 <- glm(y ~ x1 + x2 + x3, data = df, family = "binomial")
model4 <- glm(y ~ x1 + x2 + x3 + x4, data = df, family = "binomial")
out$treat_1[i] <- model1$coefficients[coef_sim]
out$treat_2[i] <- model2$coefficients[coef_sim]
out$treat_3[i] <- model3$coefficients[coef_sim]
out$treat_4[i] <- model4$coefficients[coef_sim]
}
# Coefficients
colMeans(out)
exp(colMeans(out)) # Odds ratios