Mam macierz , gdzie to liczba genów, a to liczba pacjentów. Każdy, kto pracował z takimi danymi, wie, że jest zawsze większe niż . Korzystając z wyboru funkcji, zredukowałem do bardziej rozsądnej liczby, jednak jest nadal większe niż .
Chciałbym obliczyć podobieństwo pacjentów na podstawie ich profili genetycznych; Mógłbym użyć odległości euklidesowej, jednak Mahalanobis wydaje się bardziej odpowiedni, ponieważ uwzględnia korelację między zmiennymi. Problem (jak zauważono w tym poście ) polega na tym, że odległość Mahalanobisa, a konkretnie macierz kowariancji, nie działa, gdy . Gdy uruchamiam odległość Mahalanobisa w R, pojawia się błąd:
Error in solve.default(cov, ...) : system is computationally
singular: reciprocal condition number = 2.81408e-21
Do tej pory próbowałem rozwiązać ten problem, używałem PCA i zamiast genów, używam komponentów i wydaje mi się, że to pozwala mi obliczyć odległość Mahalanobisa; 5 składników reprezentuje około 80% wariancji, więc teraz .
Moje pytania brzmią: czy mogę użyć PCA, aby znacząco uzyskać odległość Mahalanobisa między pacjentami, czy jest to nieodpowiednie? Czy istnieją alternatywne miary odległości, które działają, gdy a także istnieje duża korelacja między zmiennymi ?
PCA
, jestem ciekawy, czy na wyjściach można zastosować jakąkolwiek miarę odległości.
PCA
Może pęknąć zmiennej korelacji, chyba użyć coś jak ukośnej rotacji. Nie jestem również pewien, w jaki sposób podział wariancjiPCA
wpłynie na odległość Mahalanobisa między podobnymi pacjentami.