北京市空气质量预测数据分析
该文档部分解读了建模结果,完整的分析报告请见附件。
主代码文件为 Beijing_air_quality_prediction.ipynb
,数据文件为 Beijing_air_quality_data.csv
。
其余.py文件作为数据处理、分析、可视化等辅助函数文件。
题目1
结果分析:
折线图
从图中标准化后的空气质量指标小时均值变化趋势可见,各指标在 24 小时时间维度上呈现一定周期性特征: 各指标在每日相同时段表现出规律性波动,如部分指标于特定小时(如 19—23 时)出现标准化值峰值,在其他小时(如 4—5 时)形成谷值,且 “波峰 — 波谷” 的波动模式在每日 24 小时周期内稳定重复。这种以自然日为单位、在相同日时段内可重复的规律性变化,一定程度上体现了空气质量指标小时均值以 24 小时为周期的周期性特征,反映出其变化遵循固定时间循环规律。
ACF图
-
在 O3 ACF 图中,自相关系数呈现规律性波动:滞后 24 小时、48 小时、72 小时处多次显著超出置信区间(阴影区域),形成明显峰值,且峰值间隔固定为 24 小时。这直接表明 O3 指标的小时均值变化存在 24 小时周期性,即数据以自然日为周期循环波动,符合 “日周期” 特征。
-
NO2 ACF 图中,自相关系数出现一定起伏波动,尤其在滞后 12 小时、24 小时等间隔处,呈现相对规律的波动趋势。尽管规律性弱于 O3,仍暗示 NO2 指标可能存在周期性,需结合其他分析进一步验证。
-
AQI、PM2.5、PM10、CO、SO2 的 ACF 图中,自相关系数随滞后小时数增加逐渐衰减,未出现如 O3 般规律的周期性峰值,也无固定间隔的显著波动,说明这些指标在 72 小时滞后范围内,周期性特征不明显。
题目2
热力图解读
热力图显示了各指标之间的相关性。颜色越深表示相关性越强,颜色越浅表示相关性越弱,偏红色表示正相关,偏蓝色表示负相关。
- 图形大致可分为四个部分:
- 左上角的颜色较深的矩形反映了AQI与数个观测指标(污染物)的关系。
- 右上侧有一些颜色较深的区块,可能反映了污染物(如CO、NO2、O3)浓度与环境因素(如温度、湿度、风速)的相关关系。
- 中心与中心正右侧的深色区块反映温度与气压间的强负相关关系。
- 右下角的颜色较深的矩形主要反映各环境指标间的相关关系。
- 空气质量指数(AQI)与PM2.5、PM10有很强正相关关系,与CO、NO2、SO2呈现较强正相关关系。同时跟VV(水平能见度)有较强负相关关系。后者的原因显然。经过查阅资料,前者数个指标本就为AQI的计算所考虑的指标,而同为考虑指标的O3相关性低,不知道为什么,需要进一步调研。
- 小时(hour)与O3等指标呈现一定正相关关系,这或许反映O3浓度变化具有日周期。且与U(地面高度2米处的相对湿度)等指标呈现一定负相关关系。
主成分分析解读
- 检验指标:
- KMO值: 0.762>0.7。
- 巴赫利特检验卡方值: 90424.712, p值: 0.0<0.001,显著。
- 提取5个特征值大于1的因子作为主成分,累积方差贡献率为78.89%。
- 检验效果较好,说明数据适合主成分分析降维。
- 旋转载荷矩阵解读:
- Factor1(温度气压因子)
- 高载荷变量: Tn (-0.963), T (-0.958), Tx (-0.954), P (0.924), Po (0.921), Td (-0.898)
- 物理意义: 主要反映温度(T, Tn, Tx)和气压(P, Po)相关指标的强负相关关系(温度越高,气压越低)。
- Factor2(颗粒物污染因子)
- 高载荷变量: AQI (0.967), PM10 (0.933), PM2.5 (0.879)
- 物理意义: 直接反映空气质量指数(AQI)和颗粒物污染(PM10, PM2.5),空气质量问题代表颗粒物污染主导。
- Factor3(大气条件与污染物因子)
- 高载荷变量: U (-0.824), Ff (0.772), NO2 (-0.728), CO (-0.695), VV (0.667)
- 物理意义: 风速增加(Ff)与相对湿度(U)负相关,与能见度(VV)正相关。 同时风速增加(Ff)与污染物浓度(NO2、CO负载荷)的负相关关系可能暗示了风对大气污染物的扩散作用。
- Factor4(因子)
- 高载荷变量: Pa (-0.747), SO2 (0.694)
- 物理意义:难以解释。
- Factor5(降水因子)
- 高载荷变量: RRR (0.819), tR (0.512)
- 物理意义: 直接反映降水量(RRR)和降水时间(tR)。
- 交叉载荷与特殊变量
- O3(臭氧):在Factor1和Factor3上均有载荷,可能需结合气象与化学机制进一步分析。
- VV(能见度):受Factor3(风速)和Factor2(颗粒物)共同影响,符合实际物理规律。
- Factor1(温度气压因子)
题目3
SARIMA模型解读
-
模型结构选择
- 最终参数:(p,d,q)(P,D,Q,s) = (1,1,1)(1,1,1,24)
- 参数选择依据:
- 通过ACF/PACF图观察24小时周期特征
- 使用网格搜索确定最优参数组合
- 季节性分量设置为24小时周期(s=24)
-
特征工程
- 仅使用AQI单变量时间序列
- 通过差分处理消除非平稳性:
- 一阶常规差分(d=1)
- 一阶季节性差分(D=1)
-
参数调优
- 使用AIC/BIC信息准则评估模型
- 通过auto_arima自动搜索参数空间
- 最终选择AIC最低的候选模型
-
评估指标
- RMSE: 11.893
- R-squared: 0.932
- MAE: 7.744
- 相比XGBoost模型预测精度相近,但保持时间序列特性
-
预测结果可视化
-
残差分析
- Ljung-Box检验p值=0.32(>0.05)
- 残差ACF图无明显自相关
- 符合白噪声假设,说明模型已充分提取序列信息
XGBOOST模型解读
- 该模型使用历史AQI数据,并进行周期性编码和滞后特征构建(3小时粒度的滞后特征(最多7天)),作为特征工程。
- 每次预测均采用该时间点以前的真实数据,即每次预测均为单步预测。
- 使用随机搜索法参数调优。
- 评估指标:
- RMSE: 11.815
- R-squared: 0.929
- MAE: 7.722
- 预测图:
- 重要特征:
AQI_lag_1最为重要,即该时刻的AQI主要由前1个观测时刻决定。AQI_lag_21也较为重要。day_of_week显示影响较小,但不是完全没有。
- 模型比较:与SARIMA模型相近,在单步预测的准确度上几乎不相上下。两个模型在时间特征上的把握各有优势,比如SARIMA模型在时间序列特征上的把握较好,而XGBoost模型更能建立时间特征以外的因素对AQI的影响关系。但在同样只使用时间特征并且一次只往下预测一步的情况下,XGBOOST稍逊于SARIMA,后者预测更加稳健,而前者容易出现峰值偏高,谷值偏低的情况。
- 其实也做了利用递归直接预测一整个月的,预测结果在2天以内尚可,而后趋于平缓,具体效果看图就很明了了。