--- title: "QQ-Plot" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{QQ-Plot} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4.5, fig.align = "center" ) options(tibble.print_min = 6, tibble.print_max = 6) modern_r <- getRversion() >= "4.1.0" ``` # Quantile-Quantile Plot The package `AcceptReject` provides the function `qqplot.accept_reject()` which allows us to construct quantile-quantile plots to assess the goodness of fit of a probability distribution to a data sample. Similar to the function `plot.accept_reject()`, the function `qqplot.accept_reject()` is a generic function that accepts an object of class accept_reject as an argument, easily constructing the plot of theoretical quantiles of f against the sample quantiles (observed quantiles). This function works efficiently, so that in large samples, the points are optimized to generate a more efficient plot, utilizing the [`scattermore`](https://CRAN.R-project.org/package=scattermore) library in `R`. ## General usage format: ```{r, eval = FALSE} ## S3 method for class 'accept_reject' qqplot( x, alpha = 0.5, color_points = "#F890C2", color_line = "#BB9FC9", size_points = 1, size_line = 1, ... ) ``` + `x`: Object of the class accept_reject returned by the function `accept_reject()`. + `alpha`: Transparency of the points and reference line representing where the quantiles should be (theoretical quantiles). + `color_points`: Color of the points (default is `"#F890C2"`). + `color_line`: Color of the reference line (detault is `"#BB9FC9"`). + `size_points`: Size of the points (default is `1`). + `size_line`: Thickness of the reference line (default is `1`). + `...`: Additional arguments for the `quantile()` function. For instance, it's possible to change the algorithm type for quantile calculation. # Examples ## Discrete case ```{r} library(AcceptReject) library(cowplot) x <- accept_reject( n = 2000L, f = dbinom, continuous = FALSE, args_f = list(size = 5, prob = 0.5), xlim = c(0, 5) ) a <- plot(x) b <- qqplot(x) plot_grid(a, b, ncol = 2) ``` ## Continuous case ```{r} # For n = 1000 y <- accept_reject( n = 1000L, f = dbeta, continuous = TRUE, args_f = list(shape1 = 2, shape2 = 2), xlim = c(0, 1) ) # For many points (scattermore is used): z <- accept_reject( n = 11e3, f = dbeta, continuous = TRUE, args_f = list(shape1 = 2, shape2 = 2), xlim = c(0, 1) ) # Gráficos a <- plot(y) b <- qqplot(y) c <- plot(z) d <- qqplot(z) plot_grid(a, b, ncol = 2) plot_grid(c, d, ncol = 2) ```