Apa grafik yang sesuai untuk menggambarkan hubungan antara dua variabel ordinal?
Beberapa opsi yang dapat saya pikirkan:
- Scatter plot dengan menambahkan jitter acak untuk menghentikan titik persembunyian satu sama lain. Rupanya grafik standar - Minitab menyebutnya sebagai "plot nilai individu". Menurut pendapat saya itu mungkin menyesatkan karena secara visual mendorong semacam interpolasi linier antara tingkat ordinal, seolah-olah data berasal dari skala interval.
- Plot sebar diadaptasi sehingga ukuran (area) titik mewakili frekuensi kombinasi level tersebut, daripada menggambar satu titik untuk setiap unit sampling. Saya kadang-kadang melihat plot seperti itu dalam praktik. Mereka mungkin sulit dibaca, tetapi poin-poinnya terletak pada kisi-kisi yang ditempatkan secara teratur, yang agak mengatasi kritik dari plot scatter yang gugup sehingga secara visual "menskala" data.
- Khususnya jika salah satu variabel diperlakukan sebagai dependen, plot kotak dikelompokkan berdasarkan level variabel independen. Kemungkinan terlihat mengerikan jika jumlah level variabel dependen tidak cukup tinggi (sangat "datar" dengan kumis yang hilang atau kuartil yang runtuh lebih buruk yang membuat identifikasi visual median menjadi tidak mungkin), tetapi setidaknya menarik perhatian median dan kuartil yang statistik deskriptif yang relevan untuk variabel ordinal.
- Tabel nilai atau kotak kosong sel dengan peta panas untuk menunjukkan frekuensi. Berbeda secara visual tetapi secara konsep mirip dengan sebaran plot dengan area titik menunjukkan frekuensi.
Apakah ada ide lain, atau pemikiran tentang plot mana yang lebih disukai? Apakah ada bidang penelitian di mana plot ordinal-vs-ordinal tertentu dianggap sebagai standar? (Sepertinya saya ingat frekuensi peta panas tersebar luas dalam genomik tetapi menduga itu lebih sering untuk nominal-vs-nominal.) Saran untuk referensi standar yang baik juga akan sangat disambut, saya menebak sesuatu dari Agresti.
Jika ada yang ingin mengilustrasikannya dengan plot, kode R untuk data sampel palsu berikut.
"Seberapa pentingkah olahraga untukmu?" 1 = sama sekali tidak penting, 2 = agak tidak penting, 3 = tidak penting atau tidak penting, 4 = agak penting, 5 = sangat penting.
"Seberapa teratur Anda berlari 10 menit atau lebih lama?" 1 = tidak pernah, 2 = kurang dari sekali per dua minggu, 3 = sekali setiap satu atau dua minggu, 4 = dua atau tiga kali per minggu, 5 = empat atau lebih kali per minggu.
Jika itu wajar untuk memperlakukan "sering" sebagai variabel dependen dan "kepentingan" sebagai variabel independen, jika plot membedakan keduanya.
importance <- rep(1:5, times = c(30, 42, 75, 93, 60))
often <- c(rep(1:5, times = c(15, 07, 04, 03, 01)), #n=30, importance 1
rep(1:5, times = c(10, 14, 12, 03, 03)), #n=42, importance 2
rep(1:5, times = c(12, 23, 20, 13, 07)), #n=75, importance 3
rep(1:5, times = c(16, 14, 20, 30, 13)), #n=93, importance 4
rep(1:5, times = c(12, 06, 11, 17, 14))) #n=60, importance 5
running.df <- data.frame(importance, often)
cor.test(often, importance, method = "kendall") #positive concordance
plot(running.df) #currently useless
Pertanyaan terkait untuk variabel kontinu yang saya temukan bermanfaat, mungkin titik awal yang berguna: Apa alternatif untuk scatterplots saat mempelajari hubungan antara dua variabel numerik?
Jawaban:
Spineplot (plot mosaik) berfungsi dengan baik untuk data contoh di sini, tetapi bisa sulit dibaca atau ditafsirkan jika beberapa kombinasi kategori jarang atau tidak ada. Tentu saja wajar, dan diharapkan, bahwa frekuensi rendah diwakili oleh ubin kecil, dan nol dengan tidak ada ubin sama sekali, tetapi kesulitan psikologis tetap ada. Wajar jika orang yang suka spineplots memilih contoh yang cocok untuk kertas atau presentasi mereka, tetapi saya sering membuat contoh yang terlalu berantakan untuk digunakan di depan umum. Sebaliknya, spineplot menggunakan ruang yang tersedia dengan baik.
Beberapa implementasi mengandaikan grafik interaktif, sehingga pengguna dapat menginterogasi setiap ubin untuk mempelajari lebih lanjut tentang itu.
Alternatif yang juga dapat bekerja dengan baik adalah diagram batang dua arah (banyak nama lain ada).
Lihat misalnya
tabplot
dalam http://www.surveydesign.com.au/tipsusergraphs.htmlUntuk data ini, satu kemungkinan plot (diproduksi menggunakan
tabplot
di Stata, tetapi harus mudah dalam perangkat lunak yang layak) adalahFormat ini berarti mudah untuk menghubungkan bilah individual dengan pengidentifikasi baris dan kolom dan bahwa Anda dapat membuat catatan dengan frekuensi, proporsi, atau persen (jangan lakukan itu jika menurut Anda hasilnya terlalu sibuk, tentu saja).
Beberapa kemungkinan:
Jika satu variabel dapat dianggap sebagai respons terhadap yang lain sebagai prediktor, maka ada baiknya Anda merencanakannya pada sumbu vertikal seperti biasa. Di sini saya berpikir tentang "kepentingan" sebagai mengukur suatu sikap, pertanyaannya kemudian adalah apakah hal itu memengaruhi perilaku ("sering"). Masalah kausal seringkali lebih rumit bahkan untuk data imajiner ini, tetapi intinya tetap ada.
Saran # 1 adalah selalu palsu jika kebalikannya bekerja lebih baik, artinya, lebih mudah untuk dipikirkan dan ditafsirkan.
Persen atau probabilitas gangguan sering kali masuk akal. Sebidang frekuensi mentah juga dapat bermanfaat. (Secara alami, plot ini tidak memiliki keutamaan plot mosaik untuk menunjukkan kedua jenis informasi sekaligus.)
Anda tentu saja dapat mencoba (jauh lebih umum) alternatif bagan batang yang dikelompokkan atau bagan batang bertumpuk (atau bagan titik yang masih sangat jarang dikelompokkan dalam arti WS Cleveland). Dalam hal ini, saya tidak berpikir mereka bekerja dengan baik, tetapi kadang-kadang mereka bekerja lebih baik.
Beberapa mungkin ingin mewarnai berbagai kategori respons secara berbeda. Saya tidak keberatan, dan jika Anda ingin, Anda tidak akan menganggap keberatan dengan serius.
Strategi hibridisasi grafik dan tabel dapat bermanfaat secara lebih umum, atau memang tidak seperti yang Anda inginkan sama sekali. Argumen yang sering diulang adalah bahwa pemisahan Gambar dan Tabel hanyalah efek samping dari penemuan pencetakan dan pembagian kerja yang dihasilkannya; sekali lagi tidak perlu, sama seperti manuskrip para penulis meletakkan ilustrasi persis bagaimana dan di mana mereka suka.
sumber
Berikut adalah upaya cepat pada peta panas , saya telah menggunakan batas sel hitam untuk memecah sel, tetapi mungkin ubin harus dipisahkan lebih seperti dalam jawaban Glen_b.
Berikut ini adalah plot fluktuasi berdasarkan komentar sebelumnya oleh Andy W. Saat ia menggambarkan mereka "mereka pada dasarnya hanya bin scatterplot untuk data kategorikal, dan ukuran suatu titik dipetakan ke jumlah pengamatan yang termasuk dalam bin itu." Untuk referensi, lihat
sumber
Berikut adalah contoh tampilan spineplot data. Aku melakukan ini di Stata cukup cepat, tapi ada implementasi R . Saya pikir dalam R seharusnya:
spineplot(factor(often)~factor(importance))
Spineplot sebenarnya tampaknya menjadi default jika Anda memberikan variabel kategori R:
plot(factor(often)~factor(importance))
Rincian pecahan kategori sering ditampilkan untuk setiap kategori kepentingan. Bar bertumpuk digambar dengan dimensi vertikal yang menunjukkan fraksi yang sering diberi kategori kepentingan. Dimensi horizontal menunjukkan fraksi di setiap kategori kepentingan. Dengan demikian bidang ubin yang dibentuk mewakili frekuensi, atau lebih umum totalnya, untuk setiap kombinasi-silang kepentingan dan sering.
sumber
Cara saya melakukan ini sedikit fudge, tetapi bisa diperbaiki dengan cukup mudah.
Ini adalah versi modifikasi dari pendekatan jittering.
Melepaskan sumbu mengurangi godaan untuk menafsirkan skala sebagai kontinu; menggambar kotak di sekitar kombinasi yang dikunci menekankan ada sesuatu seperti "skala istirahat" - bahwa intervalnya tidak harus sama
Idealnya, label 1..5 harus diganti dengan nama kategori, tetapi saya akan membiarkannya untuk imajinasi sekarang; Saya pikir itu menyampaikan rasa itu.
Kemungkinan perbaikan:
i) membuat jeda lebih kecil (saya lebih suka jeda lebih besar dari ini, secara pribadi), dan
ii) mencoba menggunakan urutan quasirandom untuk mengurangi timbulnya pola yang jelas di dalam kotak. Meskipun usaha saya agak membantu, Anda dapat melihat bahwa di dalam sel dengan jumlah poin yang lebih sedikit masih ada beberapa yang memiliki tampilan yang kurang lebih berkorelasi (misalnya kotak di baris atas, kolom ke-2). Untuk menghindari itu, urutan kuasi-acak mungkin harus diinisialisasi untuk setiap sub-kotak. (Alternatif mungkin adalah pengambilan sampel Latin Hypercube.) Setelah itu disortir, ini bisa dimasukkan ke dalam fungsi yang bekerja persis seperti jitter.
sumber
Menggunakan paket R riverplot:
sumber
Ide lain yang tidak saya pikirkan awalnya adalah alur saringan .
Ukuran setiap ubin sebanding dengan frekuensi yang diharapkan; kotak kecil di dalam persegi panjang mewakili frekuensi aktual. Karenanya kepadatan kotak yang lebih besar menunjukkan frekuensi yang lebih tinggi dari yang diharapkan (dan berwarna biru); kepadatan kotak yang lebih rendah (merah) adalah untuk frekuensi yang lebih rendah dari yang diharapkan.
Saya pikir saya akan lebih suka jika warna mewakili ukuran, bukan hanya tanda, dari residu. Hal ini terutama berlaku untuk kasus tepi di mana frekuensi yang diharapkan dan diamati adalah serupa dan sisanya mendekati nol; skema merah / biru dikotomis tampaknya terlalu menekankan penyimpangan kecil.
Implementasi dalam R:
sumber
Bagan bilah segi dalam R. Ini menunjukkan distribusi "sering" pada setiap tingkat "kepentingan" dengan sangat jelas. Tapi itu tidak akan bekerja dengan baik jika jumlah maksimum lebih bervariasi antara tingkat "kepentingan"; cukup mudah untuk diatur
scales="free_y"
dalam ggplot ( lihat di sini ) untuk menghindari banyak ruang kosong, tetapi bentuk distribusinya akan sulit dilihat pada tingkat "kepentingan" frekuensi rendah karena palang akan sangat kecil. Mungkin dalam situasi itu lebih baik menggunakan frekuensi relatif (probabilitas bersyarat) pada sumbu vertikal sebagai gantinya.Ini tidak begitu "bersih" seperti tabplot di Stata yang terhubung dengan Nick Cox, tetapi menyampaikan informasi serupa.
Kode R:
sumber