我和我的朋友试图理解为什么包中的加权lm()与固定效应 rma模型metafor会产生相同的元分析点估计,但这些估计的标准误差(因此p值和 95% CI)不同。
例如:
#install and call metafor package
install.packages("metafor")
library(metafor)
#read in example data for standardized mean differences and standard errors
d<-c(0.38, 0.36, -0.35, 1.55, 0.26, 1.2, 0.38, 0.46, 0.27, 0.24, -0.07, -0.26, -0.31, 1.15, 0.23, 0.29, 0.38, 0.19, 0.4, 0.15, 0.2, 0.25, 0.34)
d.se<-c(1.8, 3.49, 1.53, 4.96, 2.08, 3.48, 0.07, 0.07, 0.09, 0.09, 0.01, 0.09, 6.64, 5.08, 7.44, 0.16, 0.18, 2.05, 0.17, 0.16, 0.17, 0.22, 0.09)
d.v<-d.se*d.se
#run fixed-effects intercept-only models with lm() and metafor
lm.intercept<-lm(d ~ 1, weights=I(1/d.v))
summary(lm.intercept)
metafor.intercept<-rma(yi=d, vi=d.v, method="FE")
summary(metafor.intercept)
两种方法都产生 -0.0361 的适当估计值,但该lm()方法产生 0.02585 的标准误差(因此该估计值在p >.05 水平上不显着),而该metafor方法产生 0.0095 的标准误差(因此该估计值在p < .05 水平上显着)。您添加到模型中的主持人也会出现同样的差异(例如,d~d.se)。
我有点相信这种lm()方法会以某种方式错误地估计标准误差(我已经手动完成了这个例子的计算:这里的google doc电子表格),但我和我的朋友想更好地理解为什么/如何发生这种情况.
有谁知道是什么导致了两个模型之间标准误差的差异?