Bagaimana cara memvisualisasikan dimensi sebenarnya dari data?

8

Saya memiliki dataset yang nominal 16 dimensi. Saya memiliki sekitar 100 sampel dalam satu kasus dan sekitar 20.000 lainnya. Berdasarkan berbagai analisis eksplorasi yang telah saya lakukan menggunakan PCA dan peta panas, saya yakin bahwa dimensi sebenarnya (yaitu jumlah dimensi yang diperlukan untuk menangkap sebagian besar "sinyal") adalah sekitar 4. Saya ingin membuat slide untuk efek itu untuk presentasi. "Kearifan konvensional" tentang data ini, yang ingin saya buktikan, adalah bahwa dimensi sejati adalah satu atau dua.

Apa visualisasi yang bagus dan sederhana untuk menunjukkan dimensi sebenarnya dari suatu dataset? Sebaiknya dimengerti oleh orang-orang yang memiliki latar belakang statistik tetapi bukan ahli statistik "nyata".

dsimcha
sumber
1
Tolong jelaskan "benar".
kardinal
@ cardinal: Ini pasti subjektif. Saya ingin jumlah dimensi yang menangkap "sebagian besar" varians.
dsimcha
1
tidak apa-apa. Aku hanya ingin tahu dengan pasti untuk apa kamu pergi. Ada beberapa contoh menarik dalam statistik multivariat di mana, misalnya, jika Anda ingin menemukan jumlah istilah terbaik untuk disimpan dalam pengertian kuadrat-terkecil untuk PCA, Anda harus memilih peringkat yang lebih kecil daripada peringkat sebenarnya, yaitu peringkat aktual struktur yang mendasari dari mana data dihasilkan.
kardinal
Saya akan menemukan kasus khusus di mana menggunakan 2-dimensi mengarah ke jawaban yang buruk, sementara menggunakan 4-dimensi mengarah ke jawaban yang bagus. Ini akan membantu Anda menyampaikan maksud Anda - orang memahami contoh. Tambahkan ini ke beberapa hal yang lebih umum yang diberikan di bawah ini - "eblow" di plot scree, dll.
probabilityislogic
"contoh" akan menjadi kasus-kasus yang memiliki skor besar pada komponen ketiga dan seterusnya
probabilityislogic

Jawaban:

6

Pendekatan standar adalah dengan melakukan PCA dan kemudian menunjukkan plot scree, yang Anda harus bisa mengeluarkannya dari perangkat lunak apa pun yang Anda pilih. Sedikit bermain-main dan Anda bisa membuatnya lebih bisa ditafsirkan untuk audiens khusus Anda jika perlu. Kadang-kadang mereka bisa meyakinkan, tetapi seringkali mereka ambigu dan selalu ada ruang untuk berdalih tentang bagaimana membacanya sehingga plot scree mungkin (edit: tidak!) Menjadi ideal. Layak untuk dilihat.

JMS
sumber
3
@ JMS, (+1) terutama untuk catatan kehati-hatian pada plot scree. Saya akan menyebut mereka "standar", tetapi juga "ide yang buruk" (secara umum). Berikut adalah kisah peringatan dan juga cara untuk memilih peringkat lebih aman, terutama jika MSE adalah metrik Anda. Ini juga memberikan contoh, jika saya ingat, di mana peringkat yang benar adalah yang salah untuk memilih untuk meminimalkan MSE.
kardinal
@ cardinal (+1) Terima kasih untuk tautan ke artikel Owen & Perry.
chl
Saya rupanya menemukan kembali plot scree pada satu titik tetapi tidak menyadari bahwa mereka disebut apa-apa. Terima kasih telah mengingatkan saya pada mereka dan memberi tahu saya bahwa mereka "standar". Karena tujuan saya adalah untuk menghasilkan visualisasi yang bagus, sederhana, standar, dan cukup bagus menang atas rumit tetapi lebih optimal.
dsimcha
2
@dsimcha, saya melakukan pencarian Google cepat dan tampaknya ada paket R yang mengimplementasikan pendekatan dalam tautan yang saya berikan. Ada sebuah makalah yang bagus dari sekitar 20 tahun yang lalu (mungkin 30), saya percaya pada The American Statistician , yang dengan jelas menunjukkan kelemahan inferensi menggunakan plot scree "standar". Saya akan melihat apakah saya dapat mengingat judul dan akan mengirim tautan atau referensi. Sementara standar, tetapi (cukup) cacat, adalah pendekatan yang menarik, terutama di bawah batasan waktu, saya akan dengan hati-hati memperingatkan terhadap pola pikir seperti itu. Bersulang.
kardinal
1
@ JMS Ada sebuah makalah oleh Zwick & Velicer (1986) yang berpendapat untuk menggunakan analisis paralel (resampling nilai eigen untuk menguji apakah nilai yang diamati lebih besar dari yang diharapkan secara kebetulan) atau kriteria MAP mereka atas plot scree atau aturan root-one. Dalam simulasi mereka, dua metode pertama sangat mengungguli yang lain (misalnya akurasi 92% vs 22%) dalam mengidentifikasi # komponen yang sebenarnya. Paket R psychmengimplementasikan keduanya dengan disertai grafik scree-like (lihat fa.parallel()dan VSS()). Makalah adalah "Perbandingan lima aturan untuk menentukan jumlah komponen yang akan dipertahankan."
terkunci
4

