The function can be used to obtain an estimate of the average true effect and corresponding confidence interval under a random-effects model using the method described by Henmi and Copas (2010).

hc(object, ...)

# S3 method for rma.uni
hc(object, digits, transf, targs, control, ...)



an object of class "rma.uni".


integer to specify the number of decimal places to which the printed results should be rounded (if unspecified, the default is to take the value from the object).


optional argument to specify the name of a function that should be used to transform the estimated true effect and the corresponding interval bounds (e.g., transf=exp; see also transf). If unspecified, no transformation is used.


optional arguments needed by the function specified under transf.


list of control values for the iterative algorithm. If unspecified, default values are defined inside the function. See ‘Note’.


other arguments.


The model specified via object must be a model without moderators (i.e., either a fixed- or a random-effects model and not a fixed-effects with moderators or mixed-effects model).

When using the usual method for fitting a random-effects model (i.e., weighted estimation with inverse-variance weights), the weights assigned to smaller and larger studies become more uniform as the amount of heterogeneity increases. As a consequence, the estimated average effect could become increasingly biased under certain forms of publication bias (where smaller studies on one side of the funnel plot are missing). The method by Henmi and Copas (2010) tries to counteract this problem by providing an estimate of the average true effect that is based on inverse-variance weights as used under a fixed-effects model (which do not take the amount of heterogeneity into consideration). The amount of heterogeneity is still estimated (with the DerSimonian-Laird estimator) and incorporated into the standard error of the estimated average effect and the corresponding confidence interval.

Currently, there is only a method for handling objects of class "rma.uni" with the hc function. It therefore provides a method for conducting a sensitivity analysis after the model has been fitted with the rma.uni function.


An object of class "hc.rma.uni". The object is a list containing the following components:


estimated average true effect.


corresponding standard error.

lower bound of the confidence intervals for the average true effect.


upper bound of the confidence intervals for the average true effect.


some additional elements/values.

The results are formatted and printed with the print.hc.rma.uni function.


The method makes use of the uniroot function. By default, the desired accuracy is set equal to .Machine$double.eps^0.25 and the maximum number of iterations to 1000. The desired accuracy (tol) and the maximum number of iterations (maxiter) can be adjusted with the control argument (i.e., control=list(tol=value, maxiter=value)).


Original code by Henmi and Copas (2010). Corrected for typos by Michael Dewey ( Incorporated into the package with some small adjustments for consistency with the other functions in the package by Wolfgang Viechtbauer (


Henmi, M., & Copas, J. B. (2010). Confidence intervals for random effects meta-analysis and robustness to publication bias. Statistics in Medicine, 29(29), 2969--2983.

Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1--48.

See also


### meta-analysis based on log odds ratios res <- rma(measure="OR", ai=ai, n1i=n1i, ci=ci, n2i=n2i, data=dat.lee2004) res
#> #> Random-Effects Model (k = 16; tau^2 estimator: REML) #> #> tau^2 (estimated amount of total heterogeneity): 0.3526 (SE = 0.2254) #> tau (square root of estimated tau^2 value): 0.5938 #> I^2 (total heterogeneity / total variability): 62.35% #> H^2 (total variability / sampling variability): 2.66 #> #> Test for Heterogeneity: #> Q(df = 15) = 38.4231, p-val = 0.0008 #> #> Model Results: #> #> estimate se zval pval ci.ub #> -0.6820 0.2013 -3.3877 0.0007 -1.0766 -0.2874 *** #> #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #>
### funnel plot as in Henmi and Copas (2010) funnel(res, yaxis="seinv", refline=0, xlim=c(-3,3), ylim=c(.5,3.5), steps=7, digits=1)
### use method by Henmi and Copas (2010) as a sensitivity analysis hc(res)
#> #> method tau2 estimate se ci.ub #> rma REML 0.3526 -0.6820 0.2013 -1.0766 -0.2874 #> hc DL 0.3325 -0.5145 0.2178 -0.9994 -0.0295 #>
### back-transform results to odds ratio scale hc(res, transf=exp)
#> #> method tau2 estimate ci.ub #> rma REML 0.3526 0.5056 0.3408 0.7502 #> hc DL 0.3325 0.5978 0.3681 0.9709 #>