ar_model.AutoReg 模型通过应用以下元素来估计参数
条件最大似然(CML)估计量:这是一种涉及条件对数似然函数最大化的方法,据此认为已知的参数要么由理论假设固定,要么更常见地由估计值代替(LewiseBeck,Bryman和Liao 2004)
并支持以下元素:
外源回归变量(或独立变量,即对目标变量的值有影响的变量):更具体的说,支持ARX模型(具有外源变量的自回归)。ARX模型和相关模型也可以用arima.ARIMA类和SARMAX类。
季节性效应:定义为时间序列中的系统和日历相关效应。
python 支持使用statsmodels库中的AutoReg模型进行自回归建模(statsmodels.org/stable/generated/statsmodels.tsa.ar_model.AutoReg.html),如表4.4 所总结。
可以使用这个包创建模型AutoReg,然后调用fit()函数在数据集上训练它。下面是如何将这个包应用到ts_data集中。
AutoReg支持与普通最小二乘(OLS)模型相同的协方差估计。在下面的示例中使用cov_type='HC0', 这是White的协方差估计量(#TODO)。White检验(#TODO)用于检测回归分析中的异方差误差:White检验的原假设是误差的方差相等。虽然参数估计值相同,但所有依赖于标准差的量都会改变(White 1980)。
通过使用plot_predict, 可以对预测可视化。下面给出了大量的预测,显示了模型捕捉到的字符串季节性:
最后,我们可以测试AutoReg()函数的预测能力:使用predict方法从结果实例中生成预测。默认情况下会生成静态预测,这是单步预测。生成多步预测需要使用dynamic=True。
在下面的示例代码中,将predict方法应用于ts_data集上。为训练集准备数据包括以下步骤:
1.定义训练集和测试集的开始日期。
2.过滤原始数据集,使其仅包含为训练集保留的时间段。
3.缩放时间序列,使值落在区间(0,1)内。对于这个操作,我们将使用MinMax-Scaler(). 这是一种估计量,它对每个特征分别进行缩放和转换,使其在训练集的给定范围内,例如子啊0,1之间。
对应代码:(待补充 #TODO)
4.2 移动平均
移动平均技术利用回归方法中的先前预测误差来预测下一个时间戳的未来观测值:每个未来观测值可以被认为是先前预测误差的加权移动平均。
与自回归技术一起,移动平均方法是更常规的自回归移动平均和差分自回归移动平均模型的重要元素,其呈现更复杂的随机配置。
移动平均模型与自回归模型非常相似:自回归模型代表过去观测值的线性组合,而移动平均模型代表过去误差项的组合。data scientist 通常将移动平均模型应用于时间序列数据,因为他们非常擅长通过将模型拟合到误差项来直接解释误差过程中隐藏的或不规则的模式。
4.3 自回归移动平均
自回归移动平均(ARMA)模型在时间序列建模中一直发挥着关键作用,因为它们的线性结构有助于线性预测的实质性简化(Zhang等2015)。
自回归移动平均方法由两部分组成:
自回归
移动平均模型
与自回归和移动平均模型相比,ARMA模型提供了最有效的平稳时间序列线性模型,因为它们能够用最少的参数对未知过程建模(Zhang等2015)。
特别地,ARMA模型用于根据两个多项式来描述每周平稳随机时间序列。第一个多项式用于自回归,第二个用于移动平均。这种方法通常被称为ARMA(p,q)模型,其中:
在这里,我们将看到如何根据自回归、MA(q)和ARMA(p,q)过程来模拟时间序列,以及如何基于从ACF和PACF收集的见解将时间序列模型拟合到数据。
Python使用statsmodels中的ARMA()函数来支持ARMA模型的实现。statsmodels库提供了ARMA()类的定义和参数,如表4.6所示。
下一节将学习如何利用自回归和自回归移动平均,用ts_data_load集构建差分自回归移动平均模型。
4.4 差分自回归移动平均
差分自回归移动平均(ARIMA)模型被认为是更简单的自回归移动平均(ARMA)模型的发展,并包括差分的概念。
的确,自回归移动平均(ARMA)和差分自回归移动平均(ARIMA)呈现出许多相似的特征:他们的元素是相同的,在某种意义上说,它们都是利用了一般自回归AR(p) 和 一般移动平均模型MA(q)。正如之前所了解的,AR(p)模型使用时间序列中的先前值进行预测,而MA(q)使用序列平均值和先前误差进行预测(Petris,Petrone 和 Campagnoli 2009)。
ARMA 和 ARIMA方法之间的主要区别是积分和差分的概念。ARMA模型是一个平稳模型,它非常适合平稳时间序列(其统计属性,如均值、自相关和季节性,不依赖于观测到该序列的时间)。
可以通过差分技术(例如,从时间t-1观测到的值减去时间t观测到的值)使时间序列平稳。估计时间序列平稳性需要多少非季节性差异的过程被称为积分(I)或积分法。
ARIMA模型有三个主要组成部分,分别表示为p,d,q;在python中,可以为每个组件分配整数值,以指示你需要应用的特定ARIMA模型。这些参数定义如下:
p代表ARIMA模型中包含的滞后变量的数量,也称为滞后顺序。
d代表时间序列数据集中原始值的差异次数,也称为差异程度。
q表示移动平均窗口的大小,也称为移动顺序平均。
deepseek解释如下:
现在让我们开看看python中ARIMA模型的一个扩展,叫做SARIMAX,它代表具有外源因素的季节性差分自回归移动平均模型。当data scientist必须处理具有季节性周期的时间序列数据集时,他们通常会应用SARIMAX。此外,SARIMAX模型支持季节性和外源因素,因此,他们不仅需要ARIMA所要求的p,d,q参数,还需要季节性方面的另一组p,d和q参数以及参数s,s是时间序列数据集中季节性周期的周期性。
辅助理解:
python通过statsmodels库支持SARIMAX()类,如表4.7所示:
statsmodels库为SARIMAX()类提供了定义和参数。
4.5 自动化机器学习
本节,将学习如何在Azure机器学习中使用自动化机器学习语言来训练时间序列预测回归模型,设计预测模型类似于使用自动化机器学习语言建立典型的回归模型;
4.6 总结
在本章中,学习了如何使用自回归方法和Azure机器学习中的自动化机器学习方法来训练时间序列预测回归模型。
具体来说,我们研究了以下方法:
自回归。该时间序列技术假设下一个时间戳的未来观测值与前一个时间戳的观测值呈线性关系。
移动平均。该时间序列技术利用回归方法中以前的预测误差来预测下一个时间戳的未来观测值。与自回归技术一起,移动平均方法是更一般的自回归移动平均和差分自回归移动平均模型(它们呈现更复杂的随机配置)的关键元素。
自回归移动平均。该时间序列技术假设下一个时间戳的未来观测值可以表示为先前时间戳的观测值和残差的线性函数。
差分自回归移动平均。该时间序列技术假设下一个时间戳的未来观测值可以表示为先前时间戳的差分观测值和残差的线性函数。
自动化机器学习。该时间序列技术组合不同的机器学习算法进行时间序列预测同时为场景执行最佳模型选择、超参数调整和特征工程。
在第5章中,我们将学习如何在时间序列场景中使用深度学习方法。