การวิเคราะห์อภิมานของอัตราส่วนราคาต่อรองเป็นสิ่งที่สิ้นหวังหรือไม่?


12

ในบทความล่าสุดของNorton และคณะ (2018)ระบุว่า[1]

อัตราส่วนของอัตราต่อรองที่แตกต่างจากการศึกษาเดียวกันไม่สามารถเปรียบเทียบได้เมื่อแบบจำลองทางสถิติที่ส่งผลให้การประมาณอัตราต่อรองมีตัวแปรอธิบายที่แตกต่างกัน และขนาดของอัตราต่อรองจากการศึกษาหนึ่งสามารถเปรียบเทียบกับขนาดของอัตราต่อรองได้จากการศึกษาอื่นเพราะตัวอย่างที่แตกต่างกันและข้อกำหนดของแบบจำลองที่แตกต่างกันจะมีปัจจัยการปรับขนาดโดยพลการแตกต่างกัน อีกนัยหนึ่งคือขนาดของอัตราต่อรองของการเชื่อมโยงที่กำหนดในการศึกษาหลาย ๆ ครั้งไม่สามารถสังเคราะห์ได้ในการวิเคราะห์อภิมาน

การจำลองขนาดเล็กแสดงให้เห็นถึงนี้ (รหัส R อยู่ที่ด้านล่างของคำถาม) สมมติว่ารูปแบบที่แท้จริงคือ: ลองจินตนาการอีกว่าข้อมูลเดียวกันที่สร้างขึ้นโดยตัวแบบข้างต้นถูกวิเคราะห์โดยนักวิจัยสี่คนโดยใช้การถดถอยโลจิสติกส์ นักวิจัย 1 รวมเป็น covariate เท่านั้นนักวิจัย 2 รวมทั้งและและอื่น ๆ การประมาณการแบบจำลองโดยเฉลี่ยของอัตราต่อรองสำหรับของสี่นักวิจัยคือ:

logit(yi)=1+log(2)x1i+log(2.5)x2i+log(3)x3i+0x4i
x1x1x2x1

res_1    res_2    res_3    res_4 
1.679768 1.776200 2.002157 2.004077

เห็นได้ชัดว่ามีเพียงนักวิจัย 3 และ 4 เท่านั้นที่ได้รับอัตราต่อรองที่ถูกต้องประมาณในขณะที่นักวิจัย 1 และ 2 ไม่ได้ สิ่งนี้ไม่ได้เกิดขึ้นในการถดถอยเชิงเส้นซึ่งสามารถแสดงได้อย่างง่ายดายโดยการจำลองที่คล้ายกัน (ไม่แสดงที่นี่) ผมต้องยอมรับว่านี่คือผลที่ค่อนข้างประหลาดใจให้กับผมแม้ว่าปัญหานี้ดูเหมือนว่าจะรู้จักกันดี{[2]} Hernánและคณะ (2011)เรียกสิ่งนี้ว่า "ความผิดปกติทางคณิตศาสตร์" แทนที่จะเป็นอคติ2[2][3]

คำถามของฉัน:

  1. หากอัตราต่อรองนั้นไม่มีใครเทียบได้กับการศึกษาและแบบจำลองเราจะรวมผลลัพธ์ของการศึกษาที่แตกต่างกันสำหรับผลลัพธ์ไบนารีได้อย่างไร
  2. สิ่งที่สามารถกล่าวเกี่ยวกับการนับไม่ถ้วนอภิวิเคราะห์ที่ไม่รวมอัตราส่วนราคาต่อรองจากการศึกษาที่แตกต่างกันซึ่งแต่ละการศึกษาอาจจะปรับเปลี่ยนการตั้งค่าที่แตกต่างกันของตัวแปร? พวกมันไร้ประโยชน์หรือเปล่า?

อ้างอิง

