Trong một bài báo gần đây Norton et al. (2018) [ 1 ] nói rằng
Các tỷ lệ chênh lệch khác nhau từ cùng một nghiên cứu không thể được so sánh khi các mô hình thống kê dẫn đến ước tính tỷ lệ chênh lệch có các biến giải thích khác nhau vì mỗi mô hình có một hệ số tỷ lệ tùy ý khác nhau. Độ lớn của tỷ lệ chênh lệch từ một nghiên cứu cũng không thể so sánh với độ lớn của tỷ lệ chênh lệch từ một nghiên cứu khác, bởi vì các mẫu khác nhau và thông số kỹ thuật mô hình khác nhau sẽ có các hệ số tỷ lệ tùy ý khác nhau. Một hàm ý nữa là độ lớn của tỷ lệ chênh lệch của một hiệp hội nhất định trong nhiều nghiên cứu không thể được tổng hợp trong một phân tích tổng hợp.
Một mô phỏng nhỏ minh họa điều này (mã R nằm ở cuối câu hỏi). Giả sử mô hình đúng là:
res_1 res_2 res_3 res_4
1.679768 1.776200 2.002157 2.004077
Rõ ràng là chỉ có các nhà nghiên cứu 3 và 4 có được tỷ lệ cược chính xác là khoảng trong khi các nhà nghiên cứu 1 và 2 thì không. Điều này không xảy ra trong hồi quy tuyến tính, có thể dễ dàng hiển thị bằng một mô phỏng tương tự (không được hiển thị ở đây). Tôi phải thú nhận rằng kết quả này khá bất ngờ đối với tôi, mặc dù vấn đề này dường như đã được biết đến [ 2 ] . Hernán et al. (2011) [ 3 ] gọi đây là "sự kỳ quặc toán học" thay vì sai lệch.
Những câu hỏi của tôi:
- Nếu tỷ lệ chênh lệch về cơ bản là không thể so sánh giữa các nghiên cứu và mô hình, làm thế nào chúng ta có thể kết hợp các kết quả của các nghiên cứu khác nhau cho kết quả nhị phân?
- Có thể nói gì về vô số phân tích tổng hợp đã kết hợp tỷ lệ chênh lệch từ các nghiên cứu khác nhau trong đó mỗi nghiên cứu có thể điều chỉnh cho một tập hợp số khác nhau? Chúng thực chất là vô dụng?
Người giới thiệu
[1]: Norton EC, Dowd BE, Maciejewski ML (2018): Tỷ lệ cược - Thực tiễn và sử dụng tốt nhất hiện nay. JAMA 320 (1): 84-85.
[2]: Norton EC, Dowd BE (2017): Đăng nhập tỷ lệ cược và diễn giải các mô hình logit. Phục vụ sức khỏe Res. 53 (2): 859-878.
[3]: Hernán MA, Clayton D, Keiding N (2011): Nghịch lý của Simpson được làm sáng tỏ. Int J Epidemiol 40: 780-785.
Tiết lộ
Câu hỏi (bao gồm mã R) là phiên bản sửa đổi của câu hỏi được đặt bởi bộ đếm thời gian của người dùng trên bảng dữ liệu .
Mã 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