Предположим, у меня есть набор точечных данных 2D, и я хочу определить направления всех локальных максимумов дисперсии в данных, например:
PCA не помогает в этой ситуации, так как это ортогональное разложение и, следовательно, не может обнаружить обе линии, которые я указал синим цветом, скорее его вывод может выглядеть так, как показано зелеными линиями.
Пожалуйста, порекомендуйте любую технику, которая подходит для этой цели. Спасибо.
Ответы:
Независимый компонентный анализ должен быть в состоянии предоставить вам хорошее решение. Он способен разлагать неортогональные компоненты (как в вашем случае), предполагая, что ваши измерения являются результатом смеси статистически независимых переменных.
В Интернете есть много хороших учебных пособий и несколько бесплатных реализаций, которые можно попробовать (например, в Scikit или MDP ).
Когда ICA не работает?
Как и другие алгоритмы, ICA является оптимальным, когда применяются предположения, для которых он был получен. В частности,
ICA возвращает оценку матрицы смешения и независимых компонентов.
Если ваши источники гауссовские, то ICA не может найти компоненты. Представьте, что у вас есть два независимых компонента: и , которые равны . Тогдаx1 x2 N(0,I)
где, является нормой двумерного вектора. Если они смешаны с ортогональным преобразованием (например, вращением ), мы имеем,, что означает, что распределение вероятности не изменяется при вращении. Следовательно, ICA не может найти матрицу смешения по данным.R | | R x | | = | | х | |||.|| R ||Rx||=||x||
источник
Существуют процедуры, подобные PCA, для так называемого «косого» случая. В программном обеспечении stat, таком как SPSS (и, возможно, также в его бесплатном клоне), PSPP можно найти эквивалентно называемые «наклонные вращения», а их экземпляры называют «oblimin», «promax» и что-то еще. Если я правильно понимаю, программа пытается «прямоугольнить» факторные нагрузки путем пересчета их координат в ортогональном, евклидовом пространстве (как, например, показано на вашем рисунке) в координаты пространства, оси которого неортогональны, возможно, с некоторая техника известна из множественной регрессии. Более того, я думаю, что это работает только итеративно и использует одну или несколько степеней свободы при статистическом тестировании модели.
сравнивающую PCA и наклонного вращения эталонным-руководство по SPSS (на IBM-сайте) для косых-вращений содержит даже формулы для вычисления.
[Обновить] (Upps, извините, только что проверил, что PSPP не обеспечивает «вращения» косого типа)
источник
У меня нет большого опыта с этим, но Vidal, Ma и Sastry Generalized PCA были созданы для очень похожей проблемы.
источник
Другие ответы уже дали некоторые полезные советы о методах, которые вы можете рассмотреть, но никто, кажется, не указал, что ваше предположение неверно: линии, показанные синим на вашей схематической картине, НЕ являются локальными максимумами дисперсии.
Чтобы увидеть это, обратите внимание, что дисперсия в направлении задается как , где обозначает ковариационную матрицу данные. Чтобы найти локальные максимумы, нам нужно положить производную этого выражения в ноль. Поскольку ограничен длиной единицы, нам нужно добавить термин где - множитель Лагранжа. Дифференцируя, мы получаем следующее уравнение:w ⊤ Σ w Σ w λ ( w ⊤ w - 1 ) λ Σ w - λ w = 0.w w⊤Σw Σ w λ(w⊤w−1) λ
Это означает, что должен быть собственным вектором ковариационной матрицы, то есть одним из главных векторов. Другими словами, PCA дает вам все локальные максимумы, других нет.w
источник