Yang merupakan visualisasi terbaik untuk tabel kontingensi?

22

Manakah plot terbaik, dari sudut pandang statistik, untuk menunjukkan tabel kontingensi , yang biasanya dianalisis dengan uji chi-square? Apakah itu barplot yang dihindari, barplot yang ditumpuk, peta panas, plot kontur, scatterplot jitterred, plot beberapa baris atau yang lainnya? Haruskah seseorang menunjukkan nilai atau persentase absolut?

Sunting: Atau seperti yang @forecaster sarankan dalam komentar, tabel angka itu sendiri merupakan plot sederhana dan harus memadai.

juga
sumber
4
Terkadang tabel data adalah metode visualisasi terbaik vs. plot. Tabel kontingensi adalah contoh klasik dari itu.
peramal
1
Poin penting, meskipun saya tidak setuju bahwa itu selalu merupakan pilihan terbaik.
rnso
1
Itu sebabnya saya mengatakan "kadang-kadang". Saya akan merekomendasikan, Stephen Few's Tunjukkan angka-angka yang memiliki seluruh bagian yang didedikasikan untuk tabel.
peramal
1
baik, metode terbaik tergantung pada apa yang ingin Anda tunjukkan, seberapa besar tabelnya, tanpa spesifik ini untuk luas!
kjetil b halvorsen
3
Sebagian besar stats.stackexchange.com/questions/56322/… tampaknya relevan di sini.
Nick Cox

Jawaban:

9

Tidak akan ada solusi satu ukuran untuk semua di sini. Jika Anda memiliki tabel yang sangat sederhana (misalnya, ), cukup menyajikan tabel mungkin adalah yang terbaik. Jika Anda menginginkan sosok yang sebenarnya, plot mosaik (seperti yang disarankan oleh @xan) mungkin merupakan tempat yang bagus untuk memulai. Ada beberapa opsi lain yang analog dengan plot mosaik, termasuk plot saringan, plot asosiasi, dan plot tekanan dinamis (lihat pertanyaan saya di sini: Alternatif untuk saringan / plot mosaik untuk tabel kontingensi ); Buku Michael Friendly, Visualisasi Data Kategori , akan menjadi sumber yang bagus (berbasis SAS) untuk topik ini dan paket vcd adalah sumber yang bagus untuk mengimplementasikan ide-ide itu di R. 2×2

Karena tabel memiliki jumlah baris dan kolom yang lebih besar, menurut saya, ini menjadi lebih sulit untuk digunakan. Jenis opsi visualisasi yang berbeda adalah melakukan / merencanakan analisis korespondensi . Analisis korespondensi analog dengan menjalankan analisis komponen utama pada baris dan kolom tabel kontingensi. Kemudian keduanya diplot bersama dengan biplot. Berikut ini adalah contoh berbasis R yang menggunakan data dari jawaban @ xan:

library(ca)
tab = as.table(rbind(c(28, 4,  0, 56),
                     c(38, 5,  9, 10),
                     c( 6, 6, 14, 13) ))
names(dimnames(tab)) = c("activity", "period")
rownames(tab)        = c("feed", "social", "travel")
colnames(tab)        = c("morning", "noon", "afternoon", "evening")
tab
#         period
# activity morning noon afternoon evening
#   feed        28    4         0      56
#   social      38    5         9      10
#   travel       6    6        14      13
plot(ca(tab))

masukkan deskripsi gambar di sini

Untuk menginterpretasikan plot ini, semakin dekat dua titik dengan tipe yang sama, semakin mirip kedua profil baris / kolom tersebut. Dan semakin dekat dua titik dari jenis yang berbeda, semakin besar massa probabilitasnya dalam sel yang mewakili persimpangan mereka.

Di R ada paket ca ; sketsa ini ( pdf ) dapat membantu juga.

gung - Reinstate Monica
sumber
Sangat berguna. Tampaknya gagal dengan nilai-nilai kecil, misalnya: tt = with (mtcars, tabel (factor (gear), factor (vs))); plot (ca (tt)); Kesalahan dalam x [, redup]: subskrip di luar batas
rnso
Itu karena salah satu faktor (yaitu, factor(vs)) hanya memiliki dua tingkatan; Anda membutuhkan setidaknya tiga. Coba ttt = with(mtcars, table(factor(gear), factor(cyl))); plot(ca(ttt)).
gung - Reinstate Monica
Tampilan hubungan yang sangat baik antara berbagai faktor.
rnso
Atau Anda bisa memperlihatkan tabel setelah menata ulang baris dan kolom dalam urutan skor analisis korespondensi.
kjetil b halvorsen
Ide yang menarik, @kjetilbhalvorsen. Saya tidak yakin bagaimana mendapatkannya dari caobjek, jadi saya mengkodekannya dari awal. Kecuali saya melakukan kesalahan, Anda menyusun ulang baris c(1,3,2)& kolom c(4,1,3,2). Setelah melakukan itu, saya tidak yakin apa yang seharusnya saya lihat di sini. Apa yang ada dalam pikiranmu?
gung - Reinstate Monica
11

