주요 구성 요소 점수는 무엇입니까?


71

주요 구성 요소 점수 (PC 점수, PCA 점수) 란 무엇입니까?


el chef는 여기-> stats.stackexchange.com/questions/146/…에 대한 요약 된 답변을 가지고 있습니다 . HTH
로마 루스 트리 크



답변:


66

먼저 점수를 정의 해 봅시다.

John, Mike 및 Kate는 수학, 과학, 영어 및 음악 시험에서 다음과 같은 비율을 얻습니다.

      Maths    Science    English    Music    
John  80        85          60       55  
Mike  90        85          70       45
Kate  95        80          40       50

이 경우 총 12 개의 점수가 있습니다. 각 점수 는 특정 과목의 각 개인에 대한 시험 결과를 나타냅니다. 따라서이 경우 점수는 단순히 행과 열이 교차하는 위치를 나타냅니다.

이제 Principal Component를 비공식적으로 정의 해 봅시다.

위의 표에서 2D 그래프로 쉽게 데이터를 그릴 수 있습니까? 아닙니다. 수학, 과학, 영어 및 음악이라는 네 가지 주제가 있습니다.

  • 2D 그래프에서 및 좌표를 사용하는 것과 동일한 방식으로 두 개의 주제를 그릴 수 있습니다.xy
  • 3D 그래프에서 , 및 를 플롯하는 것과 같은 방식으로 3 개의 피사체를 플롯 할 수도 있습니다 (3D 데이터의 2D 표현에서는 일부 왜곡이 불가피하기 때문에 이는 일반적으로 좋지 않습니다).y zxyz

그러나 4 개의 과목을 어떻게 계획 하시겠습니까?

현재 우리는 각각 하나의 주제를 나타내는 4 개의 변수를 가지고 있습니다. 따라서이 문제를 해결하는 방법은 주제를 어떻게 든 두 개의 새로운 변수로 결합한 다음 플롯 할 수 있습니다. 이를 다차원 스케일링이라고 합니다.

주성분 분석은 다차원 스케일링의 한 형태입니다. 변수에 대한 최대량의 정보를 유지하는 낮은 차원 공간으로 변수를 선형 변환합니다. 예를 들어, 이는 각 학생이 더 적합한 과목 유형을 볼 수 있음을 의미합니다.

따라서 주성분은 선형 변환 후 원래 변수의 조합입니다. R에서 이것은 다음과 같습니다.

DF<-data.frame(Maths=c(80, 90, 95), Science=c(85, 85, 80), English=c(60, 70, 40), Music=c(55, 45, 50))
prcomp(DF, scale = FALSE)

이것은 다음과 같은 것을 줄 것입니다 (단순성을 위해 처음 두 가지 주요 구성 요소).

                PC1         PC2
Maths    0.27795606  0.76772853 
Science -0.17428077 -0.08162874 
English -0.94200929  0.19632732 
Music    0.07060547 -0.60447104 

여기서 첫 번째 열은 주성분 # 1을 정의하는 선형 조합 계수를 보여주고 두 번째 열은 주성분 # 2에 대한 계수를 보여줍니다.

그렇다면 주요 구성 요소 점수는 무엇입니까?

이 게시물 끝에있는 표의 점수입니다 (아래 참조).

위의 R 결과는 다음과 같이 모든 과목에 대한 각 사람의 점수를 2D 그래프로 그릴 수 있음을 의미합니다. 먼저 빼기 열이 의미하는 원래 변수를 가운데에 배치해야합니다.

      Maths    Science    English    Music    
John  -8.33       1.66       3.33       5  
Mike   1.66       1.66      13.33      -5
Kate   6.66       -3.33    -16.66       0

그런 다음 PC1 및 PC2 점수 를 얻기 위해 선형 조합을 형성하십시오 .

      x                                                    y
John -0.28*8.33 + -0.17*1.66 + -0.94*3.33  + 0.07*5   -0.77*8.33 + -0.08*1.66 + 0.19*3.33   + -0.60*5 
Mike 0.28*1.66  + -0.17*1.66 + -0.94*13.33 + -0.07*5   0.77*1.66 + -0.08*1.66 + 0.19*13.33  + -0.60*5
Kate 0.28*6.66  + 0.17*3.33  + 0.94*16.66  + 0.07*0    0.77*6.66 +  0.08*3.33 + -0.19*16.66 + -0.60*0

