Sto cercando di spiegare (visivamente) la semplice correlazione lineare agli studenti del primo anno.
Il modo classico di visualizzare sarebbe quello di dare un diagramma a dispersione Y ~ X con una linea di regressione diritta.
Di recente, mi è venuta l'idea di estendere questo tipo di grafica aggiungendo alla trama altre 3 immagini, lasciandomi con: la trama a dispersione di y ~ 1, quindi di y ~ x, resid (y ~ x) ~ x e infine di residui (y ~ x) ~ 1 (centrato sulla media)
Ecco un esempio di tale visualizzazione:
E il codice R per produrlo:
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)
Il che mi porta alla mia domanda: apprezzerei qualsiasi suggerimento su come migliorare questo grafico (con testo, segni o qualsiasi altro tipo di visualizzazioni pertinenti). Anche l'aggiunta di un codice R pertinente sarà piacevole.
Una direzione è quella di aggiungere alcune informazioni di R ^ 2 (tramite testo o in qualche modo aggiungendo linee che presentano l'entità della varianza prima e dopo l'introduzione di x) Un'altra opzione è quella di evidenziare un punto e mostrare come è "migliore spiegato "grazie alla linea di regressione. Ogni contributo sarà apprezzato.
require(mlbench) ; cor( mlbench.smiley()$x ); plot(mlbench.smiley()$x)