Estoy buscando cómo (visualmente) explicar una correlación lineal simple a los estudiantes de primer año.
La forma clásica de visualizar sería dar un diagrama de dispersión Y ~ X con una línea de regresión recta.
Recientemente, tuve la idea de extender este tipo de gráficos agregando al gráfico 3 imágenes más, dejándome con: el diagrama de dispersión de y ~ 1, luego de y ~ x, resid (y ~ x) ~ x y finalmente de residuos (y ~ x) ~ 1 (centrado en la media)
Aquí hay un ejemplo de tal visualización:
Y el código R para producirlo:
set.seed(345)
x <- runif(50) * 10
y <- x +rnorm(50)
layout(matrix(c(1,2,2,2,2,3 ,3,3,3,4), 1,10))
plot(y~rep(1, length(y)), axes = F, xlab = "", ylim = range(y))
points(1,mean(y), col = 2, pch = 19, cex = 2)
plot(y~x, ylab = "", )
abline(lm(y~x), col = 2, lwd = 2)
plot(c(residuals(lm(y~x)) + mean(y))~x, ylab = "", ylim = range(y))
abline(h =mean(y), col = 2, lwd = 2)
plot(c(residuals(lm(y~x)) + mean(y))~rep(1, length(y)), axes = F, xlab = "", ylab = "", ylim = range(y))
points(1,mean(y), col = 2, pch = 19, cex = 2)
Lo que me lleva a mi pregunta: agradecería cualquier sugerencia sobre cómo se puede mejorar este gráfico (ya sea con texto, marcas o cualquier otro tipo de visualizaciones relevantes). Agregar código R relevante también será bueno.
Una dirección es agregar alguna información de R ^ 2 (ya sea por texto o de alguna manera agregando líneas que presenten la magnitud de la varianza antes y después de la introducción de x) Otra opción es resaltar un punto y mostrar cómo es "mejor" explicó "gracias a la línea de regresión. Cualquier contribucion sera apreciada.
require(mlbench) ; cor( mlbench.smiley()$x ); plot(mlbench.smiley()$x)