Cara yang baik untuk menampilkan banyak data secara grafis

15

Saya sedang mengerjakan proyek yang melibatkan 14 variabel dan 345.000 pengamatan untuk data perumahan (hal-hal seperti tahun dibangun, rekaman persegi, harga jual, wilayah tempat tinggal, dll). Saya prihatin dengan mencoba menemukan teknik grafis yang baik dan perpustakaan R yang berisi teknik merencanakan yang bagus.

Saya sudah melihat apa yang di ggplot dan kisi akan bekerja dengan baik, dan saya berpikir untuk membuat plot biola untuk beberapa variabel numerik saya.

Paket apa yang akan direkomendasikan orang untuk menampilkan sejumlah besar variabel numerik atau tipe-diketik dengan cara yang jelas, dipoles, dan yang paling penting, ringkas?

Christopher Aden
sumber
"jelas, dipoles, dan yang paling penting, cara ringkas" Kedengarannya seperti ggplot2 bagi saya.
Brandon Bertelsen
1
Saya tidak hanya mencari pustaka R, tetapi juga jenis grafik tertentu. Pengetahuan saya tentang grafik terbatas pada sebar, kotak, qq, histogram, biola, estimasi kepadatan kernel, dll. Grafik yang sedikit lebih kabur yang dapat mengungkapkan lebih banyak tentang data daripada yang fantastis.
Christopher Aden
2
koordinat paralel terdengar seperti yang lain lagi. Metode pengurangan dimensi mungkin juga bermanfaat.
Tal Galili

Jawaban:

13

"Grafik" terbaik begitu jelas hingga belum ada yang menyebutkannya: buat peta. Data perumahan tergantung secara mendasar pada lokasi spasial (menurut gergaji tua tentang real estat), sehingga hal pertama yang harus dilakukan adalah membuat peta terperinci yang jelas dari setiap variabel. Untuk melakukan ini dengan baik dengan sepertiga dari satu juta poin benar-benar membutuhkan GIS berkekuatan industri, yang dapat mempersingkat proses. Setelah itu masuk akal untuk melanjutkan dan membuat kemungkinan plot dan boxplots untuk mengeksplorasi distribusi univariat, dan untuk merencanakan matriks sebar dan berkeliaran di boxplate skematik, dll, untuk mengeksplorasi dependensi - tetapi peta akan segera menyarankan apa yang harus dijelajahi, bagaimana memodelkan hubungan data, dan cara memecah data secara geografis menjadi himpunan bagian yang berarti.

whuber
sumber
Ide yang hebat! Saya sudah memiliki garis lintang dan garis bujur dari semua titik data, jadi tugas seperti itu akan relatif sederhana. Saya berpikir perpustakaan peta akan menjadi cara yang baik untuk pergi, kecuali ada sesuatu yang lebih baik.
Christopher Aden
2
@Christopher Anda juga dapat melakukan ini dengan ggplot2(terutama jika Anda tidak perlu menggambar batas negara), had.co.nz/ggplot2/coord_map.html . Jika tidak, maps, gmapslebih baik. Ada juga GeoXpdan antarmuka R ke GRASS. BTW, Mondrian memiliki plugin untuk data geografis :)
chl
Menentukan jawaban terbaik bisa jadi sulit ketika ada beberapa saran bagus, tetapi saya merasa ini adalah arah yang benar, mengingat "singkat" dalam pikiran. Saya akan mencoba ggplot2, dan melihat peta, GeoXp, dan Mondrian. Terima kasih atas gagasan membuat grafik secara spasial!
Christopher Aden
Aku sudah sukses baik dengan lattice's levelplotdan contourplot. Paket fieldsmemiliki beberapa fitur bagus, termasuk quiltplotyang bagus jika data Anda tidak sepenuhnya di grid. Ini juga memiliki fungsi spline pelat tipis yang bagus Tpsuntuk memuluskan data non-grid ke jaringan. Mengenai perangkat lunak SIG khusus, entah bagaimana GRASS tidak pernah masuk akal bagi saya, saya lebih suka QGIS.
Wayne
6

Saya akan merekomendasikan melihat GGobi , yang juga memiliki antarmuka R, setidaknya untuk tujuan eksplorasi. Ini memiliki sejumlah tampilan grafis yang sangat berguna untuk berurusan dengan sejumlah besar pengamatan dan variabel dan untuk menghubungkannya bersama-sama. Anda mungkin ingin memulai dengan menonton beberapa video di bawah bagian "Tonton demo" di halaman Learn GGobi .

Memperbarui

Tautan ke alat Hadley Wickham untuk GGobi, seperti yang disarankan oleh chl dalam komentar:

  • JelaskanDisplay "paket R yang menyediakan cara untuk membuat kembali grafis ggobi di R"
  • clusterfly "Jelajahi hasil pengelompokan dalam dimensi tinggi"
  • rggobi "Paket R yang menyediakan antarmuka yang mudah dengan GGobi"
ars
sumber
1
@ars Mari kita tambahkan alat R Hadley untuk meningkatkan pengalaman GGobi, misalnya DescribeDisplaydan clusterfly.
chl
Hai ars, seperti yang saya tulis pada jawaban saya - pengalaman saya dengan ggobi adalah bahwa ia tidak menangani dataset besar dengan baik. Apakah Anda memiliki pengalaman lain dengan itu?
Tal Galili
@Tal Masalahnya berasal dari tidak mengandalkan mesin terbang untuk tampilan layar / rendering, yang umum untuk grafis dasar R. Ini dibahas pada konferensi DSC terbaru ( j.mp/bpOhBH ). Sebenarnya, ada proyek yang sedang berlangsung dengan Qt sebagai backend, dan port baru GGobi, untuk meningkatkan tampilan interaktif set data besar.
chl
1
@Tal: Pengalaman saya adalah sangat lambat saat menyegarkan / mengecat ulang tampilan, misalnya saat menambahkan variabel atau menyeret untuk mengatur ulang tampilan di PCP. Namun, ini dapat digunakan meskipun tidak seinteraktif yang diiklankan dengan data besar. @ chl: Itu benar-benar baik untuk diketahui, terima kasih!
ars
1
@ars @Tal Berikut ini tautan pada antarmuka Qt untuk R ( j.mp/d1AJp7 ) dan GGobi ( j.mp/cUOvfp ). Lihat juga repositori Hadley's Github!
chl
6

Saya merasa Anda benar-benar mengajukan dua pertanyaan: 1) jenis visualisasi apa yang digunakan dan 2) paket R apa yang bisa menghasilkannya.

Dalam hal jenis grafik apa yang akan digunakan, ada banyak, dan itu tergantung pada kebutuhan Anda (misalnya: jenis variabel - numerik, faktor, geografis dll, dan jenis koneksi yang Anda tertarik untuk ditampilkan):

  • Jika Anda memiliki banyak variabel numerik, Anda mungkin ingin menggunakan matriks sebar plot (lihat di sini )
  • Jika Anda memiliki banyak variabel faktor, Anda mungkin ingin menggunakan matriks sebar plot untuk faktor (lihat di sini )
  • Anda juga bisa pergi dengan melakukan beberapa koordinat Paralel ada yang beberapa cara untuk melakukannya di R.
  • Untuk rentang yang lebih luas dari fasilitas grafis di R, lihatlah pada tampilan tugas grafik .

Sekarang tentang bagaimana melakukannya. Satu masalah dengan banyak titik data adalah waktu sampai plot dibuat. ggplot2, iplots, ggobi tidak terlalu bagus untuk terlalu banyak titik data (setidaknya dari pengalaman saya). Dalam hal ini Anda mungkin ingin fokus pada fasilitas grafis berbasis R, atau sampel data Anda dan pada itu untuk menggunakan semua alat lainnya. Atau Anda dapat berharap bahwa orang-orang yang mengembangkan iplots extreme (atau Acinonyx ) akan mencapai tahap rilis lanjutan.

