답변:
이것은 @ttnphns의 의견에 제공된 통찰력있는 힌트를 설명합니다.
거의 상관 된 변수를 인접 시키면 PCA에 대한 공통 기본 요소의 기여도가 증가합니다. 우리는 이것을 기하학적으로 볼 수 있습니다. 점 구름으로 표시된 XY 평면에서 다음 데이터를 고려하십시오.
상관 관계가 거의없고 공분산이 거의 동일하며 데이터가 중심에 있습니다. PCA (어떻게 수행하든 상관 없음)는 거의 동일한 두 가지 성분을보고합니다.
이제 와 같은 제 3의 변수 에 작은 양의 랜덤 에러를 더해 봅시다 . 의 상관 행렬은 두 번째와 세 번째 행과 열 ( 및 )을 제외한 작은 비대 각 계수로이를 보여줍니다 .Y ( X , Y , Z ) Y Z
기하학적으로, 우리는 페이지 평면에서 바로 이전 그림을 들어 올려 원래의 모든 점을 거의 수직으로 이동했습니다. 이 의사 3D 포인트 클라우드는 측면 투시도를 사용하여 리프팅을 설명하려고 시도합니다 (전과 동일한 방식으로 생성되었지만 다른 데이터 세트를 기반으로 함).
점은 원래 파란색 평면에 있으며 빨간색 점으로 들어 올려집니다. 원래 축은 오른쪽을 가리 킵니다. 얻어진 경사는 또한, YZ 방향을 따라 점 뻗어 하여 배로 분산에 기여한다. 결과적으로 이러한 새로운 데이터의 PCA는 여전히 두 가지 주요한 주요 구성 요소를 식별하지만 이제는 그 중 하나가 다른 두 가지 분산을 갖습니다.
이 기하학적 기대는의 일부 시뮬레이션과 함께 설명됩니다 R
. 이를 위해 두 번째, 세 번째, 네 번째 및 다섯 번째로 두 번째 변수의 거의 동일 선상 사본을 만들어 에서 이름을 지정하여 "리프팅"절차를 반복했습니다 . 다음은 마지막 네 변수가 어떻게 서로 관련되어 있는지 보여주는 산점도 행렬입니다.X 5
PCA는 처음 두 변수를 사용한 다음 3, ... 및 마지막으로 5를 사용하여 상관 관계를 사용하여 수행됩니다 (이러한 데이터에는 실제로 중요하지는 않지만). 주성분의 총 분산에 대한 기여도를 도표로 사용하여 결과를 보여줍니다.
처음에는 거의 상관 관계가없는 두 개의 변수를 사용하면 기여도가 거의 같습니다 (왼쪽 위 모서리). 하나의 변수를 두 번째와 상관 관계를 추가 한 후 (정확한 그림에서와 같이) 여전히 두 가지 주요 구성 요소가 있으며, 하나는 다른 구성 요소의 두 배 크기입니다. 세 번째 구성 요소는 완벽한 상관 관계가 없음을 반영합니다. 3D 산점도에서 팬케이크 같은 구름의 "두께"를 측정합니다. 다른 상관 변수 ( )를 추가 한 후 첫 번째 구성 요소는 이제 전체의 약 3/4입니다 ; 다섯 번째가 추가 된 후 첫 번째 구성 요소는 전체의 거의 5/5입니다. 네 가지 경우 모두, 두 번째 이후의 구성 요소는 대부분의 PCA 진단 절차에 따라 중요하지 않은 것으로 간주됩니다. 마지막 경우에는고려해야 할 주요 구성 요소 중 하나 입니다.
우리는 지금 볼 수 있습니다 생각 변수를 폐기의 장점 변수의 컬렉션의 동일한 기본 (그러나 "잠재적") 측면을 측정 할 수있을 수 있습니다 거의 중복 변수는 PCA 그들의 공헌을 지나치게 강조 될 수 있습니다 포함하기 때문에. 그러한 절차에 대해 수학적으로 옳고 그른 것은 없습니다 . 데이터의 분석 목표와 지식을 기반으로 한 판단 요청입니다. 그러나 다른 변수와 밀접한 상관 관계가있는 것으로 알려진 변수를 따로 설정하면 PCA 결과에 상당한 영향을 줄 수 있다는 것은 분명합니다 .
R
코드 는 다음과 같습니다 .
n.cases <- 240 # Number of points.
n.vars <- 4 # Number of mutually correlated variables.
set.seed(26) # Make these results reproducible.
eps <- rnorm(n.vars, 0, 1/4) # Make "1/4" smaller to *increase* the correlations.
x <- matrix(rnorm(n.cases * (n.vars+2)), nrow=n.cases)
beta <- rbind(c(1,rep(0, n.vars)), c(0,rep(1, n.vars)), cbind(rep(0,n.vars), diag(eps)))
y <- x%*%beta # The variables.
cor(y) # Verify their correlations are as intended.
plot(data.frame(y)) # Show the scatterplot matrix.
# Perform PCA on the first 2, 3, 4, ..., n.vars+1 variables.
p <- lapply(2:dim(beta)[2], function(k) prcomp(y[, 1:k], scale=TRUE))
# Print summaries and display plots.
tmp <- lapply(p, summary)
par(mfrow=c(2,2))
tmp <- lapply(p, plot)
@whuber와 동일한 프로세스와 아이디어를 추가로 설명 하지만 로딩 플롯은 로딩이 PCA 결과의 본질이기 때문에 로딩 플롯과 함께 설명합니다.
다음은 세 가지 3 가지 분석입니다. 첫 번째로 과 두 변수가 있습니다 (이 예에서는 상관 관계가 없습니다). 두 번째로, 거의 의 사본 인 을 추가 과 밀접한 관련이 있습니다. 세번째로, 우리는 여전히 유사하게 2 개의 "복사본" 와 .X 2 X 3 X 2 X 4 X 5
그런 다음 처음 두 가지 주요 구성 요소의 하중 도표가 나타납니다. 플롯의 빨간색 스파이크는 변수 간의 상관 관계를 나타내므로 여러 스파이크가 밀접하게 관련된 변수의 군집이있는 곳입니다. 구성 요소는 회색 선입니다. 구성 요소의 상대적 "강도"(상대 고유 값 크기)는 선의 가중치로 제공됩니다.
"복사본"을 추가하면 다음 두 가지 효과를 볼 수 있습니다.
@whuber가 이미 해냈 기 때문에 나는 도덕을 다시 시작하지 않을 것입니다.
추가 . 아래는 @whuber의 의견에 대한 답변입니다. "가변 공간"과 "주제 공간"과 구성 요소가 여기 저기 어떻게 방향을 구분하는지에 관한 것입니다. 3 개의 이변 량 PCA가 제시된다 : 첫 번째 행 분석 , 두 번째 행 분석 및 세 번째 행 . 왼쪽 열은 표준화 된 데이터의 산점도이고 오른쪽 열은로드 도표입니다.r = 0.62 r = 0.77
산점도에서 과 의 상관 관계 는 구름의 직사각형으로 렌더링됩니다. 컴포넌트 라인과 변수 라인 사이의 각도 (그 코사인)는 해당 고유 벡터 요소입니다. 고유 벡터는 세 가지 분석에서 모두 동일하므로 세 그래프의 각도는 모두 동일합니다. 그러나 정확하게 고유 벡터 (따라서 각도)가 이론적으로 임의적 이라는 것은 사실입니다 . 클라우드는 원점을 통해 오는 직교 선 쌍이 과 의 두 구성 요소로 사용될 수 있기 때문에 완벽하게 "둥글"기 때문입니다.X 2 r = 0 X 1 X 2 구성 요소로 선 자체를 선택할 수 있습니다.] 구성 요소에 대한 데이터 요소 (200 명의 주체)의 좌표는 구성 요소 점수이며 200-1로 나눈 제곱합은 구성 요소의 고유 값 입니다.
하중 그림에서 점 (벡터)은 변수입니다. 그들은 2 차원의 공간을 확장하지만 (우리는 2 점 + 원점을 가짐) 실제로 200 차원 (피사체 수) "주제 공간"이 줄어 듭니다. 여기서 빨간 벡터 사이의 각도 (코사인)는 입니다. 데이터가 표준화되었으므로 벡터의 단위 길이는 동일합니다. 첫 번째 구성 요소는이 공간에서 점의 전체 누적을 향해 돌진하는 치수 축입니다. 변수가 2 개인 경우 항상 과 사이의 이등분선입니다X 1 X 2(그러나 세 번째 변수를 추가하면 변수가 어긋날 수 있습니다). 가변 벡터와 구성 요소 선 사이의 각도 (코사인)는 이들 사이의 상관 관계이며, 벡터가 단위 길이이고 구성 요소가 직교하기 때문에 좌표, 로딩 이외의 것은 아닙니다 . 구성 요소에 대한 제곱 하중의 합은 고유 값입니다 (구성 요소가이 주제 공간에서 방향을 최대화하도록 방향을 조정 함)
추가 2. 위의 추가 에서 나는 "가변 공간"과 "대상 공간"이 마치 물과 기름처럼 호환되지 않는 것처럼 말하고있었습니다. 나는 그것을 재고해야했고 적어도 PCA에 관해 이야기 할 때 두 공간은 결국 동형이며, 그 덕분에 우리는 모든 PCA 세부 사항을 정확하게 표시 할 수 있습니다-데이터 포인트, 가변 축, 구성 요소 축, 변수 포인트,-왜곡되지 않은 단일 플롯.
다음은 산점도 (가변 공간) 및 적재 그림 (유전자 원점에 의해 대상 공간 인 구성 요소 공간)입니다. 한쪽에 표시 될 수있는 모든 것이 다른 쪽에도 표시 될 수 있습니다. 그림 은 동일 하며 서로 에 대해 45 도만 회전합니다 (이 경우에는 반사됩니다). 그것은 변수 v1과 v2의 PCA였습니다 (표준화되었으므로 분석 된 r 입니다). 그림의 검은 선은 변수를 축으로합니다. 녹색 / 노란색 선은 축과 같은 구성 요소입니다. 파란색 점은 데이터 클라우드 (대상)입니다. 빨간색 점은 점 (벡터)으로 표시되는 변수입니다.
The software was free to choose any orthogonal basis for that space, arbitrarily
은 가변 공간 (예 : 답변의 첫 번째 그림과 같은 데이터 산점도)의 둥근 구름에 적용 되지만 로딩 플롯은 경우가 아닌 변수가 점 (벡터) 인 주제 공간 입니다.
논문의 세부 사항이 없으면 상관 관계가 높은 변수를 버리는 것이 계산 능력이나 작업 부하를 줄이기 위해 수행되었다고 추측합니다. PCA가 상관 관계가 높은 변수를 '파괴'하는 이유를 알 수 없습니다. PCA가 찾은베이스에 데이터를 다시 투영하면 데이터를 미백 (또는 상관 해제)하는 효과가 있습니다. 그것이 PCA의 핵심입니다.
글쎄, 그것은 당신의 알고리즘에 달려 있습니다. 상관 관계가 높은 변수는 조건이 잘못된 행렬을 의미 할 수 있습니다. 그에 민감한 알고리즘을 사용하면 의미가있을 수 있습니다. 그러나 고유 값과 고유 벡터를 크랭크하는 데 사용되는 대부분의 최신 알고리즘은 이것에 강력하다고 말합니다. 관련성이 높은 변수를 제거하십시오. 고유 값과 고유 벡터가 많이 변합니까? 만약 그렇다면, 잘못된 컨디셔닝이 해답이 될 수 있습니다. 상관 관계가 높은 변수는 정보를 추가하지 않으므로 PCA 분해가 변경되지 않아야합니다.
사용하는 기본 구성 요소 선택 방법에 따라 다릅니다.
고유 값> 1 인 기본 구성 요소를 사용하는 경향이 있습니다. 따라서 영향을 미치지 않습니다.
그리고 위의 예에서 scree plot 방법조차도 일반적으로 올바른 것을 선택합니다. 당신이 팔꿈치 전에 모든 것을 유지한다면. 그러나 단순히 '주요'고유 값을 갖는 기본 구성 요소를 선택했다면 실수를 저 지르게됩니다. 그러나 그것은 scree plot을 사용하는 올바른 방법이 아닙니다!