qqnorm.rma.Rd
Function to create normal QQ plots for objects of class "rma.uni"
, "rma.mh"
, and "rma.peto"
.
# S3 method for class 'rma.uni'
qqnorm(y, type="rstandard", pch=21, col, bg, grid=FALSE,
envelope=TRUE, level=y$level, bonferroni=FALSE, reps=1000, smooth=TRUE, bass=0,
label=FALSE, offset=0.3, pos=13, lty, ...)
# S3 method for class 'rma.mh'
qqnorm(y, type="rstandard", pch=21, col, bg, grid=FALSE,
label=FALSE, offset=0.3, pos=13, ...)
# S3 method for class 'rma.peto'
qqnorm(y, type="rstandard", pch=21, col, bg, grid=FALSE,
label=FALSE, offset=0.3, pos=13, ...)
# S3 method for class 'rma.glmm'
qqnorm(y, ...) # not currently implemented
# S3 method for class 'rma.mv'
qqnorm(y, ...) # not currently implemented
an object of class "rma.uni"
, "rma.mh"
, or "rma.peto"
. The method is not (yet) implemented for objects of class "rma.glmm"
or "rma.mv"
.
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, an open circle is used. See points
for other options.
optional character string to specify the (border) color of the points.
optional character string to specify the background color of open plot symbols.
logical to specify whether a grid should be added to the plot (the default is FALSE
). Can also be a color name.
logical to specify whether a pseudo confidence envelope should be simulated and added to the plot (the default is TRUE
). Can also be a color name. Only for objects of class "rma.uni"
. See ‘Details’.
numeric value between 0 and 100 to specify the level of the pseudo confidence envelope (see here for details). 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 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 TRUE
).
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 argument 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.
other arguments.
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 a 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 supsmu
). The 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.
With the label
argument, one can control whether points in the plot will be labeled (e.g., to identify outliers). If label="all"
(or 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\)), to specify how many of the most extreme points should be labeled (for example, with label=1
only the most extreme point is labeled, while with label=3
, the most extreme, and the second and third most extreme points are 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 (1
, 2
, 3
, and 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, grid=TRUE)
### fit mixed-effects model with absolute latitude as moderator
res <- rma(yi, vi, mods = ~ ablat, data=dat)
### draw QQ plot
qqnorm(res, grid=TRUE)