R语言使用ARIMAX预测失业率经济时间序列数据

简介: R语言使用ARIMAX预测失业率经济时间序列数据

在大数据的趋势下,我们经常需要做预测性分析来帮助我们做决定。其中一个重要的事情是根据我们过去和现在的数据来预测未来。这种方法我们通常被称为预测。

许多情况下都需要预测:决定是否在未来五年内再建一座发电站需要对未来的需求进行预测;安排下周呼叫中心的工作人员需要对呼叫量进行预测;储备库存需要对库存需求进行预测。一个事件的可预测性取决于几个因素,包括。

  • 我们对造成这种情况的因素了解得如何。
  • 有多少数据可用。
  • 预测是否能影响我们试图预测的事物。

ARIMA

差分整合自回归移动平均模型(ARIMA)(p,d,q)是自回归(AR)、移动平均(MA)和自回归移动平均(ARMA)模型的扩展版本。ARIMA模型是应用于时间序列问题的模型。ARIMA将三种类型的建模过程结合到一个建模框架中。

  • I:差分是用d表示的。它告诉我们在连续的观察样本中,被差分的序列对于原始序列的变化数量。
  • AR:自回归用p表示,它告诉我们为适应平稳序列的AR过程所需的滞后期数。ACF和PACF帮助我们确定AR过程的最佳参数集。
  • MA:移动平均阶数用q表示。它告诉我们要回归的序列中的误差项的数量,以便将差分的AR过程残差减少为白噪声。

关于ARIMAX

ARIMAX或回归ARIMA是ARIMA模型的一个扩展。在预测中,这种方法也涉及自变量。ARIMAX模型表示输出时间序列由以下部分组成:自回归(AR)部分,移动平均(MA)部分,差分整合(I)部分,以及属于外生输入(X)的部分。外生部分(X)反映了将外生输入的现值 和过去值 包括到ARIMAX模型中。

多元回归模型公式:

其中Y是xi预测变量的因变量,ε通常被认为是一个不相关的误差项(即是白噪声)。我们考虑了诸如Durbin-Watson检验等检验方法来评估ε是否有显著的相关性。我们将在方程中用nt代替ε。误差序列 被假定为遵循ARIMA模型。例如,如果 nt 遵循一个 ARIMA(1,1,1)模型,我们可以写成

其中εt是一个白噪声序列。ARIMAX模型有两个误差项,一个是回归模型的误差,我们用jt表示,另一个是ARIMA模型的误差,我们用εt表示。只有ARIMA模型的误差被认为是白噪声。

实例探究

我们将使用经济序列数据。数据是一个五个季度的经济序列,包含以下数字变量:季度失业率、国民生产总值、消费、政府投资和私人投资。有161个观测点。

季节性成分已经从数据中去除。集中在失业率(Ut)、国民生产总值(Gt)和消费(Ct)上,首先对每个序列进行记录,然后去掉线性趋势,对数据拟合一个向量ARMA模型。也就是说,对xt=(x1t,x2t,x3t)t拟合一个向量ARMA模型,例如,x1t=log(Ut)-β0^-β1^t,其中β0^和β1^是log(Ut)对时间t的回归的最小二乘估计。对残差运行一套完整的诊断方法。

数据探索

grid.arrange(p1,p2,p3,ncol=2)

从图中可以看出,国民生产总值和消费可以作为回归使用。我们可以用时间、国民生产总值和消费来预测失业率。


ARIMAX模型拟合

summary(varma)

plot(df,aes(t,res))+line(col=colpla\[2\]) 
acf\_pacf(res\_= acf(x, plot= F)
                        , label= "ACF")
plot(df, aes(x=res)) + 
  histogram(aes(y=..density..)

我们的残差在大多数情况下是正态分布的,ACF图中没有明显的尖峰。Ljung-Box检验在5%的水平上有0.05297的p值,所以数据是独立分布的,在任何滞后期都没有明显的自相关。这是一个理想的结果。

预测

我们随机生成log(g)和log(c)的向量,作为我们预测模型的输入值。两个向量的长度都是8,所以我们的目标是预测未来8个季度的log(u)值。请注意,对于多个回归因子,我们必须将这些向量合并成一个矩阵,以便我们进行预测工作。

forecast(m,x=logfc+logc )
plot(yfor)

ARIMA模型

通过使用ARIMA,我们只根据连续的时间数据来预测未来。它忽略了可能影响消费变化的其他因素。

ARIMAX优点缺点

要使用ARIMAX模型,有几个可能的优点和缺点。

优点

使用ARIMAX的好处是我们可以将回归和时间序列部分结合在一个模型中,命名为ARIMAX。与回归模型或ARIMA模型相比,这个模型可以优化我们的误差。

缺点

一个缺点是,协变量系数很难解释。斜率的值不是xt增加1时对Yt的影响(就像回归中那样)。方程右侧存在因变量的滞后值,这意味着斜率β只能以因变量以前的值为条件进行解释,这很不直观。


相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
58 3
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
4月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
7月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
7月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。