Saya mencari cara (secara visual) menjelaskan korelasi linier sederhana untuk siswa tahun pertama.
Cara klasik untuk memvisualisasikan adalah dengan memberikan plot sebaran Y ~ X dengan garis regresi lurus.
Baru-baru ini, saya datang dengan ide untuk memperluas jenis grafik ini dengan menambahkan ke plot 3 lebih banyak gambar, meninggalkan saya dengan: plot pencar y ~ 1, kemudian dari y ~ x, resid (y ~ x) ~ x dan terakhir residu (y ~ x) ~ 1 (berpusat pada rata-rata)
Berikut ini contoh visualisasi tersebut:
Dan kode R untuk memproduksinya:
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)
Yang mengarahkan saya ke pertanyaan saya: Saya akan menghargai setiap saran tentang bagaimana grafik ini dapat ditingkatkan (baik dengan teks, tanda, atau jenis visualisasi lain yang relevan). Menambahkan kode R yang relevan juga akan menyenangkan.
Satu arah adalah untuk menambahkan beberapa informasi dari R ^ 2 (baik dengan teks, atau dengan entah bagaimana menambahkan garis menyajikan besarnya varians sebelum dan setelah pengenalan x) Pilihan lain adalah untuk menyoroti satu titik dan menunjukkan bagaimana itu "lebih baik menjelaskan "terima kasih kepada garis regresi. Masukan apa pun akan dihargai.
sumber
require(mlbench) ; cor( mlbench.smiley()$x ); plot(mlbench.smiley()$x)
Jawaban:
Berikut adalah beberapa saran (tentang plot Anda, bukan tentang bagaimana saya menggambarkan analisis korelasi / regresi):
rug()
;Sebagai catatan, grafik ini mengasumsikan X dan Y adalah data yang tidak berpasangan, jika tidak saya akan tetap menggunakan plot Bland-Altman ( terhadap ), selain sebar scatterplot.( X + Y ) / 2(X−Y) (X+Y)/2
sumber
Tidak menjawab pertanyaan persis Anda, tetapi yang berikut ini mungkin menarik dengan memvisualisasikan satu kemungkinan jebakan korelasi linear berdasarkan jawaban dari stackoveflow :
Jawaban @ Gavin Simpson dan @ bill_080 juga mencakup plot korelasi yang bagus dalam topik yang sama.
sumber
Saya akan memiliki dua plot dua panel, keduanya memiliki plot xy di sebelah kiri, dan histogram di sebelah kanan. Dalam plot pertama, garis horizontal ditempatkan pada rata-rata y dan garis memanjang dari ini ke setiap titik, mewakili residu dari nilai-nilai y dari rata-rata. Histogram dengan ini hanya plot residu ini. Kemudian pada pasangan berikutnya, plot xy berisi garis yang mewakili kesesuaian linier dan lagi garis vertikal yang mewakili residu, yang direpresentasikan dalam histogram di sebelah kanan. Pertahankan sumbu x histogram konstan untuk menyorot pergeseran ke nilai yang lebih rendah dalam kesesuaian linier dengan rata-rata "kesesuaian".
sumber
Saya pikir apa yang Anda usulkan itu baik, tetapi saya akan melakukannya dalam tiga contoh berbeda
1) X dan Y sama sekali tidak berhubungan. Cukup hapus "x" dari kode r yang menghasilkan y (y1 <-rnorm (50))
2) Contoh yang Anda posting (y2 <- x + rnorm (50))
3) X adalah Y adalah variabel yang sama. Cukup hapus "rnorm (50)" dari kode r yang menghasilkan y (y3 <-x)
Ini akan lebih eksplisit menunjukkan bagaimana meningkatkan korelasi mengurangi variabilitas dalam residu. Anda hanya perlu memastikan bahwa sumbu vertikal tidak berubah dengan setiap plot, yang mungkin terjadi jika Anda menggunakan penskalaan default.
Jadi Anda bisa membandingkan tiga plot r1 vs x, r2 vs x dan r3 vs x. Saya menggunakan "r" untuk mengindikasikan residu dari fit menggunakan y1, y2, dan y3.
Keterampilan R saya dalam merencanakan tidak ada harapan, jadi saya tidak bisa menawarkan banyak bantuan di sini.
sumber