Tal Galili
sumber
Terima kasih atas rflowcyttautannya dan Acinonyx.
chl
BTW, rflowcyttelah ditinggalkan dengan rilis Bioconductor baru-baru ini, sekarang direkomendasikan untuk digunakan flowViz. Pokoknya, keduanya mengandalkan lattice.
chl
Jawaban yang sangat teliti, Tal! Waktu pembuatan plot seharusnya tidak menjadi masalah besar. Saya telah melakukan sebagian besar grafik saya dengan paket dasar, dan masalah membuat grafik terlihat lebih bagus adalah ketika saya memutuskan untuk menggunakan grafik untuk kertas. Saya telah mempertimbangkan untuk menggunakan matriks sebar untuk variabel numerik, tetapi karena banyak dari mereka adalah unit yang berbeda (beberapa dalam dolar, yang lain dalam sqft), satu-satunya informasi berharga yang saya dapatkan adalah tren umum, tetapi dengan ~ 8 numerik variabel, SPM 8x8 agak berantakan.
Christopher Aden
3

Mondrian menyediakan fitur-fitur interaktif dan menangani set data yang cukup besar (meskipun di Jawa).

Paraview termasuk 2D / 3D yaitu. fitur.

chl
sumber
Terima kasih untuk dua perpustakaan baru. Konflik utama saya dengan keduanya adalah bahwa saya mengirimkan laporan saya melalui salinan kertas, sehingga grafik interaktif mungkin tidak sepenuhnya digunakan. Grafik Mondrian terlihat cukup rumit. Saya akan melihatnya-lihat.
Christopher Aden
@Christopher Untuk Mondrian, Anda memiliki versi "setara" R yang iplotsdikutip oleh @Tal. Tentang Paraview, Anda memiliki opsi untuk menyimpan tangkapan layar yaitu Anda. DescribeDisplayadalah cara untuk mengekspor visualisasi dinamis dari GGobi, cran.r-project.org/web/packages/DescribeDisplay/index.html .
chl
-3

Saya ingin menyampaikan kepada Anda, Koordinat Paralel: Geometri Multidimensi Visual dan Penerapannya , yang berisi terobosan dan aplikasi terbaru di lapangan.

Buku itu dipuji oleh Stephen Hawking antara lain. Permukaan dijelaskan (menggunakan dualitas) oleh vektor normal pada titik-titiknya. Ini berisi aplikasi untuk Kontrol Lalu Lintas Udara (Penghindaran Tabrakan Otomatis - 3 Paten AS), Penambangan Data Multivarian (pada dataset nyata, beberapa dengan ratusan variabel), Optimalisasi Multi-Tujuan, Kontrol Proses, Perawatan Intensif Layar Pintar, Keamanan, Visualisasi Jaringan dan baru-baru ini Besar Data.

Alfred Inselberg
sumber
5
Hai Alfred, terima kasih telah bergabung dengan situs ini, ini terlihat sebagai promosi kecil. Mungkin Anda memiliki contoh yang mirip dengan dataset OP (14 variabel dan 345.000 pengamatan) yang dapat Anda berikan gambar dan jelaskan / tunjukkan bagaimana koordinat paralel dapat bermanfaat? Banyak grafik koordinat paralel paralel yang telah saya lihat dengan banyak pengamatan cenderung terlihat seperti spageti di atas piring, saya kira Anda memiliki wawasan yang lebih baik bagaimana memahami data N sebesar itu.
Andy W
Hai Andy, saya tidak punya contoh dengan banyak pengamatan. In
Alfred Inselberg
Hai Andy, saya tidak punya contoh dengan banyak pengamatan. Interaktivitas sangat penting untuk eksplorasi data. Saya bekerja pada dataset dengan sekitar 800 variabel dan 10.000 pengamatan di jaringan telepon seluler untuk menemukan kegagalan "misterius". Dengan menggunakan pengklasifikasi secara stag dan dengan interaktif, 11 variabel yang bertanggung jawab ditemukan dan menelusurinya ke belakang dalam waktu ketika aktivitas yang tidak biasa dalam jaringan terdeteksi 3-4 sebelum memperhatikan kegagalan.
Alfred Inselberg