Що робити, коли матриця коваріації зразка не обернена?


12

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

Тоді, намагаючись вирішити, чи належить новий, невидимий, d-мірний вектор до цього кластеру, я перевіряю його відстань за допомогою цієї міри:

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

Що вимагає від мене обчислити зворотну матрицю коваріації . Але, враховуючи деякі зразки, я не можу гарантувати, що матриця коваріації буде незворотною, що робити в тому випадку, якщо це не так?σ^X

Дякую


це залежить від того, що призводить до того, що матриця не може бути зворотна. Можливими причинами можуть бути: (а) зразок, який ви використовували для обчислення матриці коваріації, є занадто малим (б) ваш зразок має достатній розмір, але його член не витягується з безперервного розподілу, щоб частина стовпця / рядка вашого зразка повторювалася .
user603

Я думаю , що розмір вибірки стає малим
Aly

@ Anonymous-Mousse Я переконався, що зараз використовую щонайменше стільки зразків, скільки розміри, інакше матриця буде дефіцитною. Поки немає проблем, але я думаю, що з коваріацією вибірки це може бути незворотним?
Алі

1
Чому завжди повинен бути зворотним? При одному спостереженні середнє значення дорівнює цьому спостереженню, тому коваріація вибірки - це нульова матриця, яка не буде інвертуватися. Я думаю, що матриця повинна бути повноцінної, щоб її перевернути, і вона буде повною, якщо кількість вибірок> = розмірністьMMT
Короне

1
@corone робить це суворим>
user603

Відповіді:


14

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

Ось чому зазвичай не використовувати буквальний PCA, а замість цього виконувати сингулярне розкладання значення , яке можна використовувати для обчислення псевдоінверсії матриці. Якщо матриця є зворотною, псевдоінверс буде оберненим.

Однак, якщо ви бачите неперевернуті матриці, велика ймовірність, що ваша відстань від кластера буде безглуздою, якщо вектор знаходиться поза гіперпланом, кластер відкидається, оскільки ви не знаєте дисперсії в ортогональному просторі (ви можете думати про ця дисперсія як 0!) SVD може обчислити псевдоінверс, але "відхилення" все одно не визначатимуться вашими даними.

У цьому випадку вам, мабуть, слід було б спочатку зробити глобальне зменшення розмірності. Збільшення розміру вибірки допоможе лише тоді, коли ви насправді маєте не надмірні розміри: незалежно від того, скільки зразків ви отримаєте з розподілів з , матриця завжди буде незворотною, і ви не зможете судити про відхилення щодо стандартного відхилення (яке дорівнює 0).y=xxy

Крім того, залежно від способу обчислення матриці коваріації, ви можете зіткнутися з числовими проблемами через катастрофічне скасування. Найпростіший спосіб вирішення - це завжди спочатку центрировать дані, щоб отримати нульове значення.


вибачте за відповіді тут, але я працюю над тим же питанням. Я порівнюю відстані кластеризації через відстань махаланобіса, що вимагає зворотної матриці коваріації. однак у моєму випадку я отримую таку ж помилку. тому я спробував SingularValueDecomposition, але цього разу всі відстані рівні 1,4: D я не можу це зрозуміти
MonsterMMORPG
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.