Что делать, если выборочная ковариационная матрица не обратима?

12

Я работаю над некоторыми методами кластеризации, где для данного кластера векторов d-размерности я предполагаю многомерное нормальное распределение и вычисляю выборочный средний вектор d-размерности и выборочную ковариационную матрицу.

Затем, пытаясь решить, принадлежит ли новый, невидимый, d-мерный вектор этому кластеру, я проверяю его расстояние с помощью этой меры:

(Xiμ^X)σ^X1(Xiμ^X)>B0.95(p2,p2)

Что требует от меня, чтобы вычислить обратную матрицу ковариации . Но учитывая некоторые примеры, я не могу гарантировать, что ковариационная матрица будет обратимой, что мне делать, если это не так?σ^X

Спасибо

Aly
источник
это зависит от того, что делает матрицу необратимой. Возможными причинами могут быть (а) выборка, которую вы использовали для вычисления ковариационной матрицы, слишком мала (б) ваша выборка имеет достаточный размер, но ее элемент не взят из непрерывного распределения, так что некоторые столбцы / строки вашей выборки повторяются ,
user603
Я думаю , что размер выборки становится малым
Aly
@ Anony-Mousse Я убедился, что теперь я использую как минимум столько же сэмплов, сколько размеров, иначе матрица будет иметь недостаток ранга. Пока проблем нет, но я думаю, что с выборочной ковариацией она может быть необратимой?
Aly
1
Почему всегда должен быть обратимым? При одном наблюдении среднее значение равно этому наблюдению, поэтому ковариация образца является нулевой матрицей, которая не инвертируется. Я думаю, что матрица должна иметь полный ранг, чтобы быть инвертированной, и она будет иметь полный ранг, только если число выборок> = размерностьMMT
Korone
1
@corone делает это строгим>
user603

Ответы:

14

Если размерность ваших выборок меньше размерности векторного пространства, могут возникнуть сингулярные матрицы. Если у вас меньше выборок, чем (когда - ваша размерность), такая ситуация даже обязательно возникнет: выборок охватывает не более мерной гиперплоскости. Учитывая такую ​​небольшую выборку, вы, очевидно, не можете вычислить дисперсию в ортогональном пространстве.d+1dk+1d

Вот почему обычно не использовать буквальный PCA, а вместо этого выполнять разложение по сингулярным значениям , которое можно использовать для вычисления псевдообратной матрицы. Если матрица обратима, псевдообратная обратная будет.

Однако, если вы видите необратимые матрицы, есть вероятность, что ваше расстояние от кластера будет бессмысленным, если вектор находится за пределами гиперплоскости, которую повторяет кластер, потому что вы не знаете дисперсию в ортогональном пространстве (вы можете думать о эта дисперсия равна 0!) SVD может вычислить псевдообратное значение, но «дисперсии» все равно не будут определяться вашими данными.

В этом случае вам, вероятно, следовало сначала сделать глобальное уменьшение размерности. Увеличение размера выборки поможет только тогда, когда у вас действительно есть не избыточные измерения: независимо от того, сколько выборок вы берете из распределений с , матрица всегда будет необратимой, и вы не сможете судить об отклонении относительно стандартного отклонения (которое равно 0).y=xxy

Кроме того, в зависимости от того, как вы вычисляете ковариационную матрицу, вы можете столкнуться с числовыми проблемами из-за катастрофической отмены. Самый простой обходной путь - сначала всегда центрировать данные, чтобы получить нулевое среднее.

ВЫЙТИ - Anony-Mousse
источник
извините за ответ, но я работаю над тем же вопросом. Я сравниваю расстояния кластеризации через расстояние Махаланобиса, для которого требуется обратная ковариационная матрица. Однако в моем случае я получаю ту же ошибку. поэтому я попробовал SingularValueDecomposition, но на этот раз все расстояния равны 1,4: D я не могу понять это
MonsterMMORPG