update.rma.Rd
The function can be used 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 rma
update(object, formula., ..., evaluate=TRUE)
an object of class "rma"
.
changes to the formula. See ‘Details’.
additional arguments to the call, or arguments with changed values.
logical to specify whether to evaluate the new call or just return the call.
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
#>