Principal Component Analysis (PCA) is a useful technique for exploratory data analysis, allowing you to better visualize the variation present in a dataset with many variables.
主成分分析是一個(gè)常見(jiàn)的降維,探索性技術(shù)川慌,常常在量表編制或者其它變量較多數(shù)據(jù)集分析的時(shí)候會(huì)用到,今天給大家寫寫R語(yǔ)言中如何快速高效的進(jìn)行PCA和可視化硝逢。
數(shù)據(jù)介紹及PCA
今天用R中自帶的數(shù)據(jù)集mtcars币叹,這個(gè)數(shù)據(jù)集只有32個(gè)觀測(cè)润歉,但是有11個(gè)變量,太多了颈抚,我們就做PCA選個(gè)主成分出來(lái):
這兒大家得注意主成分分析只能應(yīng)用于數(shù)值變量踩衩,而且變量必須標(biāo)準(zhǔn)化
- PCA only works with numeric data
- Categorical data must be encoded as numeric data (e.g. one-hot)
- Numeric data must be scaled (otherwise your PCA will be misleading)
str(mtcars)
可以看到我們的數(shù)據(jù)全是數(shù)值變量但是沒(méi)有標(biāo)準(zhǔn)化,所以我們?cè)谧鯬CA的時(shí)候記得要將它標(biāo)準(zhǔn)化一波贩汉,很簡(jiǎn)單驱富,只要設(shè)置scale的參數(shù)為真就行:
mtcars.pca <- prcomp(mtcars, center = TRUE,scale. = TRUE)
summary(mtcars.pca)
上面的代碼就實(shí)現(xiàn)了整個(gè)數(shù)據(jù)的主成分分析,并且輸出了我們的每個(gè)主成分解釋的方法比匹舞。
很多時(shí)候褐鸥,我們還需要畫一個(gè)碎石圖來(lái)決定保留多少個(gè)主成分,這個(gè)也非常容易實(shí)現(xiàn):
screeplot(mtcars.pca,type = 'lines')
主成分可視化
最有意思的就是我們可以很方便地畫出來(lái)變量和主成分之間的關(guān)系:
library(ggbiplot)
ggbiplot(mtcars.pca)
[圖片上傳失敗...(image-61dd3-1612180472184)]
在上圖中赐稽,所有的主成分都是從圖中心發(fā)出的叫榕,我們可以看到hp,cyl,disp,wt這些變量是對(duì)主成分1貢獻(xiàn)較大的姊舵,到這兒其實(shí)還不夠晰绎,我們這個(gè)數(shù)據(jù)集是關(guān)于車車的,我們還想看那些車車在哪些變量上表現(xiàn)較好括丁,
這個(gè)時(shí)候我們可以給圖中的樣本點(diǎn)加上標(biāo)簽:
ggbiplot(mtcars.pca, labels=rownames(mtcars))
這樣你就可以看到那些樣本點(diǎn)的特征最相近荞下。
還有
你可以給你的樣本點(diǎn)分組展示,比如在我的例子中史飞,有的車車是日本的尖昏,有的是美國(guó)的,有的是歐洲的祸憋,我想看看不同的國(guó)家的車車在每個(gè)變量每個(gè)主成分上表現(xiàn)如何:
mtcars.country <- c(rep("Japan", 3), rep("US",4), rep("Europe", 7),rep("US",3), "Europe", rep("Japan", 3), rep("US",4), rep("Europe", 3), "US", rep("Europe", 3))
ggbiplot(mtcars.pca,ellipse=TRUE, labels=rownames(mtcars), groups=mtcars.country)
可以看到会宪,有了組別變量之后,出圖時(shí)會(huì)自動(dòng)的加上圈圈和圖例
有了圈圈我們就可以發(fā)現(xiàn)蚯窥,美國(guó)車車的hp,cyl,disp,wt這幾個(gè)特征比較猛掸鹅!美國(guó)車車和日本車車的差異還是比較大的。
當(dāng)然了拦赠,上面的分析只是我在第一組成分和第二主成分的視角下得到的巍沙。、
我想看別別的主成分荷鼠,比如PC3,PC4行不句携?
安排:
ggbiplot(mtcars.pca,ellipse=TRUE,choices=c(3,4), labels=rownames(mtcars), groups=mtcars.country)
此時(shí),我們發(fā)現(xiàn)亂了套了允乐,因?yàn)?矮嫉,4主成分本來(lái)解釋的變異就不大了削咆,所以三個(gè)國(guó)家車車在這個(gè)圖中表現(xiàn)不出來(lái)差異也就正常了,所以通常默認(rèn)我們會(huì)在1蠢笋,2主成分視角下展示我們的數(shù)據(jù)拨齐。
小結(jié)
今天給大家寫了主成分分析的做法和可視化,感謝大家耐心看完昨寞,自己的文章都寫的很細(xì)瞻惋,代碼都在原文中,希望大家都可以自己做一做援岩,如果對(duì)您有用請(qǐng)先收藏歼狼,再點(diǎn)贊轉(zhuǎn)發(fā)。
也歡迎大家的意見(jiàn)和建議享怀。
如果你是一個(gè)大學(xué)本科生或研究生羽峰,如果你正在因?yàn)槟愕慕y(tǒng)計(jì)作業(yè)、數(shù)據(jù)分析凹蜈、論文限寞、報(bào)告、考試等發(fā)愁仰坦,如果你在使用SPSS,R,Python计雌,Mplus, Excel中遇到任何問(wèn)題悄晃,都可以聯(lián)系我。因?yàn)槲铱梢越o您提供最好的凿滤,最詳細(xì)和耐心的數(shù)據(jù)分析服務(wù)妈橄。
如果你對(duì)Z檢驗(yàn),t檢驗(yàn)翁脆,方差分析眷蚓,多元方差分析,回歸反番,卡方檢驗(yàn)沙热,相關(guān),多水平模型罢缸,結(jié)構(gòu)方程模型篙贸,中介調(diào)節(jié),量表信效度等等統(tǒng)計(jì)技巧有任何問(wèn)題枫疆,請(qǐng)私信我爵川,獲取最詳細(xì)和耐心的指導(dǎo)。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧息楔,打工人寝贡!
往期內(nèi)容
R數(shù)據(jù)分析:如何計(jì)算問(wèn)卷的組合信度扒披,實(shí)例操練
R數(shù)據(jù)分析:如何計(jì)算問(wèn)卷的聚合效度,實(shí)例操練