Un QQ plot (gráfico cuantil-cuantil) compara los cuantiles de tus datos con los cuantiles teóricos de una distribución — habitualmente la normal. Los puntos que caen sobre la línea diagonal indican que los datos siguen esa distribución.
set.seed(1)
df <- data.frame(x = rnorm(200))
qqnorm() + qqline()
La forma más rápida es usar R base. qqnorm() dibuja los puntos y qqline() añade la línea de referencia.
set.seed(1)
x <- rnorm(200)
qqnorm(x)
qqline(x, col = "red")

geom_qq() + geom_qq_line()

En ggplot2, usa aes(sample = ...) — no x ni y. geom_qq() dibuja los puntos y geom_qq_line() añade la línea de referencia diagonal.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(sample = x)) +
geom_qq() +
geom_qq_line()
Personaliza los puntos con color y size en geom_qq(), y la línea de referencia con color y linewidth en geom_qq_line().
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(sample = x)) +
geom_qq(color = "steelblue", size = 1.5) +
geom_qq_line(color = "red", linewidth = 0.8)


Añade color = group dentro de aes() para dibujar un QQ plot por grupo. Los datos normales siguen la línea mientras que los exponenciales se alejan de ella.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df_groups, aes(sample = x, color = group)) +
geom_qq() +
geom_qq_line()
Usa facet_wrap() para dar a cada grupo su propio panel. Así es más fácil evaluar la normalidad de cada grupo por separado.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df_groups, aes(sample = x)) +
geom_qq() +
geom_qq_line(color = "red") +
facet_wrap(~group)


Cuando los datos no son normales, los puntos se alejan de la línea de referencia. Los datos con asimetría positiva (como la exponencial) se curvan hacia arriba en la cola superior.
# install.packages("ggplot2")
library(ggplot2)
set.seed(1)
df_exp <- data.frame(x = rexp(200))
ggplot(df_exp, aes(sample = x)) +
geom_qq() +
geom_qq_line(color = "red")
Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar