Будет ли PCA работать для логических (двоичных) типов данных?


38

Я хочу уменьшить размерность систем более высокого порядка и захватить большую часть ковариации предпочтительно в двухмерном или одномерном поле. Я понимаю, что это можно сделать с помощью анализа основных компонентов, и я использовал PCA во многих сценариях. Однако я никогда не использовал его с логическими типами данных, и мне было интересно, имеет ли смысл делать PCA с этим набором. Например, представьте, что у меня есть качественные или описательные метрики, и я назначаю «1», если эта метрика действительна для этого измерения, и «0», если это не так (двоичные данные). Например, представьте, что вы пытаетесь сравнить Семь Гномов в Белоснежке. У нас есть:

Док, Дурман, Застенчивый, Сердитый, Чихающий, Сонный и Счастливый, и вы хотите расположить их по качествам, и сделали так:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

Так, например, Bashful не переносит лактозу и не входит в список почестей. Это чисто гипотетическая матрица, и моя реальная матрица будет иметь гораздо больше описательных столбцов. Мой вопрос заключается в том, будет ли по-прежнему целесообразно использовать 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 с мерой расстояния, подходящей для двоичных данных, таких как Jaccard или простого сопоставления?
Emudrak

9

Если вы считаете PCA исследовательским методом, который дает вам способ визуализировать отношения между переменными (и, на мой взгляд, это единственный способ думать об этом), то да, нет никаких причин, по которым вы не можете поместить в двоичный файл переменные. Например, вот список ваших данных

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

Это кажется достаточно полезным. Например, вы можете видеть, что Док и Bashful очень похожи; что ЧСС в отличие от трех других переменных; Сонные и чихающие очень разные и т. Д.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.