Co zrobić, gdy macierz kowariancji próbki nie jest odwracalna?

12

Pracuję nad niektórymi technikami grupowania, w których dla danej grupy wektorów wymiaru d zakładam wielowymiarowy rozkład normalny i obliczam przykładowy średni wektor d-wymiarowy i macierz kowariancji próbki.

Potem, gdy stara się zdecydować, czy nowy, niewidzialny, d-wymiarowy wektor należy do tego klastra ja sprawdzając jego odległość za pośrednictwem tego środka:

(Xja-μ^X)σ^X-1(Xja-μ^X)>b0,95(p2),-p2))

Który wymaga ode mnie, aby obliczyć odwrotność macierzy kowariancji σ X . Ale biorąc pod uwagę niektóre próbki, nie mogę zagwarantować, że macierz kowariancji będzie odwracalna, co mam zrobić, jeśli tak nie jest?σ^X

Dzięki

Aly
źródło
zależy to od tego, co powoduje, że matryca nie jest odwracalna. Możliwymi przyczynami mogą być (a) próbka użyta do obliczenia macierzy kowariancji jest zbyt mała (b) próbka ma wystarczającą wielkość, ale jej element nie jest pobierany z ciągłego rozkładu, więc część kolumny / wiersza próbki powtarza się .
user603
Myślę, że próbka staje się
zbyt
@ Anony-Mousse Upewniłem się, że teraz używam co najmniej tyle próbek, ile wymiarów, w przeciwnym razie macierz będzie miała niedobór rangi. Jak dotąd żadnych problemów, ale myślę, że przy kowariancji próbki może być nieodwracalna?
Aly,
1
Dlaczego zawsze powinien być odwracalny? Przy pojedynczej obserwacji średnia jest równa tej obserwacji, więc kowariancja próbki jest macierzą zerową, która się nie odwróci. Myślę, że matryca musi mieć pełną rangę, aby mogła zostać odwrócona, i będzie miała pełną rangę tylko wtedy, gdy liczba próbek> = wymiarM.M.T.
Korone
1
@ corone sprawia, że ​​jest to ścisłe>
user603

Odpowiedzi:

14

Jeśli wymiar próbek jest mniejszy niż wymiar przestrzeni wektorowej, mogą powstać macierze osobliwe. Jeśli masz mniej próbek niż (gdy d jest twoją wymiarowością), taka sytuacja koniecznie się pojawi: k + 1 próbek obejmuje co najwyżej d płaszczyznę wymiaru. Biorąc pod uwagę tak małą próbkę, oczywiście nie można obliczyć wariancji w przestrzeni ortogonalnej.re+1rek+1re

Dlatego często nie używa się dosłownego PCA, lecz zamiast tego wykonuje dekompozycję wartości pojedynczej , której można użyć do obliczenia pseudo - odwrotności macierzy. Jeśli macierz jest odwracalna, pseudoinwersja będzie odwrotnością.

Jeśli jednak widzisz macierze nieodwracalne, istnieje prawdopodobieństwo, że odległość od gromady będzie bez znaczenia, jeśli wektor znajduje się poza hiperpłaszczyzną, gromada powtarza, ponieważ nie znasz wariancji w przestrzeni ortogonalnej (możesz pomyśleć o ta wariancja jako 0!) SVD może obliczyć pseudoinwersję, ale „wariancje” nadal nie będą determinowane przez twoje dane.

y=xx-y

Ponadto, w zależności od sposobu obliczenia macierzy kowariancji, możesz napotykać problemy numeryczne z powodu katastrofalnego anulowania. Najprostszym obejściem jest zawsze najpierw wyśrodkować dane, aby uzyskać średnią zero.

Ma ZAKOŃCZENIE - Anony-Mus
źródło
Przepraszamy za odpowiedź tutaj, ale pracuję nad tym samym problemem. Porównuję odległości grupowania za pomocą odległości Mahalanobisa, która wymaga odwrotnej macierzy kowariancji. jednak w moim przypadku pojawia się ten sam błąd. więc spróbowałem SingularValueDecomposition, ale tym razem wszystkie odległości są równe 1.4: D Nie mogę tego
rozgryźć