Чи може PCA працювати для булевих (бінарних) типів даних?


38

Я хочу зменшити розмірність систем вищого порядку і захопити більшу частину коваріації на переважно двовимірне або 1 мірне поле. Я розумію, що це можна зробити за допомогою аналізу основних компонентів, і я використовував PCA у багатьох сценаріях. Однак я ніколи не використовував його з булевими типами даних, і мені було цікаво, чи є сенс робити PCA з цим набором. Так, наприклад, зробіть вигляд, що у мене є якісні або описові показники, і я призначаю "1", якщо цей показник дійсний для цього виміру, і "0", якщо його немає (двійкові дані). Так, наприклад, зробіть вигляд, що ви намагаєтесь порівняти сім гномів у Білосніжці. Ми маємо:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy і Happy, і ви хочете влаштувати їх на основі якостей, і зробили так, як це:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

Так, наприклад, Bashful має непереносимість лактози і не перебуває у списку честі A. Це суто гіпотетична матриця, і моя реальна матриця матиме ще багато описових стовпців. Моє запитання: чи все-таки було б доречно робити PCA на цій матриці як засіб пошуку подібності між особами?


1
Це питання є (майже) дублікатом цього . PCA може бути здійснено на двійкових / булевих даних, але робити факторний аналіз (включаючи PCA "як би" це FA) на таких даних є проблематичним .
ttnphns

1
PCA на бінарних даних, таких як ваш ("присутній" проти "відсутній"), як правило, виконується без центрування змінних, оскільки немає підстав припускати походження (опорну точку), крім оригіналу 0. Отже, замість коваріації- або на основі кореляції PCA, ми дістаємось до SSCP- або косинусового . Такий аналіз дуже схожий, майже еквівалентний аналізу множинної кореспонденції (= аналіз однорідності), який може стати вибором для вас.
ttnphns

a means of finding the similarity between individuals. Але це завдання для кластерного аналізу, а не PCA.
ttnphns

Коротка відповідь: лінійна PCA (якщо вона розглядається як техніка зменшення розмірності, а не латентна змінна техніка як факторний аналіз) може використовуватися для масштабних (метричних) або двійкових даних. Однак звичайні (лінійні) PCA не повинні використовуватися з порядковими даними або номінальними даними - якщо ці дані певним чином не перетворюються на метричні чи двійкові (наприклад, манекени).
ttnphns

@ttnphns PCA можна розглядати як спосіб кластеризації змінних. Також PCA та кластерний аналіз можна використовувати послідовно
Антуан

Відповіді:


12

Я хотів би запропонувати вам відносно недавню методику автоматичного вилучення структури з категоричних змінних даних (сюди входить двійкове). Метод називається CorEx від Грега ван Стега з Університету Південної Каліфорнії. Ідея полягає у використанні поняття тотальної кореляції на основі ентропійних заходів. Він привабливий завдяки своїй простоті та відсутності налаштування великої кількості гіперпараметрів.

Документ про ієрархічні уявлення (найновіший, будується на вершині попередніх заходів). http://arxiv.org/pdf/1410.7404.pdf


1
@AlvinNunez Ласкаво просимо! Реалізацію python можна знайти на GitHub github.com/gregversteeg/CorEx Дійсно легко отримати свої дані та подивитися, що виходить.
Владислав Довгалеч

13

Ви також можете використовувати Аналіз множинної кореспонденції (MCA), який є розширенням аналізу основних компонентів, коли змінні, що підлягають аналізу, категоричні, а не кількісні (що стосується ваших бінарних змінних). Див., Наприклад, Husson et al. (2010) , або Абді та Валентин (2007) . Відмінним пакетом R для виконання MCA (та ієрархічної кластеризації на ПК) є FactoMineR .


1
Цікава відповідь, я скоріше з цим погоджуюся. Це буде великим надбанням для нього, якщо ви детальніше поясните явище inflation of the feature spaceта чому воно виникне в PCA, а не в MCA.
ttnphns

Я неправильно зрозумів inflation of the feature spaceявище. Здається, це вступає в силу при переході з CA до MCA, але це не притаманне питання PCA. Я буду видаляти свою відповідь, коли ви прочитали цей коментар. Дякую, що змусили мене це зрозуміти.
Антуан

Я не думаю, що вам доведеться видаляти відповідь. Для мене MCA - це один з правильних виборів, і ваша відповідь гарна.
ttnphns

Відповідь я додав, тому що думаю, що MCA тут може бути корисним, але я зняв дискусію про інфляцію простору функцій, оскільки це, здається, не було актуальним
Антуан

Чим результат MCA на бінарних даних відрізнятиметься від результату PCoA з вимірюванням відстані, що підходить для двійкових даних, таких як Жакард або простого зіставлення?
emudrak

9

Якщо ви вважаєте PCA як дослідницьку техніку, щоб дати вам спосіб візуалізувати взаємозв'язки між змінними (і, на мою думку, це єдиний спосіб подумати над цим), то так, немає ніякої причини, чому ви не можете ввести бінарне змінні. Наприклад, ось біплот ваших даних

введіть тут опис зображення

Це здається досить корисним. Наприклад, ви можете бачити, що Doc і Bashful дуже схожі; що HR є на відміну від трьох інших змінних; Сонний і Sneezy дуже відрізняються і т.д.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.