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.
主成分分析是一個常見的降維,探索性技術,常常在量表編制或者其它變量較多數據集分析的時候會用到,今天給大家寫寫R語言中如何快速高效的進行PCA和可視化。
數據介紹及PCA今天用R中自帶的數據集mtcars,這個數據集隻有32個觀測,但是有11個變量,太多了,我們就做PCA選個主成分出來:
這兒大家得注意主成分分析隻能應用于數值變量,而且變量必須标準化
str(mtcars)
可以看到我們的數據全是數值變量但是沒有标準化,所以我們在做PCA的時候記得要将它标準化一波,很簡單,隻要設置scale的參數為真就行:
mtcars.pca <- prcomp(mtcars, center = TRUE,scale. = TRUE)
summary(mtcars.pca)
上面的代碼就實現了整個數據的主成分分析,并且輸出了我們的每個主成分解釋的方法比。
很多時候,我們還需要畫一個碎石圖來決定保留多少個主成分,這個也非常容易實現:
screeplot(mtcars.pca,type = 'lines')
最有意思的就是我們可以很方便地畫出來變量和主成分之間的關系:
library(ggbiplot)
ggbiplot(mtcars.pca)
在上圖中,所有的主成分都是從圖中心發出的,我們可以看到hp,cyl,disp,wt這些變量是對主成分1貢獻較大的,到這兒其實還不夠,我們這個數據集是關于車車的,我們還想看那些車車在哪些變量上表現較好,
這個時候我們可以給圖中的樣本點加上标簽:
ggbiplot(mtcars.pca, labels=rownames(mtcars))
這樣你就可以看到那些樣本點的特征最相近。
還有
你可以給你的樣本點分組展示,比如在我的例子中,有的車車是日本的,有的是美國的,有的是歐洲的,我想看看不同的國家的車車在每個變量每個主成分上表現如何:
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)
可以看到,有了組别變量之後,出圖時會自動的加上圈圈和圖例
有了圈圈我們就可以發現,美國車車的hp,cyl,disp,wt這幾個特征比較猛!美國車車和日本車車的差異還是比較大的。
當然了,上面的分析隻是我在第一組成分和第二主成分的視角下得到的。、
我想看别别的主成分,比如PC3,PC4行不?
安排:
ggbiplot(mtcars.pca,ellipse=TRUE,choices=c(3,4), labels=rownames(mtcars), groups=mtcars.country)
此時,我們發現亂了套了,因為3,4主成分本來解釋的變異就不大了,所以三個國家車車在這個圖中表現不出來差異也就正常了,所以通常默認我們會在1,2主成分視角下展示我們的數據。
小結今天給大家寫了主成分分析的做法和可視化,感謝大家耐心看完,自己的文章都寫的很細,代碼都在原文中,希望大家都可以自己做一做,如果對您有用請先收藏,再點贊轉發。
也歡迎大家的意見和建議。
如果你是一個大學本科生或研究生,如果你正在因為你的統計作業、數據分析、論文、報告、考試等發愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何問題,都可以聯系我。因為我可以給您提供最好的,最詳細和耐心的數據分析服務。
如果你對Z檢驗,t檢驗,方差分析,多元方差分析,回歸,卡方檢驗,相關,多水平模型,結構方程模型,中介調節,量表信效度等等統計技巧有任何問題,請私信我,獲取最詳細和耐心的指導。
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...
加油吧,打工人!
往期内容R數據分析:如何計算問卷的組合信度,實例操練
R數據分析:如何計算問卷的聚合效度,實例操練
R數據分析:用R語言做潛類别分析LCA
R數據分析:中介作用與調節作用的分析與解釋
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!