文章目录
摘要
本周阅读的文献中提出了一种基于趋势分量和随机增量特征的ARIMA模型与K-means聚类模型相结合的水质预测方法,将ARIMA模型与聚类模型相结合,可以弥补单一ARIMA模型不能考虑具有随机变化特征数据的不足。通过聚类分析发现可能存在的影响因素,提高对于具有随机特征的数据预测精度。文献中采用自AR模型、MA模型和差分法结合的ARIMA模型能够对数据本身的历史信息来预测未来信息和k-means聚类算法、能够把相似的数据样本聚到一组。同时本文利用阳朔站点检测的水流样本数据使用该方法进行模拟预测。
Abstract
The literature read this week proposes a water quality prediction method that combines an ARIMA model based on trend components and random increment characteristics with a K-means clustering model. By integrating the ARIMA model with the clustering model, it can compensate for the insufficiency of a single ARIMA model in considering data with trend characteristics. Through cluster analysis, potential influencing factors can be identified, which improves the prediction accuracy for data with random characteristics. The literature employs an ARIMA model that combines autoregressive (AR) models, moving average (MA) models, and differencing, which can predict future information based on the historical information of the data itself. The K-means clustering algorithm is capable of grouping similar data samples together. Finally, the paper uses the water flow sample data detected at the Yangshuo station to simulate predictions using this method.
1 文献阅读
文献题目:Application of Time Serial Model in Water Quality Predicting
该文献提出了一种结合ARIMA和聚类模型的水质预测方法。以某流域水质监测数据为样本,选取水质TP指数作为预测对象。首先对样本数据进行清洗、平稳性分析、白噪声分析。其次,根据BIC原理选取合适的参数,利用ARIMA方法获得趋势分量特征,进行水质预测;再采用k -means聚类方法分析监测水域降水与TP指数的关系,计算降水对水质变化的随机增量特征。最后,结合趋势分量特征和随机增量特征,计算水质预测结果。
现有问题: 传统的时间序列ARIMA模型对具有趋势特征的数据预测效果较好,但对具有随机特征的数据预测效果较差。
提出办法: 针对水质数据变化的趋势性和随机性,将ARIMA
模型与聚类模型相结合,提出了一种基于趋势分量和随机增量特征的ARIMA模型与聚类模型相结合的水质预测方法。
1.1 相关工作
-
时间序列
用ARIMA模型拟合时间序列数据有几个基本步骤,主要包括构造数据的时间序列图、执行适当的数据转换、模型排序、参数估计、模型诊断和模型选择 -
k-means 聚类
k -means算法是一种简单的迭代方法,用于将给定的数据集划分为用户指定数量的k个聚类;每个聚类中的数据特征在某种意义上是相似的。
k -means将整个样本集分成k个组,同一组中样本之间的距离最小;常用的计算距离的方法是欧拉距离:
假设 x = ( x 1 , x 2 , . . . . . x n ) 和 y = ( y 1 , y 2 , . . . y n ) x=(x_1,x_2,.....x_n)和y=(y_1,y_2,...y_n) x=(x1,x2,.....xn)和y=(y1,y2,...yn)为n维向量。
d = ∑ i = 1 n ∣ x i − y i ∣ 2 d=\sqrt{\sum_{i=1}^n|x_i-y_i|^2} d=i=1∑n∣xi−yi∣2
- 首先需要选择k个质心,这些质心作为每组的中心点。
- 将样本集中的每个特征值分类到离该特征值距离最小的质心所在的组中。计算并分类完所有特征值后,完成k个聚类分组。然后再计算每一组的质心,也就是计算该组中所有特征值数据的平均值。
- 当每一组的质心发生变化时,重新计算质心,再对特征值进行计算和分类
- 重复第2步第3步,直至每个组的质心都不发生改变
- 评价指标
使用MAE、MSE和MAPE检验模型的预测精度;其中 z z z为原始序列值, z j z_j zj为预测值,n为样本数
-
MAE是绝对误差的平均值,能较好地反映预测误差值的实际情况。
M A E = 1 n ∑ j = 1 n ∣ z − z j ∣ MAE=\frac{1}{n}\sum_{j=1}^n|z-z_j| MAE=n1j=1∑n∣z−zj∣ -
MSE是均方误差,是指参数预测值与实际值之差的平方的期望值。MSE评估数据的波动。MSE越小,模型的预测精度越高。
M S E = 1 n ∑ j = 1 n ( z − z j ) 2 MSE=\frac{1}{n}\sum_{j=1}^n(z-z_j)^2 MSE=n1j=1∑n(z−zj)2
- MAPE是平均绝对百分比误差。MAPE值越小,模型的预测精度越高。
M A P E = 100 % n ∑ j = 1 n ∣ z − z j z ∣ MAPE=\frac{100\%}{n}\sum_{j=1}^n|\frac{z-z_j}z| MAPE=n100%j=1∑n∣zz−zj∣
1.2 数据集
数据通过水质监测平台获取某流域2019年1月1日至2020年12月31日的水质数据。共有16876行数据,主要有水温、pH、溶解氧、电导率、浊度、高锰酸盐指数、氨氮、TP和总氮9项指标。其中,高锰酸盐指标、氨氮、总磷、总氮每4 h采集一次,其他5项指标每小时采集一次。
以某流域水质监测数据为样本,选取水质总磷(TP)指数作为预测对象。
1.3 实验步骤
- 首先对数据进行清洗,平稳性检验、白噪声检验分析
- 根据贝叶斯信息准则(BIC)热图确定合适的参数p,q值;利用ARIMA方法获得趋势分量特征,进行水质预测;
- 采用k均值聚类方法分析监测水域降水与TP指数的关系,计算降水对水质变化的随机增量特征。
- 结合趋势分量特征和随机增量特征,计算水质预测结果,比较ARIMA模型与ARIMA结合聚类模型两种方法的预测结果。
1.4 实验结果
对TP数据进行聚类分析如图所示,整体数据范围在0.02-0.035之间,有少量数据分布在这个范围之外,有少量数据分布在这个范围之外。故分析监测水域附近降雨对TP指数的影响。通过相关分析可以确定降雨量增量与TP增量之间存在很强的相关性。
只使用ARIMA模型进行预测结果
ARIMA模型结合聚类模型的预测效果
从评价指标也可以看出,利用ARIMA模型预测TP指数,其预测精度不高。这是因为ARIMA模型只提取了水质变化的趋势分量特征,而不能提取随机变化特征。与ARIMA水质预测方法相比,ARIMA结合聚类的方法具有更高的精度,其平均绝对误差(MAE)、均方误差(MSE)和平均绝对百分比误差(MAPE)分别降低了44.6%、56.8%和45.8%
1.5 ARIMA模型python实现
数据集:阳朔站点水流数据2020-01-01 00_2020-12-31。
平稳性检验
from statsmodels.tsa.stattools import adfuller
def test_stationarity(timeseries