Salah satu cara untuk memvisualisasikan ini adalah sebagai berikut:

  1. Lakukan PCA pada data.
  2. Membiarkan V menjadi ruang vektor yang direntang oleh dua vektor komponen utama pertama, dan biarkan V jadilah pelengkap.
  3. Dekomposisi setiap vektor xi di data Anda ditetapkan sebagai jumlah elemen di V ditambah istilah sisa (yang ada di V). Tulis ini sebagaixi=vi+ci. (ini harus mudah menggunakan hasil PCA.)
  4. Buat sebaran sebaran ||ci|| melawan ||vi||.

Jika datanya benar 2 Dimensi, plot harus terlihat seperti garis datar.

Di Matlab (menghindari semua sepatu yang dilempar):

lat_d = 2;   %the latent dimension of the generating process
vis_d = 16;  %manifest dimension
n = 10000;   %number of samples
x = randn(n,lat_d) * randn(lat_d,vis_d) + 0.1 * randn(n,vis_d); %add some noise
xmu = mean(x,1);
xc = bsxfun(@minus,x,xmu);    %Matlab syntax for element recycling: ugly, weird.
[U,S,V] = svd(xc);  %this will be slow;
prev = U(:,1:2) * S(1:2,1:2);
prec = U(:,3:end) * S(3:end,3:end);
normv = sqrt(sum(prev .^2,2));
normc = sqrt(sum(prec .^2,2));
scatter(normv,normc);
axis equal;  %to illlustrate the differences in scaling, make axis 'square'

Ini menghasilkan plot pencar berikut:

sebar plot yang dibuat oleh kode

Jika Anda mengubah lat_dke 4, garisnya kurang rata.

shabbychef
sumber
@shabbychef, ini tampaknya mengandaikan bahwa (a) struktur sebenarnya adalah manifold linier dan (b) arah varians tinggi adalah yang penting.
kardinal
1
@ cardinal Anda mungkin mengacaukan asumsi dan efek. Kelengkungan dalam manifold akan dimanifestasikan sebagai kelengkungan di plot sebar ini dan besarnya kelengkungan akan terungkap dalam besarnya variasi vertikal dalam plot. Akibatnya, shabbychef melihat data berada di sekitar lingkungan tubular dari ruang linear berdimensi rendah. Itu tidak memberlakukan batasan apa pun pada bentuk data.
whuber
@shabbyshef +1 untuk ide dekomposisi, dan tentu saja menyebutkan sepatu :)
mpiktas
@whuber, @shabbychef, saya mungkin agak tergesa-gesa dengan komentar awal saya, terutama karena saya jauh dari komputer pada saat itu. Saya pikir saya juga awalnya salah membaca deskripsi lusuh dan saya tidak bisa melihat plot. Ini merupakan cara yang bagus untuk menambah plot pasangan standar.
kardinal
1
@ cardinal Berikut adalah contoh 4D menggeneralisasi silinder Anda: i.imgur.com/9eF8N.png . Modelnya adalah(s,t)(cos(2πt),sin(2πt),2s/5,t2)ditambah kesalahan normal (0, .05) ditambahkan secara independen ke keempat komponen. Gambar adalah matriks scatterplot dengan 300 iid drawss dan tiid uniform (0,1), dipesan dengan menurunkan varians. Proporsi total varian adalah 49,2%, 46,5%, 2,9%, 1,4%. Dua baris bawah mengemulasi plot @ shabby. Mereka mendemonstrasikan sifat 2D yang dekat dari data sambil mengungkapkan nonlinier kecil yang saya masukkan ke dalamnya. Apakah ini yang Anda pikirkan?
whuber
0

Saya telah melakukan hal serupa menggunakan PROC Varclus di SAS. Ide dasarnya adalah untuk menghasilkan solusi 4 cluster, pilih variabel berkorelasi tertinggi dengan masing-masing cluster, dan kemudian untuk menunjukkan bahwa solusi 4 cluster ini menjelaskan lebih banyak variasi daripada solusi dua cluster. Untuk solusi 2 kluster Anda dapat menggunakan Varclus atau 2 Komponen Utama yang pertama, tetapi saya suka Varclus karena semuanya dijelaskan melalui variabel dan bukan komponen. Ada varclus di R, tapi saya tidak yakin apakah itu melakukan hal yang sama.

-Ralph Winters

Ralph Winters
sumber