Я шукаю, як (візуально) пояснити просту лінійну кореляцію для студентів першого курсу.
Класичним способом візуалізації було б дати графік розсіяння Y ~ X прямою регресійною лінією.
Нещодавно мені прийшла ідея розширити цей тип графіки, додавши до сюжету ще 3 зображення, залишивши мене з: графік розкидання y ~ 1, потім y ~ x, остаточний (y ~ x) ~ x і нарешті залишків (y ~ x) ~ 1 (з середнім значенням)
Ось приклад такої візуалізації:
І код R для його створення:
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)
Що призводить мене до мого запитання: Я буду вдячний за будь-які пропозиції щодо вдосконалення цього графіка (будь-якого тексту, позначок чи будь-якого іншого виду відповідних візуалізацій). Додавання відповідного коду R також буде непоганим.
Один із напрямків - додати деяку інформацію R ^ 2 (або за текстом, або якось додати рядки, що представляють величину дисперсії до і після введення x). Ще одним варіантом є виділити одну точку та показати, як це "краще пояснено "завдяки лінії регресії. Будь-який вклад буде вдячний.
require(mlbench) ; cor( mlbench.smiley()$x ); plot(mlbench.smiley()$x)