update.rma.Rd
Function to update and (by default) refit "rma"
models. It does this by extracting the call stored in the object, updating the call, and (by default) evaluating that call.
# S3 method for class 'rma'
update(object, formula., ..., evaluate=TRUE)
For objects of class "rma.uni"
, "rma.glmm"
, and "rma.mv"
, the formula.
argument can be used to update the set of moderators included in the model (see ‘Examples’).
If evaluate=TRUE
the fitted object, otherwise the updated call.
Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1–48. https://doi.org/10.18637/jss.v036.i03
### calculate log risk ratios and corresponding sampling variances
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)
### fit random-effects model (method="REML" is default)
res <- rma(yi, vi, data=dat, digits=3)
res
#>
#> Random-Effects Model (k = 13; tau^2 estimator: REML)
#>
#> tau^2 (estimated amount of total heterogeneity): 0.313 (SE = 0.166)
#> tau (square root of estimated tau^2 value): 0.560
#> I^2 (total heterogeneity / total variability): 92.22%
#> H^2 (total variability / sampling variability): 12.86
#>
#> Test for Heterogeneity:
#> Q(df = 12) = 152.233, p-val < .001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> -0.715 0.180 -3.974 <.001 -1.067 -0.362 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### fit mixed-effects model with two moderators (absolute latitude and publication year)
res <- update(res, ~ ablat + year)
res
#>
#> Mixed-Effects Model (k = 13; tau^2 estimator: REML)
#>
#> tau^2 (estimated amount of residual heterogeneity): 0.111 (SE = 0.084)
#> tau (square root of estimated tau^2 value): 0.333
#> I^2 (residual heterogeneity / unaccounted variability): 71.98%
#> H^2 (unaccounted variability / sampling variability): 3.57
#> R^2 (amount of heterogeneity accounted for): 64.63%
#>
#> Test for Residual Heterogeneity:
#> QE(df = 10) = 28.325, p-val = 0.002
#>
#> Test of Moderators (coefficients 2:3):
#> QM(df = 2) = 12.204, p-val = 0.002
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> intrcpt -3.546 29.096 -0.122 0.903 -60.572 53.481
#> ablat -0.028 0.010 -2.737 0.006 -0.048 -0.008 **
#> year 0.002 0.015 0.130 0.897 -0.027 0.031
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### remove 'year' moderator
res <- update(res, ~ . - year)
res
#>
#> Mixed-Effects Model (k = 13; tau^2 estimator: REML)
#>
#> tau^2 (estimated amount of residual heterogeneity): 0.076 (SE = 0.059)
#> tau (square root of estimated tau^2 value): 0.276
#> I^2 (residual heterogeneity / unaccounted variability): 68.39%
#> H^2 (unaccounted variability / sampling variability): 3.16
#> R^2 (amount of heterogeneity accounted for): 75.62%
#>
#> Test for Residual Heterogeneity:
#> QE(df = 11) = 30.733, p-val = 0.001
#>
#> Test of Moderators (coefficient 2):
#> QM(df = 1) = 16.357, p-val < .001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> intrcpt 0.251 0.249 1.009 0.313 -0.237 0.740
#> ablat -0.029 0.007 -4.044 <.001 -0.043 -0.015 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### fit model with ML estimation
update(res, method="ML")
#>
#> Mixed-Effects Model (k = 13; tau^2 estimator: ML)
#>
#> tau^2 (estimated amount of residual heterogeneity): 0.034 (SE = 0.028)
#> tau (square root of estimated tau^2 value): 0.185
#> I^2 (residual heterogeneity / unaccounted variability): 49.33%
#> H^2 (unaccounted variability / sampling variability): 1.97
#> R^2 (amount of heterogeneity accounted for): 87.73%
#>
#> Test for Residual Heterogeneity:
#> QE(df = 11) = 30.733, p-val = 0.001
#>
#> Test of Moderators (coefficient 2):
#> QM(df = 1) = 28.911, p-val < .001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> intrcpt 0.282 0.187 1.507 0.132 -0.085 0.649
#> ablat -0.030 0.005 -5.377 <.001 -0.040 -0.019 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### example with rma.glmm()
res <- rma.glmm(measure="OR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, digits=3)
res <- update(res, mods = ~ ablat)
res
#>
#> Mixed-Effects Model (k = 13; tau^2 estimator: ML)
#> Model Type: Unconditional Model with Fixed Study Effects
#>
#> tau^2 (estimated amount of residual heterogeneity): 0
#> tau (square root of estimated tau^2 value): 0
#> I^2 (residual heterogeneity / unaccounted variability): 0.00%
#> H^2 (unaccounted variability / sampling variability): 1.00
#>
#> Tests for Residual Heterogeneity:
#> Wld(df = 11) = 25.095, p-val = 0.009
#> LRT(df = 11) = 25.014, p-val = 0.009
#>
#> Test of Moderators (coefficient 2):
#> QM(df = 1) = 143.181, p-val < .001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> intrcpt 0.399 0.082 4.851 <.001 0.238 0.560 ***
#> ablat -0.033 0.003 -11.966 <.001 -0.039 -0.028 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### fit conditional model with approximate likelihood
update(res, model="CM.AL")
#>
#> Mixed-Effects Model (k = 13; tau^2 estimator: ML)
#> Model Type: Conditional Model with Approximate Likelihood
#>
#> tau^2 (estimated amount of residual heterogeneity): 0.032
#> tau (square root of estimated tau^2 value): 0.179
#> I^2 (residual heterogeneity / unaccounted variability): 45.97%
#> H^2 (unaccounted variability / sampling variability): 1.85
#>
#> Tests for Residual Heterogeneity:
#> Wld(df = 11) = 29.895, p-val = 0.002
#> LRT(df = 11) = 30.013, p-val = 0.002
#>
#> Test of Moderators (coefficient 2):
#> QM(df = 1) = 31.169, p-val < .001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> intrcpt 0.293 0.187 1.568 0.117 -0.073 0.659
#> ablat -0.030 0.005 -5.583 <.001 -0.040 -0.019 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>