Ich suche, wie ich Studenten im ersten Jahr (visuell) die einfache lineare Korrelation erklären kann.
Die klassische Art der Visualisierung wäre, ein Y ~ X-Streudiagramm mit einer geraden Regressionslinie zu erstellen.
Vor kurzem kam mir die Idee, diese Art von Grafik zu erweitern, indem ich dem Plot 3 weitere Bilder hinzufügte, so dass ich Folgendes hatte: das Streudiagramm von y ~ 1, dann von y ~ x, resid (y ~ x) ~ x und zuletzt von Residuen (y ~ x) ~ 1 (zentriert auf den Mittelwert)
Hier ist ein Beispiel für eine solche Visualisierung:
Und der R-Code, um es zu erzeugen:
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)
Was mich zu meiner Frage führt: Ich würde mich über Vorschläge freuen, wie dieses Diagramm verbessert werden kann (entweder mit Text, Markierungen oder anderen relevanten Visualisierungen). Das Hinzufügen eines relevanten R-Codes ist ebenfalls hilfreich.
Eine Richtung besteht darin, einige Informationen des R ^ 2 hinzuzufügen (entweder durch Text oder durch Hinzufügen von Linien, die die Größe der Varianz vor und nach der Einführung von x darstellen). Eine andere Option besteht darin, einen Punkt hervorzuheben und zu zeigen, wie es "besser" ist erklärte "dank der Regressionslinie. Jede Eingabe wird geschätzt.
require(mlbench) ; cor( mlbench.smiley()$x ); plot(mlbench.smiley()$x)