상관 관계 또는 공분산에 대한 PCA?


153

상관 행렬과 공분산 행렬에서 주성분 분석 (PCA)을 수행하는 것의 주요 차이점은 무엇입니까? 그들은 같은 결과를 제공합니까?


2
답은 늦었지만 리옹 의 생물 정보학 부서 에서 다변량 데이터 분석에 대한 매우 유용한 자료가 있습니다. 이들은 R ade4 패키지 의 작성자가 제공 합니다. 그래도 프랑스어입니다.
chl

3
자세한 내용은 stats.stackexchange.com/questions/62677/…을 참조하십시오 .
whuber

답변:


130

변수 척도가 유사하면 공분산 행렬을 사용하는 경향이 있고 변수가 다른 척도에있을 때는 상관 행렬을 사용하는 경향이 있습니다.

상관 행렬을 사용하는 것은 각 변수 를 표준화 하는 것과 같습니다 (0 및 표준 편차 1을 의미). 일반적으로 표준화 여부에 관계없이 PCA는 다른 결과를 제공합니다. 특히 비늘이 다른 경우.

예를 들어이 R heptathlon데이터 세트를 살펴보십시오 . 일부 변수의 평균 값은 약 1.8 (높은 점프) 인 반면 다른 변수 (800m 실행)는 약 120입니다.

library(HSAUR)
heptathlon[,-8]      # look at heptathlon data (excluding 'score' variable)

출력 :

                   hurdles highjump  shot run200m longjump javelin run800m
Joyner-Kersee (USA)   12.69     1.86 15.80   22.56     7.27   45.66  128.51
John (GDR)            12.85     1.80 16.23   23.65     6.71   42.56  126.12
Behmer (GDR)          13.20     1.83 14.20   23.10     6.68   44.54  124.20
Sablovskaite (URS)    13.61     1.80 15.23   23.92     6.25   42.78  132.24
Choubenkova (URS)     13.51     1.74 14.76   23.93     6.32   47.46  127.90
...

이제 공분산과 상관에 대해 PCA를 수행해 보겠습니다.

# scale=T bases the PCA on the correlation matrix
hep.PC.cor = prcomp(heptathlon[,-8], scale=TRUE)
hep.PC.cov = prcomp(heptathlon[,-8], scale=FALSE)

biplot(hep.PC.cov)
biplot(hep.PC.cor)  

상관 또는 공분산에 대한 PCA

공분산에 그 PCA에 의해 지배주의 run800mjavelin: PC1이 거의 동일 run800m(및 설명 82% 분산의)을하고 PC2는 거의 동일하다 javelin(그들은 함께 설명 97% ). 상관 관계에 대한 PCA는 훨씬 더 유익 하며 데이터의 일부 구조와 변수 사이의 관계를 나타냅니다 (설명 된 차이는 64%71% 떨어짐 ).

공분산 또는 상관 행렬의 사용 여부에 관계없이 외부 개인 ( 데이터 세트의)은 특이 치입니다.


변수를 z- 점수로 먼저 변환하면 어떻게됩니까?
Jirka-x1

9
@ Jirka-x1 표준화 된 변수 (즉, z 점수) 의 공분산 행렬은 상관 행렬과 같습니다.
Alexis

@Alexis 표준화 된 변수의 공분산 행렬이 표준화 된 변수의 상관 행렬과 같다고 추론 할 수 있습니까?
jb

1
표준화 된 데이터에 대한 @JamieBullock (공분산 행렬) = R (상관 행렬). R = R 데이터의 표준화 여부 (상관은 데이터의 선형 변환에 영향을받지 않습니다. 예를 들어 XY가 있고 r X Y 와 상관 관계가있는 경우 X * = a X + bY = a Y + b X Y 또한 r X Y 와 상관ΣRR=RXYrXYX=aX+bY=aY+b XYrX와이).
Alexis

한 가지 중요한 통지 : PCA에서 공분산을 사용할 때 PC는 서로 상관 관계가 없으며 상관 관계 기반 PCA에는 해당되지 않습니다. 이것은 다중 선형 설명 변수 세트에서 회귀 전에 PCA를 수행 할 때 특히 중요합니다. 그러나 이것에 대한 이론은 명확하지 않습니다. 아무도이 차이점에 대해 밝힐 수 있습니까?
ouranos

