原文鏈接:原文出處:拓端數據部落公眾號
我們將使用葡萄酒數據集進行主成分分析。
數據
數據包含177個樣本和13個變量的數據框;包含類標簽。這些數據是對生長在意大利同一地區但來自三個不同栽培品種的葡萄酒進行化學分析的結果:內比奧羅、巴貝拉和格里格諾葡萄。來自內比奧羅葡萄的葡萄酒被稱為巴羅洛。
這些數據包含在三種類型的葡萄酒中各自發現的幾種成分的數量。
# 看一下數據
head(no)
輸出
轉換和標準化數據
對數轉換和標準化用r軟件做主成分分析,將所有變量設置在同一尺度上。
# 對數轉換
# 標準化
head()
主成分分析(PCA)
使用奇異值分解算法進行主成分分析
(, =FALSE)
(PCA)
基本圖形(默認設置)
帶有基礎圖形的主成分得分和載荷圖
plot([,1:2], # x和y數據
pch=21, # 點形狀
cex=1.5, # 點的大小
("", # 的位置
=(vint), # 圖例顯示
plot([,1:2], # x和y數據
pch=21, # 點的形狀
text([,1:2], # 設置標簽的位置
此外,我們還可以在分數圖中的組別上添加95%的置信度橢圓。
置信度橢圓圖函數
## 橢圓曲線圖
elev=0.95, # 橢圓概率水平
pcol=NULL, # 手工添加顏色,必須滿足長度的因素
=1, # 點大小
ppch=21, # 點類型,必須滿足因素的長度
=2, # 圖例字體大小
=2, # 圖例點尺寸
## 設定因子水平
if(is.(factr) {
f
} else {
f
}
## 獲取橢圓的數據
edf
(LV1, LV2, =elev, =TRUE, draw=FALSE) #從()函數中按因子水平獲取置信度橢圓點
})
## 獲取X和Y數據的范圍
## 為圖塊設置顏色
if(is.null(pcol) != TRUE) { # 如果顏色是由用戶提供的
pgcol
# 繪圖圖形
plot(x,y, type="n", xlab="", ylab="", main=""
(h=0, v=0, col="gray", lty=2) #在0添加線條
## 添加點、橢圓用r軟件做主成分分析,并確定圖例的顏色
## 圖例
(x=, =(f), pch=,
## 使用()函數的PCA輸出的軸圖示
基礎圖形
繪制主成分得分圖,使用基本默認值繪制載荷圖
plot([,1], # X軸的數據
[,2], # Y軸的數據
vint, # 有類的因素
pcol=c(), # 用于繪圖的顏色(必須與因素的數量相匹配)
=FALSE, #點的邊框是黑色的?
=1.5, # 點的大小
ppch=c(21:23), # 點的形狀(必須與因子的數量相匹配)
=" right", # 圖例的位置
=1.5, # 圖例文字大小
=1.5, # 圖例點的大小
=1.5, # 設置軸的文字大小
=1.5 # 設置軸線尺寸
)
title(xlab=[["PC1"]], # PC1上解釋的方差百分比
ylab=[["PC2"]], # PC2解釋的方差百分比
main="", # 標題
cex.lab=1.5, # 標簽文字的大小
cex.main=1.5 # 標題文字的大小
plot([,1:2], # x和y數據
pch=21, # 點的形狀
cex=1.5, # 點的大小
# type="n", # 不繪制點數
axes=FALSE, # 不打印坐標軸
xlab="", # 刪除x標簽
ylab="" # 刪除y標簽
)
([,1:2], #設置標簽的位置
=(), # 輸出標簽
cex=1.5 # 設置標簽的大小
) # 將嘗試將文本放在點的周圍
axis(1, # 顯示x軸
cex.axis=1.5, # 設置文本的大小
lwd=1.5 # 設置軸線的大小
)
axis(2, # 顯示y軸
las=2, # 參數設置文本的方向,2是垂直的
cex.axis=1.5, # 設置文本的大小
lwd=1.5 # 設置軸線的大小
)
title(xlab=[["PC1"]], # PC1所解釋的方差百分比
ylab=[["PC2"]], # PC2解釋的方差百分比
cex.lab=1.5, # 標簽文字的大小
cex.main=1.5 # 標題文字的大小
)
最受歡迎的見解
1.偏最小二乘回歸(PLSR)和主成分回歸(PCR)
2.R語言高維數據的主成分pca、 t-SNE算法降維與可視化分析
3.主成分分析(PCA)基本原理及分析實例
4.基于R語言實現LASSO回歸分析
5.使用LASSO回歸預測股票收益數據分析
6.r語言中對lasso回歸,ridge嶺回歸和-net模型
7.r語言中的偏最小二乘回歸pls-da數據分析
8.r語言中的偏最小二乘pls回歸算法
9.R語言線性判別分析(LDA),二次判別分析(QDA)和正則判別分析(RDA)