Eu tenho uma matriz , onde é o número de genes é o número de pacientes. Qualquer pessoa que trabalhou com esses dados sabe que é sempre maior que . Utilizando a seleção de características, obtive até um número mais razoável, no entanto, ainda é maior que .p n p n p p n
Eu gostaria de calcular a semelhança dos pacientes com base em seus perfis genéticos; Eu poderia usar a distância euclidiana, no entanto Mahalanobis parece mais apropriado, pois explica a correlação entre as variáveis. O problema (como observado neste post ) é que a distância de Mahalanobis, especificamente a matriz de covariância, não funciona quando . Quando corro a distância de Mahalanobis em R, o erro que recebo é:
Error in solve.default(cov, ...) : system is computationally
singular: reciprocal condition number = 2.81408e-21
Até agora, para tentar resolver isso, usei o PCA e, em vez de usar genes, uso componentes e isso me permite calcular a distância de Mahalanobis; 5 componentes representam cerca de 80% da variação, então agora .
Minhas perguntas são: Posso usar o PCA para obter uma distância significativa de Mahalanobis entre os pacientes ou é inapropriado? Existem métricas de distância alternativas que funcionam quando também há muita correlação entre as variáveis?n
PCA
funcionam, estou curioso para saber se alguma métrica de distância pode ser usada nas saídas.
PCA
pode quebrar as correlações das variáveis, a menos que você use algo como uma rotação oblíqua. Também não tenho certeza de como a distribuição da variaçãoPCA
afetará a distância de Mahalanobis entre pacientes semelhantes.