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)

通过上述步骤,我们完成了对波士顿房价数据集的主成分分析,并得到了各观测值的综合评分排序。这有助于我们更好地理解各个变量之间的关系,并为后续的预测和决策提供参考。

R语言主成分分析:从数据导入到模型评估

原文地址: https://www.cveoy.top/t/topic/oq5D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录