竞赛信息及数据来源:
https://www.pkbigdata.com/common/cmpt/北京PM2.5浓度回归分析训练赛_竞赛信息.html
# 读入数据
data <- read.csv('pm25_train.csv',stringsAsFactors = F)
# cbwd四个分类会导致完全共线,所以删除一个
data <- data[,-13]
# 数据描述性统计
str(data)
summary(data)
# y的分布
hist(data$pm2.5)
# x与y散点图
par(mfrow=c(3,4))
for(i in c(2,4:12)){
plot(data$pm2.5~data[,i],xlab=colnames(data)[i],main=paste0('pm2.5 and ',colnames(data)[i]))
}
# 相关性分析
corr <- cor(data[,-1])
corr
# 相关性可视化,可以看出TEMP和DEMP,PRES三者之间相关性较高
library(corrplot)
par(mfrow=c(1,1))
corrplot(corr = corr)
# 多重共线性检验,29.3533<100,说明共线性程度小
kappa(corr,exact=TRUE)
# 多元线性回归模型建立
# 画直方图发现pm2.5是偏态分布,所以先对pm2.5取对数再进行回归,pm2.5=0时,对数取0
data