QQ-Plot

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 library in R.

General usage format:

## S3 method for class 'accept_reject'
qqplot(
  x,
  alpha = 0.5,
  color_points = "#F890C2",
  color_line = "#BB9FC9",
  size_points = 1,
  size_line = 1,
  ...
)

Examples

Discrete case

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

# 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)


Try the AcceptReject package in your browser

Any scripts or data that you put into this service are public.

AcceptReject documentation built on May 29, 2024, 11:18 a.m.