다음을 단순화합니다.

        x       y
John   -5.39   -8.90
Mike  -12.74    6.78
Kate   18.13    2.12

위의 표 에는 6 가지 주요 구성 요소 점수 가 있습니다. 이제 2D 그래프로 점수를 플롯하여 각 학생이 더 적합한 과목 유형을 파악할 수 있습니다.

R을 입력하여 동일한 출력을 얻을 수 있습니다 prcomp(DF, scale = FALSE)$x.

편집 1 : 흠, 아마도 더 나은 예를 생각해 보았을 것입니다. 여기에 넣은 것보다 더 많은 것이 있지만 아이디어를 얻길 바랍니다.

편집 2 :이 답변을 개선하는 데 대한 그의 의견에 대해 @drpaulbrewer에게 전적으로 감사합니다.


10
노력은 칭찬 할 만하지 만 PC1이나 PC2는 모든 과목에서 누가 가장 잘했는지 말해주지 않습니다. 그렇게하기 위해서는 PC 과목의 효율성이 모두 긍정적이어야합니다. PC1은 수학과 음악에 긍정적 인 가중치를 주지만 과학과 영어에는 부정적입니다. PC2는 수학과 영어에 긍정적 인 가중치를 주지만 과학과 음악에는 부정적입니다. PC가 알려주는 것은 데이터 세트에서 가장 큰 차이가있는 위치입니다. 따라서 PC1의 계수로 주제에 가중치를 부여하고이를 사용하여 학생들의 점수를 매기면 가장 큰 차이를 얻거나 학생 행동이 확산됩니다. 유형은 분류 할 수 있지만 성능은 분류 할 수 없습니다.
Paul

+1 좋은 댓글, 건배 당신은 물론 맞습니다, 나는 그것을 더 잘 작성 했어야했고 이제 내가 희망을 분명히하기 위해 문제의 행을 편집했습니다.
Tony Breyal

누가 가장 좋은지 또는 원하는 경우 R을 apply(dtf, 1, function(x) sum(scale(x)))
보려면 var를

2
@JohnPrior 네 가지 변수 (열)는 수학, 과학, 영어 및 음악이며 행은 개인을 나타냅니다. 5 년 전 나는 대답을 위해 끔찍한 예를 선택했기 때문에 "대상"이라는 용어는 때때로 모호해진다.
Tony Breyal

1
@Tony, 나는 점수를 계산하기 전에 변수를 중심에 맞추기 위해 답을 편집했습니다. 이제 계산 된 점수는 어떤 prcomp출력에 적합합니다 . 전에하지 않았다.
amoeba

23

주성분 분석 (PCA)은 다변량 데이터를 처리 할 때 분산을 분석하는 널리 사용되는 방법 중 하나입니다. 임의의 변수 X1, X2, ... Xn이 모두 다양한 정도로 (양수 또는 음수) 상관 관계가 있으며 진행 상황을 더 잘 이해하려고합니다. PCA가 도울 수 있습니다.

PCA가 제공하는 것은 변수를 X의 선형 조합 인 Y1, Y2, ..., Yn (즉, 동일한 수의 변수)으로 변경 한 것입니다. 예를 들어 Y1 = 2.1 X1-1.76 X2 + 0.2 X3 ...을 가질 수 있습니다.

Y는 이들 각각이 서로 상관 관계가 없다는 멋진 속성입니다. 더 나은 방법으로, 당신은 그것들을 분산의 순서로 감소시킵니다. 따라서 Y1은 원래 변수의 분산에서 큰 차이를 "설명"합니다. Y2는 조금 더 적습니다. 일반적으로 처음 몇 Y 후에 변수는 의미가 없습니다. Xi의 PCA 점수는 각 Y의 계수입니다. 이전 예제에서 첫 번째 주성분 (Y1)의 X2 점수는 1.76입니다.

PCA가이 마법을 수행하는 방식은 공분산 행렬의 고유 벡터를 계산하는 것입니다.

구체적인 예를 들어, X1, ... X10이 1 년, 2 년, ..., 10 년의 변화를 상상해보십시오. 일정 기간 동안의 국채 수익률. PCA를 계산할 때 일반적으로 첫 번째 구성 요소는 같은 부호와 같은 부호의 각 결합에 대한 점수를 갖습니다. 이것은 채권 수익률 차이의 대부분이 "평행 이동"위 또는 아래로 같은 방식으로 움직이는 모든 것에서 나온다는 것을 알려줍니다. 두 번째 구성 요소는 일반적으로 곡선의 "스티프 닝 (steepening)"및 "평 평화 (flattening)"를 나타내며 X1 및 X10에 반대되는 부호를 갖습니다.


Y 값이 높을수록 분산의 더 큰 덩어리를 어떻게 "설명"합니까? PCA가 어떻게 계산됩니까? 그렇다면 게시 할 다른 질문이 있다고 생각합니다.)
vrish88

1
PC의 분산이 3.5라고 말하면, PC는 초기 세트로부터 3.5 개의 변수의 가변성을 "설명"합니다. PC는 가산적이고 PC1 > PC2 > ... > PCn분산의 합은 초기 변수 세트의 분산의 합과 동일하기 때문에 PCA는 공분산 행렬에 따라 계산되므로 변수가 표준화됩니다 (SD = 1, VAR = 1).
aL3xa

6

예를 들어 3D (100x3 배열로 나열 가능)에 N 포인트의 구름이 있다고 가정합니다. 그런 다음 주성분 분석 (PCA)은 임의로 지향 된 타원체를 데이터에 맞 춥니 다. 주요 성분 점수는 타원체의 직경 길이입니다.

직경이 큰 방향에서는 데이터가 많이 변하지 만 직경이 작은 방향에서는 데이터가 조금씩 다릅니다. Nd 데이터를 2 차원 산점도로 투영하려면 두 가지 주요 주성분을 따라 그 데이터를 플로팅합니다.이 방법을 사용하면 데이터의 대부분의 분산이 표시되기 때문입니다.


어떤 이점이 있습니까, 아니면 3 차원 산점도로 플롯 할 수 있습니까?
vrish88

6

나는 여러분이 실제로 의미를 부여 할 때까지 주성분 점수를 "기본적으로 무의미한"것으로 생각하고 싶습니다. "실제"라는 관점에서 PC 점수를 해석하는 것은 까다로운 작업이며 실제로 고유 한 방법은 없습니다. PCA에 들어가는 특정 변수에 대해 알고있는 것과 해석 측면에서 서로 관련이있는 방법에 따라 다릅니다.

수학이 진행되는 한, 저는 PC 점수를 주요 구성 요소 축과 관련하여 각 점의 좌표로 해석하고 싶습니다. 따라서 원시 변수 에는 p- 차원 공간의 "점"인 가 있습니다. 이 좌표에서 이는 축을 따라 점이 원점에서 거리라는 의미입니다. 이제 PCA는 기본적으로 "원시 변수"축이 아닌 기본 구성 요소 축과 관련하여이 "점"을 설명하는 다른 방법입니다. 따라서 . 여기서 는 ISxi =(x1i,x2i,,xpi)x1x1izi =(z1i,z2i,,zpi)=A(xix¯)Ap×p주요 구성 요소 가중치 (즉, 각 행의 고유 벡터)의 행렬이며 은 데이터의 "중심점"(또는 데이터 포인트의 평균 벡터)입니다.x¯

따라서 고유 벡터는 PC를 나타내는 "직선"이 어디에 있는지 설명하는 것으로 생각할 수 있습니다. 그런 다음 주성분 점수는 데이터의 "중심점"과 관련하여 각 데이터 포인트가 각 직선에있는 위치를 나타냅니다. 또한 가중치 / 고유 벡터와 함께 PC 점수를 다음과 같은 형식의 각 원래 데이터 포인트에 대한 일련의 순위 1 예측으로 생각할 수 있습니다.

x^ji(k)=x¯j+zkiAkj

여기서 는 번째 PC를 사용하는 번째 변수에 대한 번째 관측치 의 예측입니다 .x^ji(k)ijk


4

