R语言主成分分析:从数据导入到模型评估
R语言主成分分析:从数据导入到模型评估
本文使用R语言对波士顿房价数据集进行主成分分析,涵盖数据导入、主成分提取、碎石图绘制、载荷图分析、主成分得分图展示、主成分回归模型建立等步骤,并最终对各观测值的综合评分进行排序。
1. 数据导入与主成分提取
# 导入数据
library(MASS)
data(Boston)
# 主成分分析
pcr <- prcomp(Boston[,1:13], scale = TRUE)
# 结果输出
summary(pcr)
2. 碎石图与载荷图
# 碎石图
plot(pcr)
# 选择前2个主成分
pcr2 <- pcr$x[,1:2]
# 载荷图
loadings <- pcr$rotation[,1:2]
biplot(pcr, scale = 0)
3. 主成分命名
# 主成分命名
names(pcr$rotation)[1] <- 'COMMUNITY'
names(pcr$rotation)[2] <- 'LOCATION'
names(pcr$rotation)[3] <- 'LAND_USE'
names(pcr$rotation)[4] <- 'PROPERTY_TAX'
names(pcr$rotation)[5] <- 'RIVER'
names(pcr$rotation)[6] <- 'SCHOOL_RATIO'
names(pcr$rotation)[7] <- 'AIR_POLLUTION'
names(pcr$rotation)[8] <- 'MINORITY_STATUS'
names(pcr$rotation)[9] <- 'CRIME_RATE'
names(pcr$rotation)[10] <- 'MEDIAN_VALUE'
names(pcr$rotation)[11] <- 'NO_OF_ROOMS'
names(pcr$rotation)[12] <- 'DISTANCE_TO_CENTRE'
names(pcr$rotation)[13] <- 'HIGHWAY_ACCESS'
4. 主成分得分图
# 观测值的主成分得分图
plot(pcr2, col = Boston$medv)
5. 综合评估与排序
# 综合评估和排序
pcr_score <- predict(pcr, newdata = Boston[,1:13])
Boston_score <- data.frame(medv = Boston$medv, PC1 =pcr_score[,1])
rank <- Boston_score[order(-Boston_score$PC1),]
rank
6. 主成分贡献率图
# 主成分贡献率图
plot(100*pcr$sdev^2/sum(pcr$sdev^2), xlab='Principal Component',
ylab='Percent Variance Explained', ylim=c(0,60), type='b')
7. 主成分回归模型
# 主成分回归模型
pcr_lm <- lm(PC1 ~ ., data = as.data.frame(pcr$x))
# 回归方程输出
summary(pcr_lm)
通过上述步骤,我们完成了对波士顿房价数据集的主成分分析,并得到了各观测值的综合评分排序。这有助于我们更好地理解各个变量之间的关系,并为后续的预测和决策提供参考。
原文地址: https://www.cveoy.top/t/topic/oq5D 著作权归作者所有。请勿转载和采集!