Function to create normal QQ plots for objects of class
# S3 method for rma.uni qqnorm(y, type="rstandard", pch=19, envelope=TRUE, level=y$level, bonferroni=FALSE, reps=1000, smooth=TRUE, bass=0, label=FALSE, offset=0.3, pos=13, lty, ...) # S3 method for rma.mh qqnorm(y, type="rstandard", pch=19, label=FALSE, offset=0.3, pos=13, ...) # S3 method for rma.peto qqnorm(y, type="rstandard", pch=19, label=FALSE, offset=0.3, pos=13, ...) # S3 method for rma.glmm qqnorm(y, ...) # S3 method for rma.mv qqnorm(y, ...)
an object of class
"rma.peto". The method is not yet implemented for objects of class
character string (either
"rstandard" (default) or
"rstudent") to specify whether standardized residuals or studentized deleted residuals should be used in creating the plot. See ‘Details’.
plotting symbol to use for the observed outcomes. By default, a filled circle is used. See
points for other options.
logical to specify whether a pseudo confidence envelope should be simulated and added to the plot (the default is
TRUE)). Only for objects of class
"rma.uni". See ‘Details’.
numeric value between 0 and 100 to specify the level of the pseudo confidence envelope (the default is to take the value from the object).
logical to specify whether the bounds of the envelope should be Bonferroni corrected.
numeric value to specify the number of iterations to use for simulating the pseudo confidence envelope (the default is 1000).
logical to specify whether the results from the simulation should be smoothed (the default is
numeric value that controls the degree of smoothing (the default is 0).
argument to control the labeling of the points (the default is
FALSE). See ‘Details’.
argument to control the distance between the points and the corresponding labels.
argument to control the position of the labels.
optional character string to specify the line type for the diagonal line and the pseudo confidence envelope. If unspecified, the function sets this to
c("solid", "dotted") by default.
The plot shows the theoretical quantiles of a normal distribution on the horizontal axis against the observed quantiles for either the standardized residuals (
type="rstandard", the default) or the externally standardized residuals (
type="rstudent") on the vertical axis (see
residuals for details on the definition of these residual types).
For reference, a line is added to the plot with slope of 1, going through the (0,0) point.
For objects of class
"rma.uni", it is also possible to add a pseudo confidence envelope to the plot. The envelope is created based on the quantiles of sets of pseudo residuals simulated from the given model (for details, see Cook & Weisberg, 1982). The number of sets simulated can be controlled with the
reps argument. When
smooth=TRUE, the simulated bounds are smoothed with Friedman's SuperSmoother (see
bass argument can be set to a number between 0 and 10, with higher numbers indicating increasing smoothness. If
bonferroni=TRUE, the envelope bounds are Bonferroni corrected, so that the envelope can be regarded as a confidence region for all \(k\) residuals simultaneously. The default however is
bonferroni=FALSE, which makes the plot more sensitive to deviations from normality.
label argument, one can control whether points in the plot will be labeled (e.g., to identify outliers). If
label=TRUE), all points in the plot will be labeled. If
label="out", points falling outside of the confidence envelope will be labeled (only available for objects of class
"rma.uni"). Finally, one can also set this argument to a numeric value (between 1 and \(k\)), indicating how many of the most extreme points should be labeled (for example, with
label=1 only the most extreme point would be labeled, while with
label=3, the most extreme, and the second and third most extreme points would be labeled). With the
offset argument, one can adjust the distance between the labels and the corresponding points. The
pos argument is the position specifier for the labels (
4, respectively indicate positions below, to the left of, above, and to the right of the points;
13 places the labels below the points for points that fall below the reference line and above otherwise;
24 places the labels to the left of the points for points that fall above the reference line and to the right otherwise).
A list with components:
the x-axis coordinates of the points that were plotted.
the y-axis coordinates of the points that were plotted.
Note that the list is returned invisibly.
Cook, R. D., & Weisberg, S. (1982). Residuals and influence in regression. London: Chapman and Hall.
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
Viechtbauer, W. (2021). Model checking in meta-analysis. In C. H. Schmid, T. Stijnen, & I. R. White (Eds.), Handbook of meta-analysis (pp. 219–254). Boca Raton, FL: CRC Press. https://doi.org/10.1201/9781315119403
Wang, M. C., & Bushman, B. J. (1998). Using the normal quantile plot to explore meta-analytic data sets. Psychological Methods, 3(1), 46–54. https://doi.org/10.1037/1082-989X.3.1.46
### 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 res <- rma(yi, vi, data=dat) ### draw QQ plot qqnorm(res) ### fit mixed-effects model with absolute latitude as moderator res <- rma(yi, vi, mods = ~ ablat, data=dat) ### draw QQ plot qqnorm(res)