R: QQ-Plot for Any Distribution

PlotQQ {DescTools} | R Documentation

## QQ-Plot for Any Distribution

### Description

Create a QQ-plot for a variable of any distribution. The assumed underlying distribution can be defined as a function including all required parameters.

### Usage

    PlotQQ(x, qdist, main = NULL, xlab = NULL, ylab = NULL, add = FALSE,
           args.qqline = NULL, conf.level = 0.95, args.cband = NULL, ...)

### Arguments

`x` | the data sample
`qdist` | the quantile function of the assumed distribution. Can either be given as simple function name or defined as own function using the required arguments. See examples.
`main` | the main title for the plot. This will be "Q-Q-Plot" by default
`xlab` | the xlab for the plot
`ylab` | the ylab for the plot
`add` | logical specifying if the points should be added to an already existing plot; defaults to `FALSE`.
`args.qqline` | arguments for the qqline. This will be estimated as a line through the 25% and 75% quantiles, which is the same procedure as qqline does for normal distribution (instead of set it to abline(a = 0, b = 1)). The line defaults are set to col = par("fg"), lwd = par("lwd") and lty = par("lty"). No line will be plotted if args.qqline is set to NA.
`conf.level` | confidence level for the confidence interval. Set this to `NA`, if no confidence band should be plotted. Default is `0.95`.
`args.cband` | list of arguments for the confidence band, such as color or border (see `DrawBand`).
`...` | the dots are passed to the plot function.

### Details

The function generates a sequence of points between 0 and 1 and transforms those into quantiles by means of the defined assumed distribution.

### Note

The code is inspired by the tip 10.22 "Creating other Quantile-Quantile plots" from R Cookbook and based on R-Core code from the function `qqline`.

### Author(s)

Andri Signorell <andri@signorell.net>

### References

Teetor, P. (2011) R Cookbook. O'Reilly, pp. 254-255.

### See Also

`qqnorm`, `qqline`, `qqplot`

### Examples

    y <- rexp(100, 1/10)
    PlotQQ(y, function(p) qexp(p, rate=1/10))

    w <- rweibull(100, shape=2)
    PlotQQ(w, qdist = function(p) qweibull(p, shape=4))

    z <- rchisq(100, df=5)
    PlotQQ(z, function(p) qchisq(p, df=5), args.qqline=list(col=2, probs=c(0.1,0.6)),
           main=expression("Q-Q plot for" ~~ {chi^2}[nu == 3]))
    abline(0,1)

    # add 5 random sets
    for(i in 1:5){
      z <- rchisq(100, df=5)
      PlotQQ(z, function(p) qchisq(p, df=5), add=TRUE, args.qqline = NA,
             col="grey", lty="dotted")
    }

[Package DescTools version 0.99.24 Index]