У меня есть набор данных, который содержит как непрерывные, так и категориальные данные. Я анализирую с помощью PCA и задаюсь вопросом, можно ли включать категориальные переменные в качестве части анализа. Насколько я понимаю, PCA может применяться только к непрерывным переменным. Это правильно? Если его нельзя использовать для категориальных данных, какие существуют альтернативы для их анализа?
categorical-data
pca
correspondence-analysis
mixed-type-data
Николина Ицитович
источник
источник
Ответы:
Хотя PCA, примененный к двоичным данным, даст результаты, сравнимые с результатами, полученными в результате анализа множественной корреспонденции (факторные оценки и собственные значения линейно связаны), существуют более подходящие методы для работы со смешанными типами данных, а именно многофакторный анализ для смешанных данных, доступных в FactoMineR пакет R (
AFDM()
). Если ваши переменные можно рассматривать как структурированные подмножества описательных атрибутов, то также возможен многофакторный анализ (MFA()
).Задача с категориальными переменными состоит в том, чтобы найти подходящий способ представления расстояний между переменными категориями и индивидами в факториальном пространстве. Чтобы преодолеть эту проблему, вы можете искать нелинейное преобразование каждой переменной - будь то номинальное, порядковое, полиномиальное или числовое - с оптимальным масштабированием. Это хорошо описано в методах Gifi для оптимального масштабирования в R: homals пакета и реализация доступна в соответствующих R пакет homals .
источник
Although a PCA applied on binary data would yield results comparable to those obtained from a Multiple Correspondence Analysis
можем ли мы преобразовать номинальную категориальную переменную (скажем, с N кардинальностью) в набор (N-1) фиктивных двоичных файлов и затем выполнить PCA на этих данных? (Я так понимаю, есть более подходящие приемы)Поиск в Google «pca для дискретных переменных» дает хороший обзор С. Коленикова (@StasK) и Г. Анджелеса. Чтобы добавить к ответу chl, компьютерный анализ - это действительно анализ собственных векторов ковариационной матрицы. Так что проблема в том, как рассчитать «правильную» ковариационную матрицу. Одним из подходов является использование полихорической корреляции .
источник
hetcor()
из пакета polycor ). При условии, что матрица ВК - SDP, она должна выполнять свою работу - в основном в духе факторного анализа. Номинальные переменные могут быть фиктивно закодированы.Я бы посоветовал взглянуть на Linting & Kooij, 2012 " Нелинейный анализ основных компонентов с помощью CATPCA: учебное пособие ", Журнал оценки личности ; 94 (1).
источник
Я еще не получил привилегию комментировать чью-то публикацию, поэтому я добавляю свой комментарий как отдельный ответ, поэтому, пожалуйста, потерпите меня.
Продолжая то, что прокомментировал @Martin F, недавно я наткнулся на нелинейные PCA. Я рассматривал нелинейные PCA как возможную альтернативу, когда непрерывная переменная приближается к распределению порядковой переменной, поскольку данные становятся более разреженными (это происходит в генетике много раз, когда малая частота аллеля переменной становится все ниже и ниже, и вы остаетесь с очень небольшим числом отсчетов, при котором вы не можете реально оправдать распределение непрерывной переменной, и вам необходимо ослабить допущения распределения, сделав ее либо порядковой, либо категориальной переменной.) Нелинейный PCA может справиться с обоими этими условиями, но после обсуждение со статистическими маэстро на генетическом факультете, Консенсусный призыв заключался в том, что Нелинейные СПС используются не очень часто, и поведение этих СПС еще не было тщательно протестировано (возможно, они имели в виду только область генетики, поэтому, пожалуйста, примите это с недоверием). Действительно, это увлекательный вариант. Я надеюсь, что я добавил 2cents (к счастью, уместно) к обсуждению.
источник
Существует недавно разработанный подход к таким проблемам: обобщенные модели низкого ранга .
Одна из работ, в которой используется этот метод, даже называется PCA на фрейме данных .
PCA можно представить так:
Для x матрицым Мn m M
найти матрицу x и матрицу x (это неявно кодирует ограничение ранга e) так, чтобык Й к м У кn k X^ k m Y^ k
«Обобщенный» от GLRM означает изменение к чему-то еще и добавление члена регуляризации.∥⋅∥2F
источник
PCAmixdata
Пакет #Rstats :Пример из виньетки показывает результаты как для непрерывного, так и для категориального вывода
источник