54

다변량 분석을 소개 한 그의 훌륭한 저서에서 Bernard Flury는 이것을 주성분의 반 재산으로 설명했습니다. 실제로 상관 또는 공분산 중에서 선택하는 것보다 나쁩니다. 단위를 변경 한 경우 (예 : 미국 스타일 갤런, 인치 등 및 EU 스타일 리터, 센티미터) 데이터의 실제 예상치가 다릅니다.

상관 행렬을 자동으로 사용하는 것에 대한 논쟁은 데이터를 표준화하는 데 매우 잔인한 방법이라는 것입니다. 헵타 탈론 데이터에서 매우 분명한 공분산 행렬을 자동으로 사용할 때의 문제는 가장 큰 분산을 갖는 변수가 첫 번째 주요 성분 (분산 최대화 특성)을 지배한다는 것입니다.

따라서 "최고의"사용 방법은 주관적인 선택, 신중한 사고 및 경험을 바탕으로합니다.


46

변형되지 않은 (RAW) 데이터 : 변형되지 않은 원시 데이터, 즉 일일 칼로리 섭취량, 유전자 발현, ELISA / Luminex, ug / dl, ng / dl 단위로 다양한 척도를 갖는 변수가 여러 순서에 따라 단백질 발현의 크기, 상관 관계를 PCA에 대한 입력으로 사용합니다. 그러나 모든 데이터가 범위와 규모가 비슷한 동일한 플랫폼의 유전자 발현을 기반으로하거나 로그 자산 자산 수익을 처리하는 경우 상관 관계를 사용하면 엄청난 양의 정보가 삭제됩니다.

아르 자형아르 자형100101아르 자형

아르 자형

(<0.05)=100

  1. 아르 자형나는=1,2,,100.
  2. 나는=아르 자형나는/(+1)
  3. (0,1)나는=Φ1(나는)

나는1.96=Φ1(0.025)나는=0.9751.96=Φ1(0.975)

VDW 점수 사용은 많은 변수가 VDW 점수로 변환 된 다음 분석에 입력되는 유전학에서 매우 인기가 있습니다. VDW 점수 사용의 이점은 데이터에서 왜도 및 특이 치 효과가 제거되고 정규성 제약 조건 하에서 분석을 수행하는 것이 목표 인 경우 사용할 수 있으며 모든 변수는 왜도없이 순수하게 표준 정규 분포이어야 함 또는 이상치.


7
이것은 적절한 경우 공분산이이기는 적절한 견해를 제공하기 때문에 여기에서 가장 합리적인 대답입니다. 여기와 다른 곳에서 너무 많은 답변은 가능한 경우 공분산을 선호해야하는 이유에 대한 확실한 근거를 제시하지 않고 일반적인 "의존"을 언급 합니다 . 공변 분산은 상관 관계가 수행하는 정보를 제거하지 않습니다. 주식 데이터 예는 좋은 하나입니다 : 고 베타 주식은 물론 높은 부하를하지만 그들은 아마 해야 단지 변동성 어떤 분석의면처럼 (이유 이내) 일반적으로 더 흥미 롭다.
Thomas Browne

3
물론 높은 분산이 분석의 흥미로운 측면인지 여부에 대해 당면한 문제를 분석해야합니다. 그렇지 않은 경우 물론 상관 관계가 더 좋으며 단위가 다르면 확실히 유지됩니다.
Thomas Browne

좋은 답변 +1. 금융에서 채권 수익률에 대한 용어 구조 분석에 PCA를 적용한 예가 하나 더 있다고 생각합니다. 다양한 성숙도에 대한 수율의 변동은 다양하지만, 모두 수율이기 때문에 다양한 척도는 일반적으로 수용 할 수 없을 정도로 넓지 않습니다. 실제로, 특정 성숙도 수익률의 변동폭은 풍부한 정보를 제공합니다.
Nicholas

11

