나는 행렬을 가지고 있는데, 여기서 는 유전자의 수이고 은 환자의 수입니다. 그러한 데이터로 작업 한 사람은 가 항상 보다 크다는 것을 알고 있습니다. 기능 선택을 사용하여 를 더 합리적인 수로 줄 였지만 는 여전히 보다 큽니다 .
나는 그들의 유전자 프로필을 기반으로 환자의 유사성을 계산하고 싶습니다; 유클리드 거리를 사용할 수는 있지만 변수 간의 상관 관계를 설명하기 때문에 Mahalanobis가 더 적합 해 보입니다. 문제는 (이 게시물 에서 언급했듯이 ) 일 때 Mahalanobis 거리, 특히 공분산 행렬이 작동하지 않는다는 것 입니다. R에서 Mahalanobis 거리를 실행할 때 얻는 오류는 다음과 같습니다.
Error in solve.default(cov, ...) : system is computationally
singular: reciprocal condition number = 2.81408e-21
지금까지이 문제를 해결하기 위해 PCA를 사용했고 유전자를 사용하는 대신 구성 요소를 사용했는데 이것은 Mahalanobis 거리를 계산할 수있는 것으로 보입니다. 5 개의 성분은 분산의 약 80 %를 나타내므로 이제 입니다.
내 질문은 : PCA를 사용하여 환자 사이의 마할 라 노비스 거리를 의미있게 얻을 수 있습니까, 아니면 부적절합니까? 일 때 작동하는 대체 거리 측정법이 있으며 변수 간에 많은 상관 관계가 있습니까?
PCA
작동 방식과 같은 가변 감소 기법을 고려할 때 출력에 거리 측정법을 사용할 수 있는지 궁금합니다.
PCA
당신이 경사 회전 같은 것을 사용하지 않는 한, 변수의 상관 관계를 깰 수 있습니다. 또한 분산 배분PCA
이 유사한 환자들 사이의 마할 라 노비스 거리에 어떤 영향을 미치는지 잘 모르겠습니다 .