Saya memiliki dataset dengan tiga variabel kategori dan saya ingin memvisualisasikan hubungan antara ketiganya dalam satu grafik. Ada ide?
Saat ini saya menggunakan tiga grafik berikut:
Setiap grafik adalah untuk tingkat depresi dasar (Ringan, Sedang, Parah). Kemudian dalam setiap grafik saya melihat hubungan antara pengobatan (0,1) dan peningkatan Depresi (tidak ada, sedang, substansial).
3 grafik ini berfungsi untuk melihat hubungan 3 arah, tetapi adakah cara yang diketahui untuk melakukan ini dengan satu grafik?
r
data-visualization
categorical-data
Alejandro Ochoa
sumber
sumber
Jawaban:
Ini adalah kumpulan data yang menarik untuk dicoba disajikan secara grafis, sebagian karena itu tidak terlalu kategorikal. Kedua faktor 3-tingkat bersifat ordinal dan ada kemungkinan saling mempengaruhi di antara mereka (mungkin, lebih sulit untuk
mild
baseline
dimilikisubstantial
improvement
- atau mungkinsubstantial
improvement
berarti sesuatu yang berbeda untuk masing-masingbaseline
).Dengan banyak variabel, biasanya tidak ada tampilan tunggal yang menunjukkan semua fitur yang mungkin Anda pedulikan. Beberapa faktor akan lebih mudah dibandingkan daripada yang lain. Saya pikir tampilan awal Anda baik dan akan lebih baik dengan saran Nick Cox: menghapus duplikat legenda dan menggunakan skala warna ordinal.
Jika Anda paling menarik dalam melihat perbedaan antara perawatan, Anda dapat menekankan perubahan dengan menggunakan plot area yang ditumpuk alih-alih bar yang ditumpuk.
Saya biasanya waspada menumpuk secara umum karena lebih sulit untuk membaca nilai-nilai tengah, tetapi itu menegakkan kembali sifat jumlah tetap dari data ini. Dan itu membuatnya mudah untuk membaca jumlah
moderate
+substantial
jika itu relevan. Saya telah membalik urutanimprovement
level sehingga lebih tinggi lebih baik untuk frekuensi.Tanpa susun, padanannya adalah grafik kemiringan.
Lebih mudah membaca setiap level, tetapi lebih sulit untuk memahami interaksi. Anda harus ingat bahwa baris ketiga secara langsung tergantung pada dua lainnya.
Mengingat sifat ordinal dari data, mungkin bermanfaat untuk mengubah
improvement
nilai menjadi skor numerik, seperti yang sering dilakukan dengan data Likert . Misalnya,none=0
,moderate=1
,substantial=2
. Kemudian Anda bisa membuat grafik variabel itu dalam skala berkelanjutan. Kelemahannya adalah Anda harus menemukan skor yang masuk akal (mis., Mungkin 0, 1 dan 5 akan menjadi representasi yang lebih benar).Colophon : Plot-plot ini dibuat dengan fitur Graph Builder dalam paket perangkat lunak JMP (yang saya bantu kembangkan). Meskipun dibuat secara interaktif, skrip, misalnya, untuk plot area, tanpa penyesuaian pewarnaan, adalah:
sumber
Pertama, ini adalah bacaan saya dari grafik yang disediakan data untuk mereka yang ingin bermain (bereksperimen, jika Anda suka). Kesalahan off-by-one NB tentu saja mungkin terjadi, demikian pula dengan kesalahan kotor.
Ini adalah pengerjaan ulang dari desain aslinya. Satu detail dari data asli membuat semuanya menjadi sederhana: jumlah orang di masing-masing kombinasi prediktor adalah sama, sehingga frekuensi plot dan persentasi plotnya sama. Di sini alih-alih bagan batang yang ditumpuk (dibagi lagi, tersegmentasi), kami memisahkan batang dalam bagan batang dua arah atau desain plot tabel.
Banyak detail dalam grafis hanya itu, detail. Beberapa kelemahan kecil dalam grafik dapat merusak efektivitasnya dan beberapa perbaikan kecil juga dapat membantu.
Untuk mengejanya:
Tiga panel tidak diperlukan di sini, dengan pengulangan sumbu, legenda, dan teks.
Legenda selalu mengutuk serta memberkati, mewajibkan pembaca untuk "bolak-balik" secara mental (atau menghafal legenda, bukan sesuatu yang menarik, betapapun mudahnya). Teks informatif tepat di bar lebih mudah diikuti.
Pengodean warna salad buah dapat digunakan. Tampaknya sewenang-wenang juga: peningkatan "substansial" adalah masalah besar, tetapi saya menemukan warna kuning yang kuat dan lembut. Tetapi kita tidak perlu warna ketika kita memiliki teks untuk dijelaskan.
Meskipun beberapa akan menjerit ngeri karena melanggar perbedaan antara Gambar dan Tabel, kita dapat menunjukkan frekuensi juga. Sangat membantu untuk dapat berpikir "4 orang dalam kategori ini".
Ada penghormatan di sini untuk merencanakan respons tradisional pada sumbu vertikal, seperti pada aslinya.
Semua itu mengatakan, sulit untuk melihat banyak struktur dalam data ini. Ketika itu terjadi, sulit juga untuk berbagi kesalahan antara (a) data tanpa banyak struktur dan (b) kelemahan desain grafis untuk memilih tidak hanya efek prediktor tetapi juga kemungkinan interaksi. Perawatan tampaknya kurang penting daripada kondisi awal. Tetapi kemudian, jika garis dasarnya "ringan", berapa banyak ruang lingkup yang ada untuk perbaikan "substansial"? Saya akan berhenti di sana untuk berhenti membodohi diri sendiri ketika studi tentang data kesehatan mental jelas bukan spesialisasi, terutama jika data itu ternyata palsu. Tetapi jika itu nyata, kita bisa melakukannya dengan ukuran sampel yang jauh lebih besar. (Kami biasanya mengatakan itu, tapi begitulah.)
EDIT Grafik mungkin secara alami menjadi rumit oleh skema warna ordinal jika diinginkan:
Sebagai catatan: grafik menggunakan kode Stata, termasuk program saya sendiri yang dapat
tabplot
diunduh menggunakanssc inst tabplot
.sumber
Saya suka menggunakan sumbu x 2-level untuk data seperti ini. Jadi kategori x-axis Anda untuk satu bagan mungkin:
... dengan jumlah yang sama berdasarkan bar histogram [tidak ada / sedang / substansial].
sumber
Bukankah plot Mosaic dirancang khusus untuk tujuan ini?
Dalam R akan seperti
Setiap variabel kategori menuju ke satu sisi dari bujur sangkar, yang dibagi lagi dengan labelnya. (Jadi, jika Anda membagi setiap sisi pada satu tingkat saja, paling banyak 4 variabel kategori dapat diwakili. IMHO, di luar 3 itu menjadi berantakan dan sulit untuk ditafsirkan). Ukuran persegi panjang sebanding dengan frekuensi. Ini adalah ide utama di balik plot mosaik dan itu sama dalam jawaban dan jawaban Paweł Kleka.
Perbedaannya terletak pada tata letak persegi panjang dan "kualitas" yang disediakan oleh paket-R tertentu yang digunakan untuk jenis plot ini. Seperti yang Anda lihat dari jawaban Paweka Kleka,
graphics
paket membagi dua tepi atas pada 2 tingkat alih-alih menggunakan tepi kanan. Saya menggunakanvcd
paket dengan opsi default, sehingga warna menunjukkan tingkat asosiasi antara variabel. Gray berarti bahwa data konsisten dengan (Anda tidak dapat menolak hipotesis) independensi variabel. Biru berarti bahwa ada hubungan positif antara peningkatan "parah" dan peningkatan "substansial" untuk pengobatan "0" dan "1". (Kejutan, kejutan! Saya menerjemahkannya sebagai berikut: jika Anda mengalami depresi berat, kemungkinan Anda akan mendapatkan jauh lebih baik apakah Anda menjalani perawatan atau tidak.Seseorang dapat menyesuaikan plot sesuai dengan kebutuhannya, lihat, misalnya, di sini . Paket ini juga memiliki beberapa sketsa, google "vcd mosaic example" (seperti yang baru saja saya lakukan). Artikel Wikipedia yang dikutip di awal juga menjelaskan bagaimana membangun tipe plot dan intuisi di baliknya.
Ketika Anda membandingkan gambar saya dengan gambar di jawaban Paweł Kleka, tidak masalah, bahwa 'perlakuan' ada di tepi kiri setiap gambar. Anda dapat dengan mudah mengubah lokasi tepi dengan mengubah baris terakhir kode saya dan menyesuaikan tata letak sesuai dengan kebutuhan Anda. Praktik umum adalah bahwa di sebelah kiri pergi variabel yang paling penting atau variabel dengan jumlah label paling sedikit. Anda juga dapat mengubah urutan label (misalnya, sehingga, di tepi kanan urutannya adalah "tidak ada yang cukup substansial") dengan membuat variabel faktor terkait dalam R yang dipesan dan menyesuaikan levelnya.
sumber
Saya paling suka menggunakan plot mosaik
sumber
Pilihan yang saya pertimbangkan adalah menggunakan set paralel. Beberapa perbandingan akan lebih mudah daripada yang lain, tetapi Anda masih bisa melihat hubungan di antara tiga variabel kategori.
Ini dia contoh dengan data Titanic Survival:
Di R (diberikan tag Anda) Saya telah menggunakan ggparallel untuk mengimplementasikannya. Beberapa orang telah membahas di sini di CV cara menerapkannya dengan cara lain.
sumber
Informasi ini juga dapat disampaikan menggunakan bagan garis sederhana berikut:
Peningkatan ditunjukkan oleh jenis garis yang berbeda sementara kelompok garis dasar ditampilkan dalam warna. Ini dan parameter x-axis (perawatan di sini) juga dapat dipertukarkan jika diinginkan.
sumber
Mirip dengan set paralel, seperti yang diposting oleh nazareno di atas, Anda dapat menggunakan plot aluvial yang tersedia dari paket R alluvial. http://www.r-bloggers.com/alluvial-diagrams/
sumber