양수가 아닌 공분산 행렬은 내 데이터에 대해 무엇을 알려줍니까?


21

여러 다변량 관측 값이 있으며 모든 변수에 대한 확률 밀도를 평가하려고합니다. 데이터가 정규 분포되어 있다고 가정합니다. 적은 수의 변수에서는 모든 것이 예상대로 작동하지만 더 큰 수로 이동하면 공분산 행렬이 양의 한정이 아닙니다.

Matlab의 문제를 다음과 같이 줄였습니다.

load raw_data.mat; % matrix number-of-values x number of variables
Sigma = cov(data);
[R,err] = cholcov(Sigma, 0); % Test for pos-def done in mvnpdf.

err> 0이면 Sigma는 양의 한정이 아닙니다.

실험 데이터를 더 높은 차원에서 평가하기 위해 할 수있는 일이 있습니까? 내 데이터에 유용한 정보가 있습니까?

나는이 분야의 초보자이기 때문에 분명한 것을 놓친 경우 사과드립니다.


고차원으로 표현하기에는 데이터가 너무 희소 한 것 같습니다. 이 데이터로 회귀 모델을 실행할 계획입니까?
Jonathan Thiele

답변:


30

공분산 행렬은 특이하기 때문에 양의 한정이 아닙니다. 즉, 변수 중 하나 이상이 다른 변수의 선형 조합으로 표현 될 수 있습니다. 하나 이상의 값을 다른 변수의 하위 집합에서 확인할 수 있으므로 모든 변수가 필요하지는 않습니다. 변수를 순차적으로 추가하고 각 단계에서 공분산 행렬을 확인하는 것이 좋습니다. 새로운 변수가 특이점을 만들면 그 변수를 삭제하고 다음 변수로 넘어갑니다. 결국에는 postive 명확한 공분산 행렬이있는 변수의 하위 집합이 있어야합니다.


19
+1. 또한 모든 공분산 행렬은 양의 정한 행렬이고 모든 양의 한정 행렬은 다변량 분포의 공분산 행렬 이라는 점에 주목할 가치가 있습니다. 따라서 "비 양성 유한 공분산 행렬"이라고 말하는 것은 약간의 옥시 모론입니다. OP는 실제로 샘플 공분산 행렬이 특이 적이라고 말한 것 같습니다. 이는 정확히 공선 성에서 (또는 말했듯이) 관찰 수가 변수 수보다 적을 때 발생할 수 있습니다 .
매크로

3
이 문제를 자동으로 해결하기 위해 일부 통계 소프트웨어가 유도 될 수 있습니다. 예를 들어, Stata의 regress명령은 일부가 공선 일 때 추가 변수를 자동으로 삭제합니다 (그리고 그 결과는 이러한 변수를 식별하고 나중에 사용하기 위해 비 공통 서브 세트를 표시하는 형식으로 저장할 수 있습니다). 그러나 복잡한 문제는 변수가 반드시 공선 형일 필요는 없지만 Cholesky 분해에서 부동 소수점 오류의 전파가 음의 고유 값 추정값을 생성하여 모든 실제 목적에 대해 변수를 공선으로 만들 수있을 정도로 가까울 수 있다는 것입니다.
whuber

1
@ whuber에는 유사한 기능이 R있습니다. 회귀 모델은 정확한 공선 성이있는 경우 선형 예측 변수에서 변수를 자동으로 삭제합니다.
매크로

2
@ whuber, 약간 해 키지 만 비슷한 트릭을 수행 할 수 있습니다. g선형 모형 인 경우 colnames(model.matrix(g))[-which(is.na(coef(g))==TRUE)][-1]정확히 동일 선형이 아닌 모형에 입력 한 예측 변수의 이름을 반환해야합니다. 이것은 어떤 계수가 제거 NA되었는지 (즉 R, 변수가 삭제되었음을 나타내는 방법 ) 확인하고 모델 행렬의 해당 열 이름을 찾아서 (절편 열 삭제) 수행합니다. 그건 그렇고, 공선 용어가 없으면 작동 which(is.na(coef(g))==TRUE)하지 않으므로 비어 있지 않은지 확인하는 if 문 이 필요합니다 :)
Macro

8
@Macro 모든 공분산 행렬은 양의 반 정밀도입니다. 이들이 단수 일 때, 행렬 A에 대한 모든 벡터 x에 대한 x'Ax> 0이 양의 한정이기 때문에 양의 한정이 아니다. 특이한 경우에 x'Ax = 0은 일부 x에 대해 발생합니다.
Michael R. Chernick

0

유효한 결과입니다. 공분산 행렬의 해당 성분에 대한 추정치는 0이며 이는 사실 일 수 있습니다. 계산이 어려울 수 있지만 R의 일부 알고리즘 (Matlab에 대해 모른다)이 이것을 처리 할 수 ​​있습니다. 나는 사람들이 왜 이것에 대해 화를 내는지 이해하지 못하고 더 교황 적 인 모델을 갖추기를 주장합니다.


-1

위에서 언급하지 않은 한 가지 점은 변수가 완벽하게 선형 적으로 관련되어 있지 않더라도 경험적 데이터에서 비 양성 유한 공분산 행렬을 계산할 수 있다는 것입니다. 데이터가 충분하지 않거나 (특히 쌍별 비교에서 고차원 공분산 행렬을 구성하려는 경우) 데이터가 다변량 정규 분포를 따르지 않는 경우 역설 관계가 생길 수 있습니다 변수들, 예컨대 cov (A, B)> 0; cov (A, C)> 0; cov (B, C) <0.

이 경우 이러한 기준을 충족하는 다변량 정규 분포가 없으므로 다변량 정규 PDF에 적합 할 수 없습니다. cov (A, B)> 0 및 cov (A, C)> 0은 반드시 cov (B, C )> 0.

즉, 양수가 아닌 확정 행렬이 항상 공선 변수를 포함하고있는 것은 아닙니다. 또한 선택한 파라 메트릭 구조에서 불가능한 관계를 모델링하려고 시도 할 수도 있습니다.


1
당신의 대답은 너무 많은 수준에서 잘못되었습니다. 어쨌든 대각선에 1이 있고 cov (1 차 및 2 차 성분)의 경우 1/2, cov (1 차 및 3 차 성분)의 경우 1/2, cov (2 차 및 3d 성분)의 -1/2 인 공분산 행렬을 고려하십시오. . 공분산 행렬의 고유 값은 약 0.15, 1.35, 1.50으로 두 번째 단락의 어설 션에 대한 반례를 제공합니다.
Mark L. Stone

@ MarkL.Stone, 당신은 두 번째 단락에 대해 맞습니다. 그러나 이것 중 일부가 모호하고 관대하게 해석 될 수 있는지 궁금합니다. 예를 들어, 단락 1에서 "충분한 데이터가 없다 ... 다발 쌍별 비교로부터 고차원 공분산 행렬을 구성하려고 시도하는 것"은 누락 된 데이터가 많고 쌍별 완전한 관측 값을 사용하는 것을 의미하는지 궁금하다. 공분산 행렬의 각 요소를 계산합니다.
gung-복원 Monica Monica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.