Untuk data longitudinal dengan hasil numerik, saya bisa menggunakan plot spageti untuk memvisualisasikan data. Misalnya sesuatu seperti ini (diambil dari situs Statistik UCLA):
tolerance<-read.table("http://www.ats.ucla.edu/stat/r/faq/tolpp.csv",sep=",", header=T)
head(tolerance, n=10)
interaction.plot(tolerance$time, tolerance$id, tolerance$tolerance,
xlab="time", ylab="Tolerance", legend=F)
Tetapi bagaimana jika hasil saya adalah biner 0 atau 1? Misalnya, dalam data "ohio" di R, variabel "resp" biner menunjukkan adanya penyakit pernapasan:
library(geepack)
ohio2 <- ohio[2049:2148,]
head(ohio2, n=12)
resp id age smoke
2049 1 512 -2 1
2050 0 512 -1 1
2051 0 512 0 1
2052 0 512 1 1
2053 1 513 -2 1
2054 0 513 -1 1
2055 0 513 0 1
2056 1 513 1 1
2057 1 514 -2 1
2058 0 514 -1 1
2059 0 514 0 1
2060 1 514 1 1
interaction.plot(ohio2$age+9, ohio2$id, ohio2$resp,
xlab="age", ylab="Wheeze status", legend=F)
Plot spageti memberikan angka yang bagus, tetapi tidak terlalu informatif dan tidak banyak memberi tahu saya. Apa cara yang cocok untuk memvisualisasikan data semacam ini? Mungkin sesuatu yang mencakup nilai probabilitas pada sumbu y?
ohio
data (2.15) (setidaknya bukan sebagai bagian dari basis). Apakah itu dalam versi yang lebih baru atau melalui perpustakaan lain? Ini akan menjadi aplikasi yang menarik untuk peta panas dengan individu pada sumbu Y dan hasil pada sumbu X, kemudian plot 1 tanggapan sebagai hitam dan 0 tanggapan sebagai putih. Menyortir matriks kemudian akan memberikan gambaran tentang bagaimana pola yang berbeda lazim.geepack
paket.Jawaban:
Ada beberapa cara untuk mengatasinya.
Menggeser variabel secara ringan untuk mengaburkan garis
Pertama, karena baik usia dan hasilnya terpisah dengan baik, kita bisa sedikit jitter mereka untuk menunjukkan beberapa tren. Caranya adalah dengan menggunakan transparansi dalam warna garis sehingga lebih mudah untuk membedakan besarnya tumpang tindih.
Menjadi mewah
Mungkin juga menggunakan kurva semacam ini untuk menunjukkan aliran subjek. Ini seperti modifikasi dari grafik di atas, tetapi menggunakan lebar garis untuk mewakili frekuensi daripada menggunakan tumpang tindih.
Tunjukkan nasib setiap kasus
Ini mungkin terdengar kontra-intuisi, tetapi jika Anda meletakkan kasus secara sistematis, itu berfungsi dengan baik untuk menceritakan kisah yang dikumpulkan. Di sini hasil setiap kasus ditampilkan di sepanjang garis referensi warna abu-abu. Saya tidak menambahkan legenda di sana tetapi menggunakan
legend
perintah itu dapat ditambahkan dengan mudah. Biru adalah "resp = 0" dan Merah adalah "resp = 1". Waktu (usia) tersebar pada sumbu x. Data Anda dengan mudah didahului oleh pola hasil, jadi saya tidak perlu melakukan apa pun. Jika tidak diprogram, Anda harus menggunakan perintah sepertidcast
pada paketreshape2
untuk memijat sedikit data.Tabulasi
Visualisasi bukan satu-satunya jalan keluar. Karena hanya akan ada, paling banyak, 16 pola yang berbeda, Anda juga dapat membuat tabulasi. Gunakan
+
dan-
untuk membuat pola seperti+ + + +
dan+ - - -
, dan kemudian untuk masing-masing pola ini, lampirkan jumlah dan persentase. Ini dapat menunjukkan informasi yang sama efektifnya.sumber