Poszukuję, jak (wizualnie) wyjaśnić studentom pierwszego roku prostą korelację liniową.
Klasycznym sposobem wizualizacji byłoby stworzenie wykresu rozproszenia Y ~ X z prostą linią regresji.
Ostatnio wpadłem na pomysł rozszerzenia tego typu grafiki, dodając do wykresu 3 kolejne obrazy, pozostawiając mi: wykres rozproszenia y ~ 1, następnie y ~ x, res (y ~ x) ~ x i na koniec reszt (y ~ x) ~ 1 (wyśrodkowany do średniej)
Oto przykład takiej wizualizacji:
I kod R, aby go wyprodukować:
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)
Co prowadzi mnie do mojego pytania: Byłbym wdzięczny za wszelkie sugestie dotyczące ulepszenia tego wykresu (za pomocą tekstu, znaków lub innego rodzaju odpowiednich wizualizacji). Przydatne będzie również dodanie odpowiedniego kodu R.
Jednym z kierunków jest dodanie niektórych informacji o R ^ 2 (tekstem lub w jakiś sposób przez dodanie linii przedstawiających wielkość wariancji przed i po wprowadzeniu x) Inną opcją jest wyróżnienie jednego punktu i pokazanie, jak to jest „lepsze wyjaśnił „dzięki linii regresji. Wszelkie uwagi będą mile widziane.
require(mlbench) ; cor( mlbench.smiley()$x ); plot(mlbench.smiley()$x)