2014-11-04

Construir un gráfico Q-Q desde cero en R

Title En esta entrada vamos a construir un gráfico Q-Q (cuantil-cuantil) y la línea para evaluar la relación lineal sin recurrir a las funciones qqnorm y qqline de Quantile-Quantile Plots.

Vamos a utilizar los datos de rivers incluidos dentro del paquete datasets, cargado por defecto en R.

Gráfico Q-Q

# Usando qqnorm
qqnorm(rivers, col = 'dodger blue', pch = 19) 
# Cálculos gráfico Q-Q 
n <- max(length(rivers))
p = (1:n - 1/2)/n  
zscores <- qnorm(p)
n - número de observaciones
p - secuencia de puntos de probabilidad.
     qqnorm, mediante ppoints genera los puntos siguiendo la fórmula (1:m - a)/(m + (1-a)-a).
     m = length(n), el nº de observaciones
     a = 3/8 si n <= 10 . En caso contrario 1/2. Si n > 10: (1:m - 1/2)/m = (1:m - a)/(m + (1-a)-a)
zscores - asociados a la secuencia de probabilidad p

# Gráfico Q-Q
plot(zscores, 
     sort(rivers), 
     xlab = 'Theoretical Quantiles', 
     ylab = 'Sample Quantiles', 
     main = "Normal Q-Q Plot",
     col ='dodger blue',
     pch = 19)
x - en el eje de abscisas los cuantiles teóricos: zscores
y - en el eje de ordenadas, los datos de la muestra rivers ordenados ascendentemente

Línea qqline

# Usando qqline
qqline(rivers, col = 'orange', lwd =2)
Cálculos qqline:

# Opción 1
x <- c(qnorm(.25), qnorm(.75)) 
y <- quantile(rivers,c(.25, .75)) 
recta <- lm(y ~ x)
# qqline
abline(reg = recta, col = 'orange', lwd =2)

x - en el eje de abscisas los cuantiles teóricos: zscores
y - en el eje de ordenadas, los cuantiles de la muestra rivers
recta - usamos la función lm para crear una recta de regresión lineal
abline -añadimos la recta de regresión creada, dado un reg (regression object).

# Opción 2
x <- c(qnorm(.25), qnorm(.75)) 
y <- quantile(rivers, c(.25, .75))
pdte <- diff(y)/diff(x)
int <- y[1] - pdte * x[1] # O int <- y[2] - pdte * x[2]
# qqline
abline(a = int, b = pdte,  col = 'orange', lwd =2)

x - en el eje de abscisas los cuantiles teóricos: zscores
y - en el eje de ordenadas, los cuantiles de la muestra rivers
pdte - pendiente de la recta: (y2 - y1)/(x2 - x1).
int - intesección con el eje y
abline - añadimos la recta dado un punto de intersección y la pendiente

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos