【R语言】PCA主成分分析
使用R语言手动实现PCA主成分分析计算,通过计算协方差矩阵计算出数据的主成分得分,根据的分最高的特征进行得分图的绘制
# 读取数据
raw_data <- read.csv("R可视化/data.csv", header = TRUE, fileEncoding = "GBK")
new_data <- raw_data[, -1]
# 标准化数据
standardized_data <- scale(new_data)
# 计算协方差矩阵
cov_matrix <- cov(standardized_data)
# 计算特征值和特征向量
eigen_result <- eigen(cov_matrix)
eigenvalues <- eigen_result$values
eigenvectors <- eigen_result$vectors
# 选择前两个主成分的特征向量
principal_components <- eigenvectors[, 1:2]
# 计算主成分得分
scores <- as.matrix(standardized_data) %*% principal_components
# 绘制得分图
plot(scores[, 1], scores[, 2],
xlab = 'Comp.1', ylab = 'Comp.2', main = '主成分得分图')
abline(h = 0, lty = 3)
abline(v = 0, lty = 3)
# 在每个点上添加标签
text(scores[, 1], scores[, 2], labels = raw_data[, 1], pos = NULL)
# 输出主成分得分
comp_score <- data.frame(scores)
rownames(comp_score) <- rownames(raw_data)
print("主成分得分:")
print(head(comp_score))
运行结果