[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

ทำไมคุณถึงพูดแบบนี้ไม่ได้เกิดขึ้นกับการถดถอยเชิงเส้น ดูเหมือนว่าคุณกำลังอธิบายอคติตัวแปรที่ละเว้นอยู่ใช่ไหม
2879934

คำตอบ:


11

มีจำนวนของผลกระทบทางเลือกหนึ่งที่สามารถได้รับจากรูปแบบการถดถอยโลจิสติกที่ไม่ประสบปัญหาเดียวกันนี้ หนึ่งในสิ่งที่ง่ายที่สุดคือผลกระทบเฉลี่ยของตัวแปร สมมติว่าโมเดลการถดถอยโลจิสติกต่อไปนี้:

ln[p1p]=Xβ+γd

โดยที่คือ (กรณี) โดย (covariates) เมทริกซ์,คือน้ำหนักการถดถอยสำหรับ covariates,คือตัวแปรการรักษาที่น่าสนใจและเป็นผลของมันXnkβkdγ

สูตรสำหรับผลกระทบโดยเฉลี่ยของจะเป็น:d

1ni=1n[(1+e(Xβ+γ))1(1+eXβ)1]

ผลกระทบนี้จะเป็นความแตกต่างของความน่าจะเป็นโดยเฉลี่ยในผลลัพธ์ระหว่างกลุ่มการรักษาและกลุ่มควบคุมสำหรับผู้ที่มีค่าเดียวกันกับตัวทำนายอื่น ๆ (ดู Gelman & Hill, 2007, p. 101)

ไวยากรณ์ R ที่สอดคล้องกันที่ได้รับตัวอย่างของ OP คือ:

dydx_bin <- function(fit, coef) {
  mod.mat <- model.matrix(fit) # Obtain model matrix
  coefs <- coef(fit)
  oth_coefs <- coefs[!(names(coefs) == coef)] # Coefs bar focal predictor
  # Get model matrix excluding focal predictor
  X_nb <- as.matrix(mod.mat[, names(oth_coefs)])
  # Predictions for all data ignoring focal predictor
  Xb_nb <- X_nb %*% oth_coefs
  mean(plogis(Xb_nb + coefs[coef]) - plogis(Xb_nb))
}

ฉันแก้ไขไวยากรณ์ของ OP เพื่อแสดงว่าไม่ได้รับผลกระทบจากตัวแปรใดที่อยู่ในโมเดลตราบใดที่ตัวแปรตัวทำนายความสนใจไม่เกี่ยวข้องกับตัวทำนายอื่น ๆ

ฉันแก้ไขเฟรมข้อมูลผลลัพธ์ดังนั้น:

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),
  treat_11 = rep(NA, n_sims), treat_21 = rep(NA, n_sims),
  treat_31 = rep(NA, n_sims), treat_41 = rep(NA, n_sims)
)

และในการจำลองนั้นฉันบันทึกความแตกต่างความน่าจะเป็นเฉลี่ยที่คำนวณได้:

out$treat_11[i] <- dydx_bin(model1, coef_sim)
out$treat_21[i] <- dydx_bin(model2, coef_sim)
out$treat_31[i] <- dydx_bin(model3, coef_sim)
out$treat_41[i] <- dydx_bin(model4, coef_sim)

และผลลัพธ์ใหม่:

colMeans(out)[5:8]
 treat_11  treat_21  treat_31  treat_41 
0.1019574 0.1018248 0.1018544 0.1018642 

ผลกระทบโดยประมาณมีความสอดคล้องโดยไม่คำนึงถึงข้อกำหนดของรุ่น และการเพิ่ม covariates ปรับปรุงประสิทธิภาพเช่นเดียวกับแบบจำลองการถดถอยเชิงเส้น:

apply(out[, 5:8], 2, sd)
  treat_11   treat_21   treat_31   treat_41 
0.02896480 0.02722519 0.02492078 0.02493236 

มีเอฟเฟกต์เพิ่มเติมที่ OP สามารถคำนวณได้เช่นอัตราส่วนความน่าจะเป็นเฉลี่ยระหว่างสองกลุ่ม ความแตกต่างความน่าจะเป็นเฉลี่ยที่คำนวณข้างต้นสามารถใช้ได้จากแพ็คเกจระยะขอบใน R และคำสั่งระยะขอบใน Stata อัตราส่วนความน่าจะเป็นเฉลี่ยจะมีให้เฉพาะใน Stata

สำหรับคำถามอื่น ๆ เกี่ยวกับการเชื่อถือผลการวิเคราะห์อภิมาน สำหรับหนึ่งทิศทางของผลกระทบไม่ควรไร้ประโยชน์ ปัญหาอัตราส่วนอัตราต่อรองไม่ส่งผลกระทบต่อสัญญาณของค่าสัมประสิทธิ์ ดังนั้นหากการศึกษาจำนวนมากมีอัตราต่อรองที่สูงกว่าระดับหนึ่งไม่มีเหตุผลที่จะสงสัยผลกระทบนี้เนื่องจากปัญหาเฉพาะนี้

สำหรับการประมาณการที่แน่นอนนั้นไม่มีเหตุผลที่จะเชื่อได้ สิ่งที่ดีคือถ้าการศึกษาที่เป็นส่วนประกอบเป็นการทดลองแบบควบคุมแบบสุ่มดังนั้นอัตราต่อรองคือการประมาณการแบบอนุรักษ์นิยมและผลลัพธ์ที่แท้จริงจะยิ่งใหญ่กว่า นี่เป็นเพราะผลที่ได้จาก OP แสดงให้เห็นว่าอัตราส่วนของราคาต่อหนึ่งลดลง ดังนั้นหากการศึกษาจำนวนมากมีอัตราต่อรองที่สูงกว่า 1 และการวิเคราะห์เมตาดาต้ากำลังชี้ไปในทิศทางนี้ดังนั้นค่าจริงหรือเมื่อค่าความแปรปรวนร่วมที่เกี่ยวข้องทั้งหมดถูกปรับให้ใหญ่ขึ้น ดังนั้นการวิเคราะห์เมตาเหล่านี้จึงไม่มีประโยชน์อะไรเลย

แต่ฉันอยากจะใช้การประมาณผลกระทบอื่น ๆ ในการวิเคราะห์อภิมาน ความแตกต่างความน่าจะเป็นโดยเฉลี่ยคือวิธีการหนึ่งและมีวิธีอื่น ๆ


Gelman, A. , & Hill, J. (2007) การวิเคราะห์ข้อมูลโดยใช้การถดถอยและตัวแบบหลายระดับ / ลำดับชั้น สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์


1
@COOLSerdash ขอบคุณ มีอะไรอีกมากมายให้สำรวจที่นี่ มันน่าสนใจยิ่งขึ้นเมื่ออัตราส่วนอัตราต่อรองมาจากตัวแปรต่อเนื่องที่มีการแบ่งขั้วโดยเฉพาะอย่างยิ่งหากมีความแตกต่างในความสัมพันธ์ดั้งเดิม ดู Achim Zeileis ตอบคำถามนี้ - stats.stackexchange.com/questions/370876/…
Heteroskedastic Jim

ขอบคุณสำหรับลิงค์ ฉันต้องยอมรับว่าการสืบทอดของโมเดลโลจิสติกโดยใช้ตัวแปรแฝงแฝงที่แฝงอยู่นั้นเป็นสิ่งใหม่สำหรับฉัน ฉันมาจากชีวสถิติและแหล่งน้ำเชื้อในสาขานี้ดูเหมือนจะไม่ได้พูดถึงปัญหาเหล่านี้ (เช่นหนังสือโดย Lemeshow & Hosmer "การถดถอยโลจิสติกประยุกต์") ฉันจะให้รางวัลแก่คุณโดยเร็วที่สุด (พรุ่งนี้)
COOLSerdash

ฉันคิดว่าการสืบทอดภายใต้ตัวแปรต่อเนื่องพื้นฐานนั้นแปลกถ้าคุณคิดว่ามีข้อผิดพลาดด้านโลจิสติกส์ หากคุณสมมติว่ามีข้อผิดพลาดตามปกติมันน่าจะเป็นเหตุผลที่ต้องขอบคุณ CLT ดังนั้นสำหรับการถดถอยแบบโปรบิตที่ใช้จำนวนมากในด้านเศรษฐมิติมันเป็นเรื่องธรรมดา แต่ถ้าคุณจะทำการแบ่งขั้วตัวแปรต่อเนื่องการได้มาภายใต้ข้อผิดพลาดจะมีประโยชน์มาก ยิ่งไปกว่านั้นการสืบทอดนี้ทำให้เราสามารถสำรวจแบบจำลองได้ดีขึ้นและค้นพบสิ่งที่แปลกใหม่ และขอขอบคุณสำหรับความโปรดปรานย้อนหลัง
จิม Heteroskedastic
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.