ML - 时间序列ARIMA

本文介绍了时间序列分析中的ARIMA模型,包括平稳性、差分、AR、MA、ARMA概念。讨论了ARIMA模型的参数确定,如ACF、PACF、拖尾和截尾,以及AIC和BIC准则。最后提到了模型残差检验的重要性,确保模型稳定性和预测准确性。
摘要由CSDN通过智能技术生成

平稳性

平稳性要求经由样本时间序列所拟合的曲线,在未来的一段期间内仍能顺着现有的形态“惯性”地 延续下去。平稳性要求序列的均值和方差不发生明显的变化。

严平稳

分布不随时间的改变而改变,例如,白噪声(标准正太分布期望为0,方差为1)

弱平稳

弱平稳是通常见到的,它期望和相关系数的依赖性不发生改变。因为未来时刻的值需要过去的信息。

差分

如果时间序列不平稳,可以通过差分的方式使其变得的平稳。
差分就是时间序列在t和t-1时刻的差值

AR

描述当前值与历史值之间的关系,用变量自身的历史时间数据对自身进行预测。
p阶自回归过程的公式:
在这里插入图片描述
在这里插入图片描述
自回归模型首先需要确定一个阶数p,表示用几期的历史值来预测当前值。

自回归模型有很多的限制:

(1)自回归模型是用自身的数据进行预测

(2)时间序列数据必须具有平稳性

(3)自回归只适用于预测与自身前期相关的现象(时间序列的自相关性)。如果相关系数小于0.5,不宜采用

MA

移动平均模型MA关注的是自回归模型中误差项的累加
q阶自回归过程的公式定义
在这里插入图片描述
移动平均法能有效地消除预测中的随机波动

ARMA

自回归移动平均模型
在这里插入图片描述

ARIMA

Autoregressive Integrated Moving Average Model
将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型

ARIMA(p,d,q)
差分自回归移动平均模型
AR-自回归
MA-移动平均
p是自回归阶数
q是移动平均项数
d是将时间序列变平稳时所作的差分次数

ACF

自相关函数ACF(Autocorrelation Funcion)
有序的随即变量序列和自身相比较。
自相关函数反映了同一序列在不同时许的取值之间的相关性
在这里插入图片描述

协方差除以方差。
换句话说,就是t时刻 与 t-k时刻 的自相关系数是(自协方差 / k=0时的自协方差)
协方差衡量变量相关性是由缺点的:协方差是有量纲的,因此它的大小受随机变量本身波动范围的影响。最简单的做法就是用变量自身的波动对协方差进行标准化。相关系数便由此得来。

PACF

偏自相关系数(PACF)
计算某一个要素对另一个要素的影响或相关程度时,把其他要素的影响视为常数,即暂不考虑其他要素的影响,而单独研究那两个要素之间的相互关系的密切程度时,称为偏相关。
根据ACF求出滞后k自相关系数 ACF(k) 时,实际上得到并不是Z(t)与Z(t-k)之间单纯的相关关系。

因为Z(t)同时还会受到中间k-1个随机变量Z(t-1)、Z(t-2)、……、Z(t-k+1)的影响,而这k-1个随机变量又都和z(t-k)具有相关关系,所以自相关系数里面实际掺杂了其他变量对Z(t)与Z(t-k)的影响。

为了能单纯测度Z(t-k)对Z(t)的影响,引进偏自相关系数(PACF)的概念。

说直白点,ACF还包含了中间其他变量的影响,而偏自相关系数PACF是严格这两个变量之间的相关性。
在这里插入图片描述

ARIMA参数确定

拖尾和截尾

拖尾指序列以指数率单调递减或震荡衰减,而截尾指序列从某个时点变得非常小
拖尾
在这里插入图片描述
截尾
在这里插入图片描述

模型ACFPACF
AR(_p)拖尾p阶后截尾
MA(q)q阶后截尾拖尾
ARMA(p,q)q阶后拖尾p阶后拖尾

从序列 ACF 、PACF 的图中没有发现明显的拖尾或截尾,说明对于这样的序列,并不适合用ARIMA 模型来拟合。
通过拖尾和截尾对模型定阶,具有很强的主观性。出现很多组候选结果,可以全部遍历找最好的,也可以根据信息准则函数法,来确定模型的阶数

AIC(Akaike Information Criterion)Akaike信息量准则

在这里插入图片描述
L表示模型的极大似然函数,K表示模型的参数的个数.
目的是参数个数最小,极大似然估计最大,使整体最小。
损失函数=数据的损失+正则项的损失+λL2

BIC(Bayesian InformationCriterion)贝叶斯信息准则

在这里插入图片描述
n是样本容量
我们的诉求是AIC,BIC越小越好,那就是k越小,去选择更简单的模型

模型的残差检验

一个好的稳定的ARIMA模型的残差接近平均值为0且方差为常数的正太分布。
QQ图:线性就是正太分布

### 改进的ARIMA时间序列预测模型 #### 引入外部变量以增强预测性能 传统的ARIMA模型仅依赖于历史数据本身来进行预测,这可能无法充分捕捉到影响时间序列的所有因素。为了克服这一局限性,在某些情况下可以通过引入额外的相关变量作为输入特征来改进模型。例如,在销售量预测中加入促销活动信息;在股票价格分析里考虑宏观经济指标的影响等。 这种方法不仅提高了预测准确性,还增强了模型对于复杂现实情况下的适应能力[^1]。 ```matlab % 假设有一个包含温度和湿度的数据集用于天气预报 data = readtable('weather_data.csv'); externalVars = data(:, {'Temperature', 'Humidity'}); model = arima(0, 1, 1); fit(model, data.Sales, 'X', externalVars); % 使用附加变量训练ARIMAX模型 ``` #### 结合机器学习算法进行混合建模 除了单纯依靠统计学上的调整外,还可以探索与其他类型的预测工具相结合的可能性。比如采用集成学习中的随机森林或梯度提升树等高级方法辅助传统ARIMA框架内的残差修正工作。这种策略有助于弥补单一模型固有的缺陷并挖掘潜在模式从而获得更优的结果。 具体来说,先建立基础版ARIMA模型得到初步估计值之后再利用其他非线性的ML技术针对剩余误差部分做二次拟合处理最终形成综合解决方案。 ```python from statsmodels.tsa.arima.model import ARIMA import pandas as pd # 构造初始ARIMA模型获取预测结果及其对应的残差项 arima_model = ARIMA(endog=train_series, order=(p,d,q)) result_arima = arima_model.fit() residuals = result_arima.resid # 应用GBDT对上述所得残差继续建模 gbdt_regressor = GradientBoostingRegressor().fit(X_train, residuals) def hybrid_forecast(x_new): base_pred = result_arima.forecast(steps=1)[0] adj_factor = gbdt_regressor.predict([x_new])[0] return base_pred + adj_factor ``` #### 参数自动调优与网格搜索 手动挑选合适的(p,d,q)阶数往往耗时费力而且容易陷入局部最优解之中。因此借助计算机的强大计算资源实施自动化参数寻优过程显得尤为重要。通过定义合理的评价标准(如AIC/BIC准则),配合穷举法遍历所有可能性直至找到全局最佳配置方案为止。 此外,也可以尝试贝叶斯优化这类更加高效的黑盒函数求极值技巧进一步缩短寻找理想超参组合所需耗费的时间成本[^2]。 ```r library(forecast) auto_arima_fit <- auto.arima(training_set, stepwise = FALSE, approximation = FALSE) summary(auto_arima_fit) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值