일반적인 대답은 변수가 동일한 척도에있을 때 공분산이 사용되고 척도가 다른 경우 상관 관계가 사용됨을 제안하는 것입니다. 그러나 이것은 변수의 규모가 중요하지 않은 경우에만 해당됩니다. 그렇지 않으면 왜 누군가가 공분산 PCA를했을까요? 항상 상관 관계 PCA를 수행하는 것이 더 안전합니다.

변수에 미터 및 킬로그램과 같이 다른 측정 단위가 있다고 가정하십시오. 이 경우 미터 또는 센티미터를 사용하는지 여부는 중요하지 않으므로 상관 행렬을 사용해야한다고 주장 할 수 있습니다.

이제 다른 주에있는 사람들의 인구를 고려하십시오. 측정 단위는 동일합니다-사람들의 수 (수). 이제 규모가 다를 수 있습니다. DC의 인구는 600K이고 CA는 38M입니다. 여기서 상관 행렬을 사용해야합니까? 따라 다릅니다. 일부 응용 프로그램에서는 상태 크기에 맞게 조정하려고합니다. 공분산 행렬을 사용하는 것은 상태의 크기를 설명하는 요인을 만드는 한 가지 방법입니다.

따라서 내 대답은 원래 변수의 분산이 중요 할 때 공분산 행렬을 사용하고 그렇지 않은 경우 상관 관계를 사용하는 것입니다.


2

필자는 개인적으로 최대 가능성 주성분 분석 모델 (MLPCA) [1,2]에 비추어 이러한 옵션에 대해 논의하는 것이 매우 중요하다는 것을 알고 있습니다. MLPCA에서 측정 변수의 측정 오류가 표준 정규 분포에 따라 독립적이고 분포되도록 스케일링 (또는 회전)을 적용합니다. 이 스케일링은 최대 가능성 스케일링 (MALS)이라고도합니다 [3]. 어떤 경우에는 PCA 모델과 MALS 스케일링 / 회전을 정의하는 파라미터를 함께 추정 할 수 있습니다 [4].

상관 기반 및 공분산 기반 PCA를 해석하기 위해 다음과 같이 주장 할 수 있습니다.

  1. 공분산 기반 PCA는 측정 오차의 분산 공분산 행렬이 대각선에 동일한 요소가있는 대각선으로 가정 될 때마다 MLPCA와 같습니다. PPCA (Probabilistic Principal Component Analysis) 모델을 적용하여 측정 오차 분산 파라미터를 추정 할 수 있습니다 [5]. 나는 모든 측정이 동일한 유형의 변수 (예 : 모든 유량, 모든 온도, 모든 농도 또는 모든 흡광도 측정) 일 때 내가 연구 한 여러 사례에서 이것이 합리적인 가정이라고 생각합니다. 실제로 이러한 변수에 대한 측정 오류가 독립적으로 동일하게 분포되어 있다고 가정하는 것이 안전 할 수 있습니다.
  2. 상관 관계 기반 PCA는 측정 오차의 분산 공분산 행렬이 해당 측정 변수의 전체 분산에 비례하는 대각선의 각 요소와 대각선으로 가정 될 때마다 MLPCA와 같습니다. 이것은 인기있는 방법이지만 개인적으로 내가 연구하는 대부분의 경우 비례 가정을 부당하게 생각합니다. 결과적으로 상관 관계 기반 PCA를 MLPCA 모델로 해석 할 수 없습니다. (1) 공분산 기반 PCA의 묵시적 가정이 적용되지 않고 (2) MLPCA 해석이 가치있는 경우 MLPCA 방법 중 하나를 대신 사용하는 것이 좋습니다 [1-4].
  3. 상관 기반 및 공분산 기반 PCA는 각 변수에 대한 개별 분산이 모두 서로 정확히 동일한 경우 스칼라 승수를 제외하고 정확히 동일한 결과를 생성합니다. 이러한 개별 분산이 유사하지만 동일하지 않은 경우 두 방법 모두 유사한 결과를 생성합니다.

