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