时间序列建模的完整教程用R语言
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果我们尝试绘制这个图表,它会看起来像这样:
你注意到 MA 和 AR 模型的区别了吗?在 MA 模型中,噪声/冲击随时间迅速消失。AR 模型对冲击具有持久的影响。 AR 模型与 MA 模型的区别 AR 和 MA 模型之间的主要区别是基于~时间序列对象在不同时间点之间的相关性。 X (T) 和 X( T-N)之间的相关性,对于 n 阶的 MA 总是为零。这直接源于 MA 模型中 x( t)和 x
/WOP/RandomWalk.html
想象一下,你坐在另一个房间里,看不到那个女孩。你想预测女孩的位置随着时间的推移。 你会有多精确?当然,随着女孩的位置变化,你会变得越来越不准确。在 T=0,你完全知 道那个女孩在哪里。下一次,她只能移动到 8 个方格,因此你的概率下降到 1/8,而不是 1, 而且它一直在下降。现在让我们来尝试一下这个时间序列。
时间序列建模的完整教程用 R 语言 一,简介 “时间”是确保企业成功的最重要因素。跟上时代的步伐是很困难的。但是,技术已经发 展了一些强大的方法,我们可以提前看到事物。别担心,我不是在谈论时间机器。让我们现 实点吧! 我说的是预测和预测的方法。 其中一种处理基于时间的数据的方法是时间序列建模。 顾名思 义,它涉及基于时间(年,日,小时,分钟)的数据,以获得隐藏的洞察力做出明智的决策。 时间序列模型是非常有用的模型, 当你有连续的相关数据。 大多数企业都在时间序列数据上 分析明年的销售数量、网站流量、竞争地位等等。然而,这也是许多分析家不了解的领域之 一。 因此, 如果你不确定时间序列建模的完整过程, 本指南将向你介绍不同层次的时间序列建模 及其相关技术。 下面的主题包含在本教程中,如下所示: 1,基础——时间序列建模 2,R 语言——时间序列数据的探讨 3,ARMA 时间序列建模简介 4,ARIMA 时间序列建模框架及应用 一,基础-时间序列建模 让我们从基础开始。这包括平稳序列(或者静态序列),随机游走,Rho Coefficient,Dickey Fuller Test 的平稳性。如果这些术语已经吓坏了你,别担心——它们会变得清晰一些,我敢 打赌,你会在我解释的时候开始喜欢这个主题。 (1)stationary series 这里有三个基本标准:一系列被称为平稳序列: ::序列的平均值不应该是时间的函数,而应该是常数。下面的图像具有满足条件 的左手图,而红色中的图具有时间相关平均值。
上面的蓝线显示出明显不同于零的值。显然,上面的图在第二滞后之后在 PACF 曲线上 有一个截止,这意味着这主要是 AR(2)过程。
(T-n)之间的协方差为零(事实上,我们从前面一节中所取的例子中引用)的事实。然而, AR 模型中 X(T)和 X(T-N)的相关性随着 N 的增大而逐渐下降。这种差异得到利用,而不 管有 AR 模型或 MA 模型。相关图可以给出 MA 模型的阶数。 开发 ACF 和 PACF 图 一旦我们得到平稳时间序列,我们必须回答两个主要问题: Q1。是 AR 还是 MA 过程? Q2。我们需要使用哪种顺序的 AR 或 MA 过程? 解决这些问题的诀窍可在上一节中找到。你没注意到吗? 第一个问题可以用总相关图(也称为自相关函数/ACF)来回答。ACF 是不同滞后函数之 间的总关联图。例如,在 GDP 问题上,时间点 T 的 GDP 是 X(t)。我们对 X(T)与 X(T-1) 、 X(T-2)等的相关性很感兴趣。现在让我们来反思一下上面所学的内容。 在移动平均序列的滞后 n 中,X(t)与 x(t-n-1)之间不存在任何相关。因此,总相 关图在第 n 次滞后处截止。因此,很容易找到一个 MA 系列的滞后。对于 AR 序列,这种相 关性将逐渐下降而没有任何截止值。那么,如果我们是 AR 系列,我们该怎么办? 这是第二个窍门。如果发现每个滞后的部分相关,则在 AR 级数的程度之后会被切断。 例如,如果我们有 AR(1)系列,如果我们排除第一滞后(x(t-1))的影响,则我们的第 二滞后(x(t-2))与 x(t)无关。因此,偏相关函数(PACF)在第一滞后后急剧下降。下 面是一些例子来澄清你对这个概念的任何怀疑:
X( t ) X (t 1) Er (t )
这里的 Er 是在时间点 t 的误差。这是一个由女孩在时间上每个点产生的误差。 现在,如果我们递归地拟合所有的 XS,我们最终会得出下面的等式。
X (t ) X (0) Sum( Er (1), Er (2), Er (3),...Er (t ))
::序列的方差不应该是时间的函数。这种性质被称为同方差性。下面的图描述了什 么是什么,什么不是平稳序列。(注意在右手图中分布的不同分布)
::第 i 项和第(i+m)项的协方差不应该是时间的函数。在下面的图表中,你会注 意到随着时间的增加,传播变得越来越近。因此,对于“红色 = Var[X(0)] + Sum(Var[Er(1)],Var[Er(2)],Var[Er(3)]..Var[Er(t)]) Var[X(t)] = t * Var(Error) = Time dependent
因此,我们推断随机游走不是一个静态的过程,因为它具有时变方差。此外,如果我们检查 协方差,我们也发现这也是依赖于时间的。 让我们来点趣味吧 我们已经知道随机游走是一个非平稳过程。 让我们在方程中引入一个新的系数, 看看我们是 否可以使制剂稳定。 引入系数:Rho
现在,让我们来验证我们关于随机游走公式的静态序列的假设: 1。平均常数是多少?
E[ X (t )] E[ X (0)] Sum( E[ Er (1), E[ Er (2),...E[ Er (t ), ])
我们知道任何误差的期望都是零,因为它是随机的。 因此,我们得到 E[x(t)]=e[x(0)] =常数。 2。方差是常数吗?
这个方程称为 AR(1)公式。数字一(1)表示下一个实例仅依赖于先前的实例。α是 我们寻求的系数, 以便最小化误差函数。 请注意, X (T - 1) 确实以相同的方式链接到 X (T-2) 。 因此,对 X(T)的任何冲击都将在未来逐渐消退。 例如,假设 X(t)是在特定的一天在城市销售的果汁瓶的数量。在冬季,很少有供应 商购买果汁瓶。突然,在某一天,气温上升,果汁瓶的需求飙升至 1000。然而,过了几天, 气候又变冷了。但是,知道人们在炎热的日子里习惯喝果汁,在寒冷的日子里仍然有 50% 的人还在喝果汁。在接下来的几天里,比例下降到 25%(50%的 50%),然后在数天之后逐 渐变小。下面的图表说明了 AR 系列的惯性特性:
移动平均时间序列模型 MA 让我们用另一个例子来理解移动平均时间序列模型。 制造商生产某种类型的袋子,在市场上很容易买到。作为一个竞争性的市场,袋子的销 售在很多天都是零。于是,有一天,他做了一些实验,设计了一种不同类型的袋子。这种袋 子在市场上任何地方都买不到。因此,他能够卖出 1000 袋的全部库存(我们称之为 X(T)) 。 需求量太大,袋子已经卖完了。因此,大约有 100 名顾客无法购买这个袋子。我们把这个间 隙称为那个时间点的误差。随着时间的推移,袋子失去了它的 WUO 因子。但剩下的顾客寥 寥无几,前一天空手而归。下面是一个简单的公式来描述场景。
详细度量
这里还有几个操作可以做:
重要推论 1,年均趋势明显表明,客流量不断增加。 2,七月和八月的方差和平均值远高于其余月份。 , 3,即使每个月的平均值相差很大,它们的方差也很小。因此,我们具有较强的季节 效应,周期为 12 个月或更少。 在时间序列模型中, 探索数据是最重要的——没有这种探索, 你就不知道系列是静止的 还是不稳定的。在这种情况下,我们已经知道了我们正在寻找的模型的许多细节。 现在让我们来研究一些时间序列模型及其特性。 我们也将把这个问题提出来, 做一些预测。 三,ARMA 时间序列建模简介 ARMA 模型是时间序列建模中常用的模型。在 ARMA 模型中,AR 代表自回归,MA 代表 移动平均。 如果这些话听起来很吓人, 别担心, 我会在接下来的几分钟里为你简化这些概念。 现在我们将开发这些术语的诀窍并理解与这些模型相关的特性。 但在开始之前, 你应该 记住,AR 或 MA 不适用于非平稳序列。 如果你得到一个非平稳序列,你首先需要对这个系列进行平稳化(通过差分/变换), 然后从可用的时间序列模型中选择。 首先,我将分别解释这两个模型(AR 和 MA )中的每一个。接下来,我们将看看这些 模型的特点。 自动回归时间序列模型 让我们用下面的例子来理解 AR 模型: 一个国家的当前 GDP 称 X(t)依赖于去年的 GDP,即 X(t—1)。假设一个国家在一个 会计年度的产品和服务的总生产成本(称为 GDP)取决于前一年的制造工厂/服务的建立以 及本年度新设立的工业/工厂/服务。但 GDP 的主要组成部分是前一部分。 因此,我们可以将 GDP 的公式形式化为:
为什么我在乎时间序列的“平稳性”? 我之所以首先强调要理解这一部分是因为除非你的时间序列是静态的, 否则你不能建立时间 序列模型。在违反稳定准则的情况下,第一个必要条件是使时间序列平稳化,然后尝试随机 模型来预测这个时间序列。有多种方式带来这种平稳性。它们中的一些是退化的,差异的等 等。 (2)random walk 这是时间序列中最基本的概念。你可能很了解这个概念。但是,我发现很多业内人士把 随机行走解释为一个静态的过程。在本节中,借助一些数学,我将使这个概念永远清晰。让 我们举个例子。 例如:想象一个女孩在一个巨大的棋盘上随机移动。在这种情况下,女孩的下一个位置 只取决于最后一个位置。
我们仍然看到 X 在一些间隔之后从极值返回到零。 这个系列还没有显著违反非平稳性。 现在, 让我们来看看 Rho=1 的随机游走。
这显然是对静止条件的违反。什么使 Rho=1,一个特殊情况,在稳态测试中表现得很差? 我们会找到这个原因的数学原因。 让我们对方程的每一项 进行期望,
这个方程非常有洞察力。下一个 x(或在时间点 t)被拉到 Rho 的最后值 x。 例如,如果 x(t-1)=1,e[x(t)]=0.5(对于 Rho=0.5)。现在,如果 X 从零移到任意 方向,它在下一步被拉回到零。唯一可以进一步驱动的部件是误差项。误差项同样有可能在 任一方向上进行。当 Rho 变成 1 时会发生什么?在下一个步骤中,没有力可以把 X 拉下来。 平稳性的 DICKEY Full 检验 你刚刚在最后一节学到的就是 Dickey Fuller 测试。这里是一个小的调整,这是我们的公式, 把它转换成 Dickey Fuller 测试:
我们必须测试 Rho - 1 是否显著不同于零。如果零假设被拒绝,我们将得到平稳时间序列。 平稳测试和一系列转换成平稳序列是时间序列建模中最关键的过程。 你需要记住这个概念的 每一个细节,然后进入下一个时间序列模型的步骤。 现在让我们看一个例子来告诉你时间序列是什么样子的。 二,R 语言——中时间序列数据的探讨 在这里, 我们将学习如何处理 R 上的时间序列数据。 我们的范围将局限于时间序列类型的数 据集中的数据探索,而不是构建时间序列模型。 我使用了一个叫做航空乘客的内置数据集。数据集包括国际航空旅客的每月总计,1949 至 1960。 加载数据集 下面是帮助您加载数据集并溢出一些顶级度量的代码:
X(t) = Rho * X(t-1) + Er(t)
现在,我们将改变 Rho 的值,看看我们是否可以使该系列静止。在这里,我们将解释分散 的视觉,不做任何测试,以检查平稳性。 让我们从一个具有 Rho=0 的完全平稳序列开始。这里是时间序列的图:
增加 Rho 值到 0.5 给我们以下图表:
你可能会注意到我们的周期已经变得更广泛, 但本质上似乎并没有严重违反静态假设。 现在 让我们来看看 Rho=0.9 的更极端情况。