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