PCA biplot의 화살표는 무엇을 의미합니까?


14

다음 PCA biplot을 고려하십시오.

library(mvtnorm)
set.seed(1)
x  <- rmvnorm(2000, rep(0, 6), diag(c(5, rep(1,5))))
x  <- scale(x, center=T, scale=F)
pc <- princomp(x)
biplot(pc)

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

많은 빨간색 화살표가 그려져 있습니다. 무슨 의미입니까? "Var1"이라는 레이블이 붙은 첫 번째 화살표는 데이터 세트의 가장 다양한 방향을 가리켜 야한다는 것을 알고있었습니다 (만약 데이터가 2000 개의 데이터 포인트라고 생각하면 각각 크기가 6 인 벡터). 나는 또한 어딘가에서 읽었으며, 가장 다양한 방향은 첫 번째 고유 벡터의 방향이어야합니다.

그러나 R의 biplot 코드를 읽으면 화살표에 대한 선은 다음과 같습니다.

if(var.axes)
    arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L], 

y실제로 로딩 행렬은 어디에 있으며, 이것은 고유 벡터 행렬입니다. 따라서 첫 번째 화살표가 실제로에서 (0, 0)를 가리키는 것처럼 보입니다 (y[1, 1], y[1, 2]). 고차원 화살표를 2D 평면에 표시하려고한다는 것을 알고 있습니다. 이것이 우리가 y[1, ]벡터 의 첫 번째와 두 번째 요소를 취하는 이유 입니다. 그러나 내가 이해하지 못하는 것은 :

첫 번째 고유 벡터 방향이 y[, 1]대신 로 표시된 벡터가 아니어야합니까 y[1, ]? (다시 말해서, 여기 yPCA 또는 고유 분해에 의해 얻어진 고유 벡터 행렬이있다 t(x) %*% x.) 고유 벡터는 수평 벡터가 아니라 열 벡터 여야한다.

2D 평면에 플로팅하는 경우에도 첫 번째 방향을 (0, 0)가리키는 방향을 그려야 (y[1, 1], y[2, 1])합니까?


2
또한 사이트에서 질문에 사용할 수있는 형식을 활용 해보십시오 ( 고급 마크 다운 도움말 참조) . 이전 질문에 답이없는 것을 보았습니다. 조금 더 읽기 쉽도록 편집하면 목록 상단으로 올라가 답변을 얻을 수 있습니다.
Andy W

@Andy W 우수한 참고 자료
켤레 이전

@Andy W : 훌륭한 참조를 읽은 후에도 여전히 R 코드 biplot.princomp에 버그가 있다고 생각합니다. biplot.princomp로 전송되기 전에 로딩 행렬 (고유 벡터 행렬)을 바꾸어야합니다.
Luna

버그가없는 것 같습니다 .
chl

@Andy W : 답변을 수락 할 수 있도록 의견을 "답변"에 추가 하시겠습니까? 대단하네요! 정말 고마워!
Luna

답변:


9

혼돈을 설명하는 데 도움이되도록 Kevin Wright에게 대부분의 크레딧을 제공해야합니다 ( R-help 메일 목록에서 ).

화살표가 데이터의 가장 다양한 방향을 가리 키지 않습니다. 주성분은 데이터의 가장 다양한 방향을 가리키고 있습니다. 그러나 원래 스케일로 데이터를 플로팅하지 않고 회전 된 스케일로 데이터를 플로팅하므로 가로 축이 데이터의 가장 다양한 방향입니다.

Biplot의 2 차원 평면에 투영 된 화살표는 변수 방향을 가리 킵니다.

버그가 없습니다.

케빈 라이트

Michael Greenacre는 Biplots, Biplots in Practice 에 대한 매우 훌륭한 무료 온라인 서적을 보유하고 있으며 첫 번째 장을 읽으면 화살표의 좌표를 가져 오는 데 동기를 부여하는 데 도움이됩니다. 이 사이트에는 비슷한 몇 가지 다른 질문이 있으며 관심 이 있으실 수도 있습니다 . 두 가지 예 는 R의 주성분 분석에서 이중 그림 해석 및 두 가지 예에 대한 MDS 요인 그림 해석을 참조하십시오 . 또한 사이트에서 검색 할 때 biplot 을 사용하여 질문을 살펴보십시오. 잠재적 인 관심이 더있을 수 있습니다 (biplot 태그를 작성하는 것이이 시점에서 문제가 발생했을 때 유용 할 수 있습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.