위에서 강조한 것처럼, 궁극적 인 선택은 당신이 만들고있는 가정에 달려 있습니다. 또한 특정 모델의 유용성은 분석의 맥락과 목적에 따라 달라집니다. George EP Box를 인용하려면 : "모든 모델이 잘못되었지만 일부는 유용합니다."

Wentzell, PD, Andrews, DT, Hamilton, DC, Faber, K. 및 Kowalski, BR (1997). 최대 가능성 주성분 분석. 화학량 론 저널, 11 (4), 339-366.

[2] Wentzell, PD, & Lohnes, MT (1999). 상관 된 측정 오류를 통한 최대 가능성 주성분 분석 : 이론적 및 실제 고려 사항. 화학 측정 및 지능형 실험실 시스템, 45 (1-2), 65-85.

Hoefsloot, HC, Verouden, MP, Westerhuis, JA, & Smilde, AK (2006). 최대 가능성 스케일링 (MALS). 화학 저널, 20 (3-4), 120-127.

[4] Narasimhan, S., & Shah, SL (2008). PCA를 사용하여 잡음 데이터로부터 모델 식별 및 오류 공분산 행렬 추정. 제어 공학 실습, 16 (1), 146-155.

Tipping, ME, & Bishop, CM (1999). 확률 적 주성분 분석. 왕립 통계 학회지 : 시리즈 B (통계 방법론), 61 (3), 611-622.


-1

똑 바르고 간단합니다. 비늘이 비슷한 경우 cov-PCA를 사용하고, 그렇지 않은 경우 corr-PCA를 사용하십시오. 그렇지 않으면 방어하지 않는 것이 좋습니다. 확실치 않은 경우 분산의 동등성 (ANOVA)에 대해 F- 검정을 사용하십시오. F- 검정에 실패하면 corr을 사용하십시오. 그렇지 않으면 cov를 사용하십시오.


2
-1. F- 테스트를 실행하는 것이 왜 여기에 적합한 지 알 수 없습니다. PCA는 통계적 테스트와 마찬가지로 확인 방법이 아닌 탐색 방법입니다.
amoeba

-5

척도에 근거한 주장 (같은 물리적 단위로 표현 된 변수에 대한)은 다소 약해 보입니다. 표준 편차가 0.001과 0.1 사이에서 변하는 (치수없는) 변수 세트를 상상해보십시오. 1의 표준화 된 값과 비교할 때,이 둘은 '작고'비슷한 수준의 변동으로 보입니다. 그러나 데시벨로 표현하면 각각 -10과 0dB에 대해 -60dB의 범위가됩니다. 그런 다음 이것은 아마도 '큰 범위'로 분류 될 것입니다. 특히 0에 가까운 표준 편차, 즉-무한 무한대 dB를 포함 할 경우 더욱 그렇습니다.

내 제안은 상관 및 공분산 기반 PCA를 수행하는 것입니다. 두 사람이 동일하거나 매우 유사한 PC를 제공한다면 의미있는 답을 얻을 수 있습니다. 서로 다른 PC를 제공하는 경우 한 가지 문제에 대한 두 가지 다른 답변이 질문을 해결하는 합리적인 방법이 아니므로 PCA를 사용하지 마십시오.


9
(1) "같은 문제에 대한 두 가지 다른 대답"을 얻는 것은 종종 분석 목표에 적합한 기술에 대해 생각하지 않고 무의식적으로 똥을 re다는 것을 의미합니다. 그것은 하나 또는 두 가지 기술이 합리적이지 않다는 것을 의미하지는 않지만 최소한 하나의 기술이 문제 나 데이터에 적합하지 않을 수도 있음을 의미합니다. 또한 공분산 기반 PCA와 상관 기반 PCA 다른 답변을 제공 해야하는 경우가 많습니다 . 결국, 그들은 데이터의 다른 측면을 측정하고 있습니다. 기본적으로 두 가지를 모두 수행하는 것은 의미가 없습니다.
whuber

실제로 상관 관계 및 공분산으로 PCA를 사용할 때 두 가지 다른 답변을 얻는 것이 매우 합리적입니다. 주식의 경우 베타 (또는 표준 편차)를 고려해야하는지에 대한 문제입니다.
Juancentro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.