metafor的元回归:方差在哪里?

时间:2016-02-17 20:52:27

标签: r

我想知道我的meta分析结果的解释。

设置非常简单:我有一个包含变量TVAL的数据集y(取自一组主要研究)。 TVAL是标准化的,因此其标准误差(来自初步研究的抽样标准误差)对于所有观察都是1。 SHORTREF是代表不同主要研究的一个因素。

我现在使用metafor包对常量执行简单的元回归:

> 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 

残余异质性(sigma ^ 2)为6.6821。连同主要研究的抽样方差(由于标准化而为1),我的总方差为6.6821 + 1 = 7.6821。 但是,我的回归和TVAL的总方差为var(y$TVAL) = 8.70726。这意味着,我失踪了#34;我的总方差的一部分既不是抽样方差也不是残差异质性。如果我遗漏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 

这里,剩余异质性tau ^ 2是总方差var(y$TVAL) = 8.70726减去我的抽样方差为1.

也许,它真的很简单,我只是没有得到它,但任何想法为什么在第一个模型(具有1|SHORTREF因子的那个)不是TVAL的完全变化是分为假设的两个误差分量(采样和残差异质性)?

谢谢!非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要考虑三种变异来源:研究之间的异质性,研究中的异质性和抽样误差。在你的第一个模型中,你忽略了研究内的异质性。你应该使用这样的东西:

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) + 1