Независимый компонентный анализ должен быть в состоянии предоставить вам хорошее решение. Он способен разлагать неортогональные компоненты (как в вашем случае), предполагая, что ваши измерения являются результатом смеси статистически независимых переменных.
В Интернете есть много хороших учебных пособий и несколько бесплатных реализаций, которые можно попробовать (например, в Scikit или MDP ).
Когда ICA не работает?
Как и другие алгоритмы, ICA является оптимальным, когда применяются предположения, для которых он был получен. В частности,
- источники статистически независимы
- независимые компоненты негауссовы
- смешивающая матрица обратима
ICA возвращает оценку матрицы смешения и независимых компонентов.
Если ваши источники гауссовские, то ICA не может найти компоненты. Представьте, что у вас есть два независимых компонента: и , которые равны . Тогда
x1x2N(0,I)
p(x1,x2)=p(x1)p(x2)=12πexp(−x21+x222)=12πexp−||x||22
где, является нормой двумерного вектора. Если они смешаны с ортогональным преобразованием (например, вращением ), мы имеем,, что означает, что распределение вероятности не изменяется при вращении. Следовательно, ICA не может найти матрицу смешения по данным.R | | R x | | = | | х | |||.||R||Rx||=||x||