我们正和一位朋友讨论如何在R软件中用GLM模型处理全国的气候数据。
本文获取了全国的2021年全国的气候数据。
采样时间:2021年1月1号~2021年12月31号 采样地点:全国各地。
本次调查搜集了2021年全国不同地区的风向、降雨量、风速、风速变化、最大风速、最大降雨量、闪电概率等数据。
并对不同变量之间的相关性进行了调查,对国家数据预测的错误率进行了GLM模型拟合。
读取数据
library(car)
library(MuMIn)
head(data)
读取因变量
numberFaults=data$numblts
head(data1)
相关分析
调查的出的各指标数据用R软件进行处理并且用箱图进行对比显示。
部分指标的箱线图
随时关注您喜欢的主题
查看各变量之间的相关系数
有显著的相关关系。从变量相关关系图和矩阵,可以看到temperatureMin和temperatureMax,windChillMin,windChillMax,以及gustSpeed和windSpeed之间,rainfall和changeInRainfall,以及lightningRisk和lightningCategory之间都有教明显的线性相关关系。yearDay和windChill之间也有一定的相关关系。
glm 线性回归模型
summary(glm.po)
检验是否存在多重共线性问题
kappa(cor(data[,c(1:15,17:20)]), exact=T)
## [1] 3.020456e+18
判断多重共线性变量
进一步模型优化
step(glm.po2)
summary(glm.step)
vif
从模型中变量的VIF值来看,大多数变量之间不存在较强的多重共线性关系。 从残差拟合图来看,大部分样本拟合值分布在0周围,说明拟合结果较理想。981,2331和524号样本可能为异常点。从正态分布qq图来看,大部分点分布在图中直线附近。说明样本点服从正态分布。同样,拟合值的标准残差也分布在红线周围,说明拟合效果较好。同样,大部分样本的cook’ distance距离在正常范围内,392,624,622号样本的cook’ distance较大,可能会对模型产生较大的影响。
全子集回归来选出最优的模型
全子集回归,即基于全模型获得可能的模型子集,并根据AIC值等对子集排序以从中获取最优子集。
重新拟合模型
优化模型
avg(ms1, subset = delta < 10,fit=T,rank = "AIC")
残差图
plot(pre-numberFaults)
计算R-squre值,查看模型拟合情况
Rsquare=ssr/sst
从逻辑回归结果来看,模型中部分自变量对因变量的影响较为明显,达到了0.01的显著性水平,具有一定的理论意义。然而从AIC的值来看,达到了4024.881,数值较大,说明模型的拟合度较差,有进一步改进的空间。 一般认为计算条件数kappa(X),k<100,说明共线性程度小,如果1001000,存在严重的多重共线性。 从结果来看,kappa值远远大于1000,因此判断该模型存在严重的共线性问题,即线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。changintemp,changinrainfall,windspeedmin,lightningcategory ,rainfallMax之间存在较高的相关关系会对模型的拟合失真并且难以用以估计和预测,因此,删掉这些变量后重新对模型进行拟合。 删除部分共线性程度高的变量后可以看到模型的AIC降低了,因此,模型的拟合程度提高了。 大部分样本的cook’ distance距离在正常范围内,392,624,622号样本的cook’ distance较大,可能会对模型产生较大的影响。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!