Saya membaca makalah "Star Coordinates: A Visualization Multidimensional Technique dengan Uniform Treatment of Dimensions" dan mencoba untuk memplot data saya.
Katakanlah saya memiliki , titik data lima dimensi, dan titik dihitung dengan rumus yang dijelaskan dalam makalah.
Ide dasar Star Coordinates adalah untuk mengatur sumbu koordinat pada lingkaran pada bidang dua dimensi dengan sudut (awalnya) yang sama antara sumbu dengan asal pada pusat lingkaran (Gambar 1). Awalnya, semua sumbu memiliki panjang yang sama. Poin data diskalakan ke panjang sumbu, dengan pemetaan minimum ke titik asal dan maksimum ke ujung sumbu lainnya. Vektor satuan dihitung sesuai. ...
Ini hanyalah perpanjangan dari plot 2d dan 3d tipikal ke dimensi yang lebih tinggi dengan normalisasi.
Saya kesulitan memahami ide itu. Bagaimana saya merencanakannya? Masalah utamanya adalah saya tidak bisa memahami formula di koran.
Jawaban:
"Koordinat bintang" dimaksudkan untuk dimodifikasi secara interaktif, dimulai dengan default. Jawaban ini menunjukkan cara membuat default; modifikasi interaktif adalah detail pemrograman.
Data dianggap sebagai kumpulan vektor di . Ini pertama dinormalisasi secara terpisah dalam setiap koordinat, secara linear mengubah data ke dalam interval . Ini dilakukan, tentu saja, dengan terlebih dahulu mengurangi minimum dari setiap elemen dan membaginya dengan rentang. Panggil data yang dinormalisasi .xj=(xj1,xj2,…,xjd) Rd {xji,j=1,2,…} [0,1] zj
Dasar adalah himpunan vektor memiliki tunggal dalam Tempat . Dalam hal dasar ini, . "Proyeksi koordinat bintang" memilih satu set vektor satuan yang berbeda di dan memetakan ke . Ini mendefinisikan transformasi linear dari ke . Peta ini diterapkan keRd ei=(0,0,…,0,1,0,0,…,0) 1 ith zj=zj1e1+zj2e2+⋯+zjded {ui,i=1,2,…,d} R2 ei ui Rd R2 zj --it hanyalah perkalian matriks - untuk membuat titik awan dua dimensi, digambarkan sebagai sebar scatter. Vektor satuan digambar dan diberi label untuk referensi.ui
(Versi interaktif akan memungkinkan pengguna untuk memutar masing-masing individual.)ui
Untuk menggambarkan hal ini, berikut adalah
R
penerapan yang diterapkan pada dataset karakteristik kinerja mobil. Pertama mari kita dapatkan datanya:Langkah awal adalah menormalkan data:
Sebagai default, mari kita buat vektor satuan spasi sama untuk . Ini menentukan proyeksi yang diterapkan pada :d ui z
prj
Itu saja - kita semua siap untuk merencanakan. Ini diinisialisasi untuk memberikan ruang bagi titik data, sumbu koordinat, dan labelnya:
Ini plotnya sendiri, dengan satu baris untuk setiap elemen: sumbu, label, dan poin:
Untuk memahami plot ini, mungkin membantu untuk membandingkannya dengan metode tradisional, matriks sebar:
Analisis komponen utama berbasis korelasi (PCA) menciptakan hasil yang hampir sama.
Output untuk perintah pertama adalah
Sebagian besar varians diperhitungkan oleh komponen pertama (1,9 vs 0,83 dan kurang). Memuat ke komponen ini dalam ukuran yang hampir sama, seperti yang ditunjukkan oleh output ke perintah kedua:
Ini menunjukkan - dalam kasus ini - bahwa plot koordinat bintang default sedang diproyeksikan di sepanjang komponen utama pertama dan karenanya menunjukkan, pada dasarnya, beberapa kombinasi dua dimensi dari PC kedua hingga kelima. Nilainya dibandingkan dengan hasil PCA (atau analisis faktor terkait) karena itu dipertanyakan; manfaat utama mungkin dalam interaktivitas yang diusulkan.
Meskipunui
R
biplot default terlihat mengerikan, ini untuk perbandingan. Untuk membuatnya cocok dengan plot koordinat bintang dengan lebih baik, Anda harus mengubah agar setuju dengan urutan sumbu yang ditunjukkan pada biplot ini.sumber
Selain jawaban yang bagus dari @whuber, saya ingin menambahkan beberapa opsi lain untuk menampilkan data multidimensi (multivarian) dalam "koordinat bintang", demi cakupan yang lebih komprehensif. Jawaban saya berfokus pada melakukan visualisasi data multivarian semacam itu di
R
.Saya akan mulai dengan mengatakan bahwa plot bintang (dalam varian spider dan radar ) didukung oleh paket
R
dasargraphics
melalui fungsistars()
: http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/ stars.html . Berikutnya dalamR
"rantai makanan", tentu saja,ggplot2
paket, yang AFAIK saat ini tidak memiliki fungsi spesifik untuk jenis plot ini (tolong perbaiki saya, jika saya tidak mengetahui hal ini). Namun, implementasi dasar oleh Hadley Wickham, menggunakancoord_polar()
, dapat ditemukan di sini . Selain itu,ggsubplot
paket berbasis ggplot2 menawarkan fungsi yang relevangeom_star()
: http://www.inside-r.org/packages/cran/ggsubplot/docs/geom_star .Paket lain yang berisi fungsionalitas merencanakan bintang meliputi:
psych
- fungsispider()
danradar()
- http://personality-project.org/r/html/spider.html ,plotrix
- functionradial.plot()
- http://onertipaday.blogspot.com/2009/01/radar -chart.html ) dan, mungkin, beberapa yang lain.Selain hal-hal di atas, perlu dicatat bahwa dimungkinkan untuk membuat plot bintang di perangkat lunak yang diaktifkan Web , yang dengan mudah berinteraksi dengannya
R
. Sebagai contoh, berikut adalah variasi plot bintangplotly
, di mana ini disebut bagan area polar: https://plot.ly/r/polar-chart/#Polar-Area-Chart . Berbicara tentangR
dan visualisasi data yang diaktifkan Web, tidak mungkin untuk tidak menyebutkan perpustakaan D3.js yang hebat, yang juga dapat diakses dariR
. Berikut adalah cara membuat plot bintang yang tampak hebat, menggunakan D3.js: http://www.visualcinnamon.com/2013/09/making-d3-radar-chart-look-bit-better.html .sumber