Visual yang berbeda akan lebih baik dalam menyoroti fitur yang berbeda, tetapi plot Mosaic bekerja dengan baik untuk tampilan umum (memeriksa untuk melihat apakah ada yang menonjol). Mungkin itu yang Anda maksudkan dengan plot bar yang dihindari. Seperti kebanyakan opsi, mereka tidak simetris karena mereka mewakili frekuensi relatif lebih baik dalam satu dimensi daripada yang lain. Fitur yang bagus adalah bahwa frekuensi marginal juga diwakili.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

xan
sumber
Ini bagus. Baik angka dan proporsi diwakili. Angka-angka juga bisa diletakkan di plot. Jika urutan item x-axis diatur, itu akan terlihat lebih baik. Dengan menghindari saya maksud barplot umum dengan kategori berdampingan, daripada ditumpuk satu sama lain (lihat posisi = 'menghindar' pada halaman ini: r-bloggers.com/using-r-barplot-with-ggplot2 ).
rnso
1
+1 Desain ini sering bekerja sangat baik untuk data yang relatif sederhana ; sebaliknya, saya mendapati bahwa dengan cepat menjadi sulit untuk memikirkan data yang lebih rumit, meskipun banyak penekanan dalam literatur tentang ekstensibilitasnya ke tabel kontingensi dimensi sewenang-wenang. Namun, tidak ada desain yang berfungsi dengan baik dalam kondisi seperti itu. Poin kecil dengan contoh ini adalah bahwa Anda tampaknya telah menerima urutan abjad default "siang" ... "siang" yang ditawarkan oleh program Anda, sedangkan mempertahankan urutan waktu tampaknya merupakan pilihan yang lebih alami.
Nick Cox
8

Saya setuju bahwa plot "terbaik" tidak ada terlepas dari set data, jumlah pembaca, dan tujuan. Untuk dua variabel terukur, sebar plot bisa dibilang merupakan desain yang membuat semua yang lain di belakangnya, kecuali untuk tujuan tertentu, tetapi tidak ada pemimpin pasar seperti itu jelas untuk data kategorikal.

Tujuan saya di sini adalah hanya untuk menyebutkan metode sederhana, sering ditemukan kembali atau diciptakan kembali, tetapi bagaimanapun juga sering diabaikan bahkan dalam monograf atau buku teks yang mencakup grafik statistik.

Contoh pertama, mencakup data yang sama seperti yang diposting oleh xan:

masukkan deskripsi gambar di sini

Jika sebuah nama dicari, seperti biasanya, ini adalah barchart dua hari (dalam hal ini). Saya tidak akan membuat katalog istilah lain di sini, kecuali beberapa barchart adalah salah satu alternatif umum dengan rasa serupa. (Keberatan kecil saya untuk "banyak barchart" adalah bahwa "beberapa" tidak mengesampingkan grafik batang yang sangat umum ditumpuk atau berdampingan, sedangkan "twoway" bagi saya lebih jelas menyiratkan tata letak baris dan kolom, meskipun pada gilirannya mungkin mengambil contoh untuk memperjelasnya.)

Plus dan minus untuk plot semacam ini juga sederhana, tetapi saya akan menjelaskannya. Karena saya menyukai desain ini (yang kembali setidaknya ke tahun 1930-an), orang lain mungkin ingin menambahkan kritik yang lebih tajam.

+1. Idenya mudah dipahami , bahkan oleh kelompok non-teknis. Tinggi batang atau panjang batang mengkodekan frekuensi dalam contoh ini. Dalam contoh lain, mereka dapat menyandikan persentase yang dihitung dengan cara apa pun yang Anda suka, residual, dll.

+2. Struktur baris-dan-kolom cocok dengan tabel . Anda dapat menambahkan nilai numerik juga. Jumlah yang sangat kecil dan bahkan nol tersirat jelas jelas, yang tidak selalu terjadi dengan desain lain (misalnya grafik batang bertumpuk, plot mosaik). Pelabelan baris dan kolom biasanya lebih efisien daripada menambahkan kunci atau legenda, dengan mental "bolak-balik" yang diperlukan. Dengan demikian, desain ini menghibridisasikan ide-ide grafik dan tabel, yang tampaknya mengganggu sebagian pembaca; sebaliknya, saya berpendapat bahwa perbedaan yang kuat antara Gambar dan Tabel hanyalah hang-over historis, usang sekarang bahwa peneliti dapat menyiapkan dokumen mereka sendiri dan tidak harus bergantung pada desainer, kompositor dan printer.

