我想知道我的元分析结果的解释。
设置非常简单:我有一个数据集y,其中包含一个变量TVAL (取自一组初步研究)。TVAL是标准化的,因此它的标准误差(初等研究中的抽样标准误差)对于所有观测都是1。SHORTREF是反映不同初级研究的一个因素。
现在,我使用元now包对常量执行简单的元回归:
> m<-rma.mv(yi=TVAL, V=1, random= ~ 1|SHORTREF, intercept=TRUE, method="REML", data=y)
> summary(m)
Multivariate Meta-Analysis Model (k = 933; method: REML)
logLik Deviance AIC BIC AICc
-3056.0316 6112.0633 6116.0633 6125.7379 6116.0762
Variance Components:
estim sqrt nlvls fixed factor
sigma^2 6.6821 2.5850 84 no SHORTREF
Test for Heterogeneity:
Q(df = 932) = 8115.1664, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
-0.5544 0.2861 -1.9375 0.0527 -1.1151 0.0064 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 残余异质性(σ^2)为6.6821。再加上初步研究得出的抽样方差(即标准化后的方差为1),总方差为6.6821 +1= 7.6821。然而,我的回归和TVAL的总方差是var(y$TVAL)=8.70726。这意味着,我“缺失”了我的总方差的一部分,它既不是抽样方差,也不是剩余异质性。如果省略1|SHORTREF因子,则不会显示此效果:
> m<-rma(yi=TVAL, sei=1, intercept=TRUE, method="REML", data=y)
> summary(m)
Random-Effects Model (k = 933; tau^2 estimator: REML)
logLik deviance AIC BIC AICc
-2330.9480 4661.8959 4665.8959 4675.5706 4665.9088
tau^2 (estimated amount of total heterogeneity): 7.7073 (SE = 0.4034)
tau (square root of estimated tau^2 value): 2.7762
I^2 (total heterogeneity / total variability): 88.52%
H^2 (total variability / sampling variability): 8.71
Test for Heterogeneity:
Q(df = 932) = 8115.1664, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
-0.5964 0.0966 -6.1731 <.0001 -0.7857 -0.4070 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 这里,剩余异质性^τ2是总方差var(y$TVAL)=8.70726减去我的抽样方差1。
也许,这真的很简单,我只是不明白,但你知道为什么在第一个模型(带有1|SHORTREF因子的模型)中,TVAL的全部方差被分解成假设的两个误差分量(采样和剩余异质性)?
谢谢!非常感谢你的帮助。
发布于 2016-02-18 14:59:31
您需要考虑三个可变性来源:研究之间的异质性、研究中的异质性和抽样误差。在你的第一个模型中,你忽略了内部研究的异质性。你应该用这样的方法:
id <- 1:nrow(y)
m <- rma.mv(yi=TVAL, V=1, random= ~ 1|SHORTREF/id, data=y)请注意,您从这个模型中得到的两个方差分量之和(加1)仍然不能精确地加到var(TVAL),因为分解并不那么简单。但是,您应该得到一些与此方差密切匹配的信息。下面是一个使用模拟数据的示例:
library(metafor)
k <- 100 ### total number of estimates
m <- 20 ### number of studies
vi <- rep(1, k)
id <- 1:k
study <- sort(sample(1:m, k, replace=TRUE))
yi <- rep(rnorm(length(unique(study)), 0, 2), times=table(study)) + rnorm(k, 0, 4)
var(yi)
res <- rma(yi, vi)
res$tau2 + 1
res <- rma.mv(yi, vi, random = ~ 1 | study/id)
sum(res$sigma2) + 1https://stackoverflow.com/questions/35467497
复制相似问题