공분산 행렬이 양의 명확하지 않은 경우 요인 분석을 수행하는 방법은 무엇입니까?


11

33 개의 변수 (열)로 설명되는 717 개의 관측치 (행)로 구성된 데이터 세트가 있습니다. 모든 변수는 z- 점수로 데이터를 표준화합니다. 두 변수가 선형 적으로 종속되지 않습니다 ( ). 또한 분산이 매우 낮은 ( 미만 ) 모든 변수를 제거했습니다 . 아래 그림은 해당 상관 매트릭스를 보여줍니다 (절대 값).아르 자형=10.1

factoranMatlab에서 다음과 같이 요인 분석을 실행하려고 할 때 :

[Loadings1,specVar1,T,stats] = factoran(Z2,1);

다음과 같은 오류가 발생합니다.

The data X must have a covariance matrix that is positive definite.

문제가 어디 있는지 말씀해 주시겠습니까? 사용 된 변수 간의 상호 의존성이 낮기 때문입니까? 또한 어떻게해야합니까?


내 상관 관계 매트릭스 :

여기에 이미지 설명을 입력하십시오


3
나는 이것이 상호 의존성낮다 는 점에서 문제 라고 생각합니다 . 아마도 그들 사이에 선형 적으로 의존하는 일부 변수가있을 수 있으며, 이로 인해 공분산 행렬이 반정의됩니다 (즉, 일부 고유 값이 있음).
usεr11852

3
질문을 마무리하기 위해 투표를하는 사람들에게 : 왜 샘플 공분산 행렬의 양의 유한성에 대한 질문 이 주제 에서 벗어난 것입니까? 사용자는 요인 분석의 표준 응용 프로그램이 작동하지 않는 이유에 대해 우려하고 있습니다. 원하는 경우 추가 정보를 요청하십시오!
usεr11852

2
표본 공분산 행렬의 고유 값을 계산하고 제시 할 수 있습니까? (예. eig(cov(Z2))). 나는 그들 중 일부가 매우 작은 것으로 의심합니다.
usεr11852

3
나는 @ usεr11852에 동의합니다.이 질문은 주제를 벗어난 것으로 잘못 닫혔습니다 (직접 닫으려고 투표했습니다). 프로그래밍 질문처럼 보였지만 실제로는 완벽하게 주제가 있고 합리적인 질문입니다. 나는 그것을 편집하고 다시 열기로 투표했다. OP는 사라진 것 같습니다.
amoeba

3
Matlab 커뮤니티가 도울 수없는이 질문에 통계적 내용이있을 수 있다고 주장합니다. Z2행렬을 어떻게 계산 합니까? 데이터에 결 측값이있는 경우 데이터의 다른 서브 샘플을 사용하여 해당 행렬의 다른 상관 관계를 계산할 때 쌍별 삭제로 인해 행렬이 복구 불가능해질 수 있습니다.
StasK

답변:


1

=1,
=(λ1000λ2λ00000)
0

0

λ+1,λ+2,...=1015.
~=~1,
~=(λ1000λ2λ10150001015)

,

[Q,D] = eig(C)

~

~


0

행렬에 숫자 문제가있을 수 있습니다. 실제로 양의 한정이 될 수 있지만 수치 계산에서는 그렇지 않습니다.

이 경우 가장 일반적인 해결책은 모든 대각선 요소에 매우 낮은 값 (예 : 1.E-10)을 추가하는 것입니다. 이렇게해도 문제가 해결되지 않으면이 값을 점진적으로 늘리십시오.


대각선 항목은 이미 지배적 인 것처럼 보입니다. 이것이 도움이 될 것이라고 생각하십니까?
Jonas

나는 8 번째와 10 번째 항목에 대해 걱정합니다. 일부 항목이 선형 적으로 종속적이라면이 두 항목이어야합니다. 실제 고유 분해 계산에 대해서는 충분히 알지 못하지만이 솔루션은 효과가 있다고 생각합니다. 대각선에 1e-10을 추가해도 선형 종속성에 대해서는별로 영향을 미치지 않지만 숫자로 필요한 것을 추가하여 고유 값의 계산은 고정되어있다 (즉, 0 고유 값 없음). 그러나 내 솔루션이 작동하지 않으면 매우 우아합니다.
Romain Reboulleau

-2

FA는 데이터가 가우시안 일 때 가장 잘 작동하므로 가우시안과 유사한 데이터를 가지기위한 일부 전처리 방법을 시도 할 수 있습니다.


이 답변에 당황합니다. 상관 관계가없는 데이터의 FA를 수행하는 데 어떤 의미가 있습니까?
ttnphns

@ttnphns 당신이 옳다고 생각합니다! 데코레이션 데이터에 FA를 적용하는 것은 의미가 없습니다! 내 제안은 특정 종류의 FA에서 나온 것인데, PCA는 FA를 적용 할 데이터에서 벡터 표현을 만드는 사전 처리에 적용했습니다. 원래 데이터는 일반적으로 벡터 표현으로 변환되기 전에 PCA에 의해 투영됩니다. FA는 PCA 투영 데이터가 아닌 벡터 표현에 적용됩니다. 내 잘못이야! 답변을 업데이트하겠습니다. FA 모델이 수렴하지 않으면 확률 론적 PCA가 FA처럼 작동 할 수도 있습니다. 동의하지 않습니까?
PickleRick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.