+3. Perluasan pada desain tiga arah dan lebih tinggi pada prinsipnya mudah . Letakkan dua atau lebih variabel sebagai variabel komposit pada salah satu atau kedua sumbu, atau berikan array plot tersebut. Secara alami, semakin rumit desainnya, semakin rumit interpretasinya.

+4. Desainnya jelas memungkinkan variabel ordinal pada kedua sumbu. Urutan dapat diekspresikan (misalnya) dengan naungan yang sesuai serta urutan kategori pada sumbu itu. Urutan kategori pada sumbu dapat ditentukan oleh maknanya, atau lebih baik ditentukan oleh frekuensi; urutan alfabet menurut label teks mungkin merupakan standar, tetapi tidak boleh menjadi satu-satunya pilihan yang dipertimbangkan.

-1. Dengan menjadi umum dalam desain, plot dapat menjadi kurang efisien dalam menunjukkan jenis hubungan tertentu . Secara khusus, plot mosaik dapat membuat keberangkatan dari kemerdekaan menjadi sangat jelas. Sebaliknya, ketika hubungan antara variabel kategori rumit atau tidak jelas, maka biasanya tidak ada grafik yang baik untuk menunjukkan lebih dari fakta yang lemah.

-2. Dalam beberapa hal desainnya tidak efisien dalam penggunaan ruang dengan menyisakan ruang untuk setiap kombinasi silang terlepas dari apakah atau seberapa sering itu terjadi. Ini adalah sifat buruk dari prinsip yang sama yang dianggap sebagai kebajikan. Desain khusus di atas mengkategorikan kategori secara merata terlepas dari frekuensinya; Mengorbankan yang sering mengorbankan label marjinal yang mudah dibaca, yang sangat saya hargai. Dalam contoh ini, label teks kebetulan semuanya sangat pendek, tetapi itu jauh dari tipikal.

Catatan: Data xan tampaknya hanya ditemukan, jadi saya tidak akan mencoba interpretasi seperti yang dicoba pada jawaban lain. Tetapi beberapa kearifan rumahan layak menerima kata terakhir di sini: desain terbaik untuk Anda adalah desain yang paling baik menyampaikan kepada Anda dan pembaca Anda struktur beberapa data nyata yang Anda pedulikan.

Contoh lain termasuk

Bagaimana Anda bisa memvisualisasikan hubungan antara 3 variabel kategori?

Grafik untuk hubungan antara dua variabel ordinal

Nick Cox
sumber
1
+1 untuk opsi lain yang layak & beberapa diskusi hebat. Izinkan saya mengajukan pertanyaan tentang barchart 2 arah / arahkan ke kemungkinan downside lainnya: Ada 'kotak' tanpa tanda, tetapi dapat dilihat dengan jelas di mana bar dapat diplot. Saat bilah mendekati bagian atas kotak, ia mencapai 100%. Bagaimana nilai itu ditentukan? (NB, tabel kontingensi selalu multinomial dalam beberapa hal, dengan total yang diketahui.) Membuat bagian atas jumlah baris kotak atau jumlah kolom akan mempromosikan kesimpulan persepsi yang berbeda. (Tampaknya tidak ada jumlah tabel yang digunakan, karena banyak batang akan terlalu kecil untuk dibedakan.)
gung - Reinstate Monica
1
@ung, terima kasih. Saya dapat mengomentari program Stata saya sendiri, yang digunakan di sini dan dalam contoh saya di tempat lain di CV. Program ini tabplotdari SSC. Ketinggian palang harus sebagian kecil dari ketinggian palang tertinggi atau terpanjang; ruang yang tersedia untuk itu ditentukan oleh berapa banyak baris yang ditampilkan. Pengguna dapat mengesampingkan ukuran celah default, tetapi kemudian berisiko bilah menyentuh atau menyumbat satu sama lain. Jika bar bisa negatif dan juga positif, semuanya tidak mudah. Saya membayangkan bahwa kendala yang sama menggigit dengan program lain. Singkatnya, batang yang tidak bersentuhan menyiratkan ruang putih!
Nick Cox
8

Untuk melengkapi jawaban @ gung dan @ xan, berikut adalah contoh plot mosaik dan asosiasi yang digunakan vcddalam R.

> tab
        period
activity morning noon afternoon evening
  feed        28    4         0      56
  social      38    5         9      10
  travel       6    6        14      13

Untuk mendapatkan plot:

require(vcd)
mosaic(tab, shade=T, legend=T)
assoc(tab, shade=T, legend=T)

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Keduanya secara intuitif menyajikan keberangkatan dari frekuensi yang diharapkan ... Defaultnya adalah model kemandirian timbal balik , tetapi dapat diubah (misalnya menjadi independensi bersama jika ada variabel respons yang jelas) melalui expectedargumen.

Lihat juga:

Landroni
sumber