데이터 행렬의 주성분은 분산-공분산 행렬의 고유 벡터-고유 값 쌍입니다. 본질적으로, 그것들은 장식의 분산의 조각입니다. 각각은 관측치에 대한 변수의 선형 조합입니다. 각각의 대상에서 w, x, y, z를 측정한다고 가정 해 봅시다. 첫 번째 PC는 다음과 같이 작동합니다.

0.5w + 4x + 5y-1.5z

여기에서의 하중 (고유 벡터)은 (0.5, 4, 5, -1.5)입니다. 각 관측치의 점수 (고유 값)는 관측치 (w, x, y, z)를 대체하고 총계를 계산할 때 결과 값입니다.

이것은 다른 데이터와 마찬가지로 각각에 점수를 표시하기 때문에 주요 구성 요소 (예 : 이상치 탐지)에 물건을 투영 할 때 유용합니다. 분산의 많은 부분이 상관되어 있으면 데이터에 대해 많은 정보가 표시 될 수 있습니다 (처음 몇 대의 PC에서는 ==).


명확하게 말하면, "각각의 주제에 대해 w, x, y, z를 측정한다고 가정 할 때"위의 @TonyBreyal의 답변에서 "대상"을 언급하고 있지 않습니까? "개체"라는 단어를 "관측"/ "기록"/ "데이터 행"과 동의어로 사용하고 있습니까?
Ryan Chase

4

하자 인덱스 행과 인덱스 컬럼. 변수 (열) 조합을 선형화한다고 가정합니다.i=1,,Nj=1,,M

Zi,1=ci,1Yi,1+ci,2Yi,2+...+ci,MYi,M

위의 공식은 기본적으로 행 요소에 특정 값 (로드) 를 곱하고 열로 합산 한다고 말합니다 . 결과 값 ( 값과 로딩 횟수)은 점수입니다.YcY

주성분 (PC)은 선형 조합 ) (점수라고하는 열의 값)입니다. 본질적으로 PC는 변수 (열)의 가장 중요한 특징을 제시해야합니다. Ergo, 당신은 변수 (또는 그 이하)만큼 많은 PC를 추출 할 수 있습니다.Z1=(Z1,1,...,ZN,1

PCA 에서 R 의 출력 (가짜 예제)은 다음과 같습니다. PC1, PC2 ...는 주요 구성 요소 1, 2 ...입니다. 아래 예는 처음 8 개의 주요 구성 요소 (17 개 중) 만 표시합니다. 로딩 및 점수와 같은 PCA에서 다른 요소를 추출 할 수도 있습니다.

Importance of components:
                          PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8
Standard deviation     1.0889 1.0642 1.0550 1.0475 1.0387 1.0277 1.0169 1.0105
Proportion of Variance 0.0697 0.0666 0.0655 0.0645 0.0635 0.0621 0.0608 0.0601
Cumulative Proportion  0.0697 0.1364 0.2018 0.2664 0.3298 0.3920 0.4528 0.5129

1
죄송하지만로드 (수식에서 c) 란 무엇이며 어떻게 결정합니까?
vrish88

@ vrish88 나는 c가 고유 벡터의 "적재"라고 믿는다. 내 이해는 이것들이 본질적으로 각 변수에 부여하는 가중치라는 것입니다. Tim은 그의 대답에서 이것을 잘 설명합니다.
Ryan Chase

3

주성분 점수는 주성분 분석 (PCA)에 따라 얻은 점수 그룹입니다. PCA에서 점수 그룹 간의 관계는 동일한 수의 새로운 "가상"변수 (일명 기본 구성 요소)가 작성되도록 분석됩니다. 이 새로운 가상 변수 중 첫 번째 변수는 원래의 모든 변수 그룹과 최대로 상관됩니다. 다음은 상관 관계가 적으며, 모든 주성분 점수를 사용하여 초기 그룹에서 주어진 변수를 예측할 때까지 모든 분산을 설명 할 수있을 때까지는 그다지 상관성이 없습니다. PCA가 진행되는 방식은 복잡하며 특정 제한 사항이 있습니다. 그중에는 두 가지 주요 구성 요소 (가상 변수) 간의 상관 관계가 0이라는 제한이 있습니다. 따라서 그것은

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