2015-04-07 54 views
1

這是作業。PCA投影數據R

我必須對數據集進行主成分分析。我已經使用 princomp() 函數完成了這項工作。然後我被要求通過散點圖將數據可視化,其中我將數據投影在前兩個主要組件上。

從princomp()函數返回的對象有一個類與特徵向量「加載」。

如何減去兩個第一個主體組件並將它們投影到散點圖中的數據上?

編輯: 我作爲建議雙標圖(princom(DF)):

pdf('scatterplot.pdf') 

biplot(princomp(keytrain, choices = 1:2), xlab = '1. component', ylab = '2. component') 
title('Scatterplot of the first two components projected on the data') 

dev.off() 

哪裏keytrain是我的數據幀。 我得到了這個陰謀:

Scatter plot

確實看起來合理嗎?

+0

查看'?biplot'。 –

+0

謝謝。你能幫我解釋散點圖嗎?我看起來像所有21個向量(我的數據框有21個變量) - 但我只被要求投影前2個組件。我將用散點圖的圖片更新我的問題。 –

+0

RStudent:我在編輯中提供的信息是否足夠? –

回答

0

princomp對象產生元素列表(S3對象)。您可以通過str檢查其結構。

(pc.cr <- princomp(USArrests)) 

> str(pc.cr) 
List of 7 
$ sdev : Named num [1:4] 82.89 14.07 6.42 2.46 
    ..- attr(*, "names")= chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4" 
$ loadings: loadings [1:4, 1:4] -0.0417 -0.9952 -0.0463 -0.0752 0.0448 ... 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ : chr [1:4] "Murder" "Assault" "UrbanPop" "Rape" 
    .. ..$ : chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4" 
$ center : Named num [1:4] 7.79 170.76 65.54 21.23 
    ..- attr(*, "names")= chr [1:4] "Murder" "Assault" "UrbanPop" "Rape" 
$ scale : Named num [1:4] 1 1 1 1 
    ..- attr(*, "names")= chr [1:4] "Murder" "Assault" "UrbanPop" "Rape" 
$ n.obs : int 50 
$ scores : num [1:50, 1:4] -64.8 -92.8 -124.1 -18.3 -107.4 ... 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ : chr [1:50] "Alabama" "Alaska" "Arizona" "Arkansas" ... 
    .. ..$ : chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4" 
$ call : language princomp(x = USArrests) 
- attr(*, "class")= chr "princomp" 

成績可通過pc.cr$scores訪問。

+0

如果我要對前兩個主要組件進行投影,我不應該使用加載而不是分數嗎? –