`qqnorm.rma.Rd`

Function to create normal QQ plots for objects of class `"rma.uni"`

, `"rma.mh"`

, and `"rma.peto"`

.

```
# S3 method for rma.uni
qqnorm(y, type="rstandard", pch=21, col, bg,
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=21, col, bg, label=FALSE, offset=0.3, pos=13, ...)
# S3 method for rma.peto
qqnorm(y, type="rstandard", pch=21, col, bg, label=FALSE, offset=0.3, pos=13, ...)
# S3 method for rma.glmm
qqnorm(y, ...)
# S3 method for rma.mv
qqnorm(y, ...)
```

- y
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"`

.- type
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’.- pch
plotting symbol to use for the observed outcomes. By default, an open circle is used. See

`points`

for other options.- col
optional character string to specify the (border) color of the points.

- bg
optional character string to specify the background color of open plot symbols.

- envelope
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’.- level
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.

- bonferroni
logical to specify whether the bounds of the envelope should be Bonferroni corrected.

- reps
numeric value to specify the number of iterations for simulating the pseudo confidence envelope (the default is 1000).

- smooth
logical to specify whether the results from the simulation should be smoothed (the default is

`TRUE`

).- bass
numeric value that controls the degree of smoothing (the default is 0).

- label
argument to control the labeling of the points (the default is

`FALSE`

). See ‘Details’.- offset
argument to control the distance between the points and the corresponding labels.

- pos
argument to control the position of the labels.

- lty
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.- ...
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\)), indicating 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 is 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:

- x
the x-axis coordinates of the points that were plotted.

- y
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)
```