Ich habe eine Matrix, wobei die Anzahl der Gene und die Anzahl der Patienten ist. Jeder, der mit solchen Daten gearbeitet hat, weiß, dass immer größer als . Bei Verwendung der Merkmalsauswahl habe ich auf eine vernünftigere Zahl gebracht, jedoch ist immer noch größer als .p n p n p p n
Ich möchte die Ähnlichkeit der Patienten anhand ihrer genetischen Profile berechnen. Ich könnte den euklidischen Abstand verwenden, jedoch scheint Mahalanobis angemessener zu sein, da er die Korrelation zwischen den Variablen erklärt. Das Problem (wie in diesem Beitrag erwähnt ) ist, dass der Mahalanobis-Abstand, insbesondere die Kovarianzmatrix, nicht funktioniert, wenn . Wenn ich Mahalanobis Distanz in R laufe, erhalte ich folgenden Fehler:
Error in solve.default(cov, ...) : system is computationally
singular: reciprocal condition number = 2.81408e-21
Bisher habe ich PCA verwendet, um dieses Problem zu lösen. Statt Gene zu verwenden, verwende ich Komponenten. Dies scheint es mir zu ermöglichen, die Mahalanobis-Entfernung zu berechnen. 5 Komponenten machen etwa 80% der Varianz aus, also ist jetzt .
Meine Fragen sind: Kann ich PCA verwenden, um den Mahalanobis-Abstand zwischen Patienten sinnvoll zu ermitteln, oder ist dies unangemessen? Gibt es alternative Abstandsmetriken, die funktionieren, wenn und es gibt auch eine große Korrelation zwischen den Variablen?n
PCA
funktionieren, bin ich gespannt, ob für die Ausgänge eine Abstandsmetrik verwendet werden kann.
PCA
könnte die variablen Korrelationen aufbrechen, es sei denn, Sie verwenden so etwas wie eine schräge Drehung. Ich bin mir auch nicht sicher, wie sich die VarianzverteilungPCA
auf den Mahalanobis-Abstand zwischen ähnlichen Patienten auswirkt.