R语言非线性动态回归模型ARIMAX、随机、确定性趋势时间序列预测个人消费和收入、用电量、国际游客数量

简介: R语言非线性动态回归模型ARIMAX、随机、确定性趋势时间序列预测个人消费和收入、用电量、国际游客数量

全文链接:https://tecdat.cn/?p=33838


传统时间序列模型允许包含过去观察到的系列信息,但不允许客户包含其他可能相关的信息。例如,假期的影响、竞争对手的活动、法律变化、整体经济或其他外部变量可能解释了某些历史变动,并且可能导致更准确的预测点击文末“阅读原文”获取完整代码数据


另一方面,回归模型允许客户从预测变量中包含大量相关信息,但不允许处理ARIMA模型中可以处理的细微时间序列动态。在本文中,我们帮助客户考虑如何扩展ARIMA模型,以便允许其他信息被纳入模型中。

我们考虑了以下形式的回归模型:

image.png

在本文中,我们允许回归中的误差包含自相关。例如,如果ηt'遵循ARIMA(1,1,1)模型,我们可以写成:

image.png

其中εt'是一个白噪声序列。

估计

在估计带有ARMA误差的回归模型时,一个重要的考虑因素是模型中的所有变量必须首先是平稳的。因此,我们首先必须检查yt'和所有预测变量(x1,t,...,xk,t)(β,...,γ)是否呈现出平稳性。

因此,我们首先对模型中的非平稳变量进行差分处理。

如果模型中的所有变量都是平稳的,那么我们只需要考虑残差的ARMA误差。我们得到如下模型:

image.png

其中y′t=yt−yt−1,x′t,i=xt,i−xt−1,i,β′=β−β−1,η′t=ηt−ηt−1,这是一个带有ARMA误差的差分模型。

R中ARIMAX回归

以下R命令:

fit <- Arima(y, xreg=x, order=c(1,1,0))

将拟合模型y′t=β1x′t+η′t,其中η′t=ϕ1η′t−1+εt是一个AR(1)误差。这等同于带有ARIMA误差的差分模型。

image.png

其中ηt是一个ARIMA(1,1,0)误差。由于进行差分,常数项消失。如果要在差分模型中包含常数项,需要指定include.drift=TRUE。

最终模型的AICc将被计算,并且该值可用于确定最佳预测变量。也就是说,应对要考虑的所有预测变量子集重复此过程,并选择AICc值最小的模型。

示例:个人消费和收入

图1显示了1970年至2016年第3季度个人消费支出和个人可支配收入的季度变化。我们希望根据收入变化来预测支出变化。

autoplot(uschange[,1:2], 
.......
income")

image.png

图1:1970年至2016年第三季度个人消费支出和可支配个人收入的季度百分比变化。

(fit <- auto.arim.......
"Income"]))

image.png

数据已经是平稳的了(我们考虑的是百分比变化而不是原始支出和收入),因此不需要进行差分处理。拟合的模型是

image.png

我们可以使用residuals()函数来恢复对于ηt和εt序列的估计值。

cbind("Regression Errors" = residuals.......
  autoplot(facets=TRUE)

image.png

图2:从拟合模型中获取的回归误差(ηt)和ARIMA误差(εt)。

应该看出ARIMA误差类似于一个白噪声序列。

image.png

图3: 残差(即ARIMA误差)与白噪声没有显著差异。


点击标题查阅往期内容


ARIMA模型,ARIMAX模型预测冰淇淋消费时间序列数据


01

02

03

04


image.png

预测

使用具有ARIMA误差的回归模型进行预测时,我们需要预测模型的回归部分和ARIMA部分,并合并结果。与普通的回归模型一样,为了获得预测值,我们首先需要预测预测变量。

示例:个人消费和收入

我们将计算未来八个季度的预测值,假设未来的可支配收入百分比变化将等于过去四十年的平均百分比变化。

fcast <- forecast.......

image.png

图4:使用采用ARIMA(1,0,2)误差模型回归消费支出百分比变化与可支配收入百分比变化,获取的预测值。

该模型的预测区间开发的模型更窄,因为我们现在能够使用收入预测变量来解释数据的一部分变异性。

示例:预测用电量

日用电量可以建模为与温度有关的函数。正如在电费单上可以观察到的,在寒冷的天气里由于加热和炎热的天气里由于空调等原因使用更多的电。寒冷和炎热天气对电力需求的增加反映在图中的U形,其中将日需求与日最高气温相关联。

image.png

图5:2014年每日用电量与最高气温的关系。

图6显示了每日需求和每日最高气温的时间序列。这些图强调了需要一个非线性动态模型。

image.png

图6:2014年每日用电量和最高温度。

在此示例中,我们使用auto.arima()函数拟合具有ARMA误差的二次回归模型。

xreg <- cbind(MaxTemp =.......
fit <- auto........
 xreg = xreg)

image.png

图7:每日电力需求的动态回归模型残差诊断。

image.png

该模型的残差存在显著的自相关性,这意味着预测区间可能无法提供准确的覆盖范围。此外,残差直方图显示出一个正的异常值,这也会影响预测区间的覆盖范围。

使用估计的模型,我们从2015年1月1日(星期四,新年假日)开始预测未来14天的数据。

fcast <- forecast(fit,.......

image.png

图8:每日电力需求的动态回归模型预测。所有未来温度都设置为26摄氏度,工作日虚拟变量被设置为已知的未来值。

随机趋势和确定性趋势

有两种不同的方法来对线性趋势进行建模。通过回归模型可以得到一个“确定性趋势”,如下所示:

image.png

其中ηt为ARMA过程。通过以下模型可以得到一个“随机趋势”:

image.png

这类似于带趋势的随机游走,但这里的误差项是一个ARMA过程,而不仅仅是白噪声。

尽管这些模型看起来非常相似(它们只有在应用到ηt′′时需要应用的差分数量不同),它们的预测特性却非常不同。

示例:国际游客数据

autoplot(austa) + xlab("Year").......
)

image.png

图9:1980年至2015年年际国际游客人数。

图9显示了1980年至2015年每年国际游客总数。我们将对这些数据拟合一个确定性趋势模型和一个随机趋势模型。确定性趋势模型的拟合如下:

trend <- seq_along.......
rend))

image.png

这个模型可以表示为:

image.png

预计每年游客数量的增长为0.17百万人。

或者,可以使用随机趋势模型进行估计。

(fit2 <- au.......
, d=1))

image.png

这个模型可以表示为: yt−yt−1=0.173+η′t, 或者等价地

image.png

在这种情况下,游客数量的预计增长也是0.17百万人。尽管增长估计相似,但预测区间不同,如图所示。特别是,由于误差是非平稳的,随机趋势具有更宽的预测区间。

fc1 <- forecast(fit1.......
  guides(colour=guide_legend(t)

image.png

图10:使用确定趋势模型和随机趋势模型对国际游客的年度预测。

确定性趋势隐含了一个假设,即趋势的斜率不会随时间而变化。另一方面,随机趋势可以变化,并且估计的增长仅被假设为历史时期的平均增长,而不一定是未来观察到的增长率。因此,使用随机趋势进行预测更安全,特别是对于较长的预测时间范围,在这种情况下,预测区间允许未来增长的不确定性更大。

相关文章
|
2月前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
2月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
2月前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
2月前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
2月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
2月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
2月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
2月前
利用R语言进行典型相关分析实战
利用R语言进行典型相关分析实战
|
2月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
2月前
|
机器学习/深度学习 算法
R语言分类回归分析考研热现象分析与考研意愿价值变现
R语言分类回归分析考研热现象分析与考研意愿价值变现

相关实验场景

更多