使用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$valueseigenvectors <- 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))
运行结果