R语言主成分分析(PCA)实战:波士顿房价数据集案例

本文将使用R语言对波士顿房价数据集进行主成分分析(PCA),并对结果进行解读。

1. 导入数据和库

# 导入数据
library(MASS)
data(Boston)

2. 主成分分析

# 主成分分析
pcr <- prcomp(Boston[,1:13], scale = TRUE)
# 结果输出
summary(pcr)

# 碎石图
plot(pcr)

3. 选择主成分并绘制载荷图

# 选择前2个主成分
pcr2 <- pcr$x[,1:2]
# 载荷图
loadings <- pcr$rotation[,1:2]
biplot(pcr, scale = 0)

4. 主成分命名

# 主成分命名
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'

5. 绘制主成分得分图

# 观测值的主成分得分图
plot(pcr2, col = Boston$medv)

6. 综合评估和排序

# 综合评估和排序
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

7. 主成分回归模型

# 主成分回归模型
pcr_lm <- lm(PC1 ~ ., data = as.data.frame(pcr$x))
# 回归方程输出
summary(pcr_lm)

8. 缺失值处理

如果在进行主成分分析时出现碎石图不对等问题,可能是因为数据中存在缺失值导致的。

# 查看数据中是否存在缺失值
sum(is.na(Boston))

# 将缺失值替换为均值
Boston[is.na(Boston)] <- sapply(Boston, mean, na.rm = TRUE)

# 进行主成分分析
pcr <- prcomp(Boston[,1:13], scale = TRUE)

重新运行主成分分析和碎石图代码,可以得到正确的结果。

总结

本教程使用R语言对波士顿房价数据集进行主成分分析(PCA),并对结果进行解读。教程中还涵盖了数据预处理、缺失值处理、碎石图分析、载荷图分析、主成分得分图绘制、主成分回归模型构建等内容。

R语言主成分分析(PCA)实战:波士顿房价数据集案例

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

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