표본 공분산 행렬이 되돌릴 수없는 경우 어떻게해야합니까?


12

주어진 d- 차원 벡터 클러스터에 대해 다변량 정규 분포를 가정하고 샘플 d- 차원 평균 벡터와 샘플 공분산 행렬을 계산하는 몇 가지 클러스터링 기술을 연구하고 있습니다.

그런 다음 보이지 않는 새로운 d- 차원 벡터가이 클러스터에 속하는지 결정하려고 할 때이 측정을 통해 거리를 확인합니다.

(Xiμ^X)σ^X1(Xiμ^X)>B0.95(p2,p2)

공분산 행렬 의 역을 계산해야합니다 . 그러나 일부 표본이 주어지면 공분산 행렬이 되돌릴 수 있음을 보장 할 수 없습니다. 그렇지 않은 경우 어떻게해야합니까?σ^X

감사


매트릭스를 뒤집을 수 없게 만드는 원인에 따라 다릅니다. 가능한 원인은 (a) 공분산 행렬을 계산하는 데 사용한 표본이 너무 작습니다. (b) 표본의 크기가 충분하지만 구성원이 연속 분포에서 추출되지 않아 표본의 일부 열 / 행이 반복 될 수 있습니다. .
user603

샘플 크기가 작아 졌다고 생각합니다
Aly

@ Anony-Mousse 이제 최소한 차원만큼의 샘플을 사용하고 있는지 확인했습니다. 그렇지 않으면 행렬의 순위가 떨어집니다. 지금까지 문제는 없지만 표본 공분산을 사용하면 돌이킬 수 없을 것이라고 생각합니까?
Aly

1
항상 뒤집을 수없는 이유는 무엇 입니까? 단일 관측치에서 평균은 해당 관측치와 같으므로 표본 공분산은 0 행렬이며 반전되지 않습니다. 나는 거꾸로 된 행렬이 풀 랭크 여야한다고 생각하고, 샘플 수가> = 차원 인 경우에만 풀 랭크가 될 것이라고 생각한다MMT
Korone

1
@corone은 그것을 엄격하게 만듭니다
user603

답변:


14

샘플 차원이 벡터 공간 차원보다 작 으면 특이 행렬이 발생할 수 있습니다. 보다 적은 샘플이있는 경우 ( 가 차원 인 경우)이 상황은 반드시 발생합니다. 샘플은 최대 차원 초평면에 걸쳐 있습니다. 이러한 작은 표본이 주어지면 직교 공간의 분산을 계산할 수 없습니다.d k + 1 dd+1dk+1d

이것이 리터럴 PCA를 사용 하지 않는 대신 단일 값 분해 를 수행 하는 것이 일반적인 이유 인데, 이는 행렬 의 의사 역수 를 계산하는 데 사용할 수 있습니다 . 행렬이 뒤집을 수없는 경우, 의사 역수가 그 역수가됩니다.

그러나 돌이킬 수없는 행렬을 보는 경우 벡터가 직교 공간의 분산을 알지 못하기 때문에 벡터가 클러스터 평면에있는 초평면 바깥에 있으면 클러스터와의 거리가 의미가 없습니다. SVD는 의사 역수를 계산할 수 있지만 "분산"은 여전히 ​​데이터에 의해 결정되지 않습니다.

이 경우 아마도 전체 차원 축소를 먼저 수행했을 것입니다. 표본 크기를 늘리면 실제로 중복되지 않는 치수가있는 경우에만 도움이됩니다. 분포에서 분포하는 표본 수에 관계없이 행렬은 항상 비가 역적이며 편차를 판단 할 수 없습니다 표준 편차 (0)에 대한x yy=x엑스와이

또한 공분산 행렬을 계산하는 방법에 따라 치명적인 취소로 인해 수치 문제가 발생할 수 있습니다. 가장 간단한 해결 방법은 항상 데이터를 먼저 중심에두고 평균을 0으로 만드는 것입니다.


답장을 보내서 죄송하지만 같은 문제로 작업하고 있습니다. 역공 분산 행렬이 필요한 Mahalanobis 거리를 통해 군집 거리를 비교하고 있습니다. 그러나 제 경우에는 같은 오류가 발생합니다. 그래서 나는 SingularValueDecomposition을 시도했지만 이번에는 모든 거리가 1.4입니다 : D 나는 그것을 알아낼 수 없습니다
MonsterMMORPG
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.