Apakah PCA berfungsi untuk tipe data boolean (binary)?

38

Saya ingin mengurangi dimensi sistem orde tinggi dan menangkap sebagian besar kovarian pada bidang 2 dimensi atau 1 dimensi yang lebih disukai. Saya mengerti ini bisa dilakukan melalui analisis komponen utama, dan saya telah menggunakan PCA dalam banyak skenario. Namun, saya belum pernah menggunakannya dengan tipe data boolean, dan saya bertanya-tanya apakah itu berarti melakukan PCA dengan set ini. Jadi misalnya, berpura-pura saya memiliki metrik kualitatif atau deskriptif, dan saya menetapkan "1" jika metrik itu valid untuk dimensi itu, dan "0" jika tidak (data biner). Jadi misalnya, berpura-puralah Anda mencoba membandingkan Tujuh Kurcaci di Putri Salju. Kita punya:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy and Happy, dan Anda ingin mengaturnya berdasarkan kualitas, dan melakukannya seperti:

(L.SebuahctHaise sayantHailerSebuahntSEBUAH HHainHair RHaillSEBUAHthletsayacWeSebuahlthyDHaic1011DHaihaley0000BSebuahshfkamul1011Grkamumhaly1111Sneezy0110Sleehaly1000HSebuahhalhaly1100)

Jadi misalnya Bashful tidak toleran laktosa dan bukan pada daftar kehormatan. Ini murni matriks hipotetis, dan matriks saya yang sebenarnya akan memiliki lebih banyak kolom deskriptif. Pertanyaan saya adalah, apakah masih pantas untuk melakukan PCA pada matriks ini sebagai sarana untuk menemukan kesamaan antara individu?

Alvin Nunez
sumber
1
Pertanyaan ini hampir merupakan duplikat dari pertanyaan itu . PCA dapat dilakukan pada data biner / boolean, tetapi melakukan analisis faktor (termasuk PCA "seolah-olah" itu FA) pada data tersebut bermasalah .
ttnphns
1
PCA pada data biner seperti milik Anda ("sekarang" vs "tidak ada") biasanya akan dilakukan tanpa memusatkan variabel karena tidak ada alasan untuk menyarankan asal (titik referensi) selain yang asli 0. Jadi, alih-alih kovarians- atau PCA berbasis korelasi kami tiba di SSCP- atau berbasis cosinus . Analisis tersebut sangat mirip, hampir setara dengan analisis Korespondensi Berganda (= Analisis Homogenitas) yang bisa menjadi pilihan untuk Anda.
ttnphns
a means of finding the similarity between individuals. Tetapi tugas ini adalah untuk analisis Cluster, bukan PCA.
ttnphns
Jawaban singkat: PCA linier (jika diambil sebagai teknik reduksi dimensionalitas dan bukan teknik variabel laten sebagai analisis faktor) dapat digunakan untuk data skala (metrik) atau biner. PCA biasa (linier) tidak boleh digunakan, dengan data ordinal atau data nominal - kecuali jika data ini diubah menjadi metrik atau biner (misalnya boneka) dengan cara tertentu.
ttnphns
@ttnphns PCA dapat dilihat sebagai cara untuk mengelompokkan variabel. Juga, PCA dan analisis kluster dapat digunakan secara berurutan
Antoine

Jawaban:

12

Saya ingin menyarankan Anda teknik yang relatif baru untuk ekstraksi struktur otomatis dari data variabel kategori (ini termasuk biner). Metode ini disebut CorEx dari Greg van Steeg dari University of Southern California. Idenya adalah untuk menggunakan gagasan Korelasi Total berdasarkan langkah-langkah entropi. Ini menarik karena kesederhanaannya dan tidak ada penyetelan sejumlah besar hyperparameter.

Makalah tentang representasi hirarkis (yang terbaru, dibangun di atas langkah-langkah sebelumnya). http://arxiv.org/pdf/1410.7404.pdf

Vladislavs Dovgalecs
sumber
1
@AlvinNunez Sama-sama! Implementasi python dapat ditemukan di GitHub github.com/gregversteeg/CorEx Sangat mudah untuk mendapatkan data Anda dan melihat apa yang keluar.
Vladislavs Dovgalecs
13

Anda juga dapat menggunakan Analisis Korespondensi Berganda (MCA), yang merupakan perpanjangan dari analisis komponen utama ketika variabel yang dianalisis adalah kategorikal dan bukan kuantitatif (yang merupakan kasus di sini dengan variabel biner Anda). Lihat misalnya Husson et al. (2010) , atau Abdi dan Valentin (2007) . Paket R yang sangat baik untuk melakukan MCA (dan pengelompokan hierarkis pada PC) adalah FactoMineR .

Antoine
sumber
1
Jawaban yang menarik, saya lebih suka setuju dengan itu. Ini akan menjadi aset besar jika Anda menjelaskan lebih rinci fenomena inflation of the feature spacedan mengapa hal itu terjadi di PCA dan bukan di MCA.
ttnphns
Saya salah paham tentang inflation of the feature spacefenomena itu. Tampaknya mulai berlaku saat beralih dari CA ke MCA, tetapi bukan merupakan masalah yang melekat pada PCA. Saya akan menghapus jawaban saya ketika Anda telah membaca komentar ini. Terima kasih telah membuat saya menyadarinya.
Antoine
Saya tidak berpikir Anda harus menghapus jawabannya. MCA adalah salah satu pilihan yang tepat, bagi saya, dan jawaban Anda baik-baik saja.
ttnphns
Saya menambahkan kembali jawabannya karena saya pikir MCA mungkin bisa membantu di sini, tetapi saya menghapus diskusi tentang inflasi ruang fitur karena sepertinya tidak relevan
Antoine
Bagaimana hasil MCA pada data biner berbeda dari hasil PCoA dengan ukuran jarak yang sesuai untuk data biner seperti Jaccard atau pencocokan sederhana?
emudrak
9

Jika Anda menganggap PCA sebagai teknik eksplorasi untuk memberi Anda cara memvisualisasikan hubungan antar variabel (dan menurut saya ini adalah satu-satunya cara untuk memikirkannya) maka ya, tidak ada alasan mengapa Anda tidak dapat memasukkan biner variabel. Sebagai contoh, ini adalah biplot dari data Anda

masukkan deskripsi gambar di sini

Tampaknya cukup bermanfaat. Misalnya, Anda dapat melihat bahwa Doc dan Bashful sangat mirip; bahwa SDM agak tidak seperti ketiga variabel lainnya; Sleepy dan Sneezy sangat berbeda, dll.

Flounderer
sumber