在有马之前或有马以内的时差时间序列


13

在使用Arima之前最好先区分一个系列(假设需要),还是在Arima中使用d参数更好?

令我惊讶的是,取决于使用相同模型和数据的路线,拟合值有多么不同。还是我做错了什么?

install.packages("forecast")
library(forecast)

wineindT<-window(wineind, start=c(1987,1), end=c(1994,8))
wineindT_diff <-diff(wineindT)

#coefficients and other measures are similar
modA<-Arima(wineindT,order=c(1,1,0))
summary(modA)
modB<-Arima(wineindT_diff,order=c(1,0,0))
summary(modB)

#fitted values from modA
A<-forecast.Arima(modA,1)$fitted

#fitted from modB, setting initial value to the first value in the original series
B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1])


plot(A, col="red")
lines(B, col="blue")

加:

请注意,我先对系列进行求差并拟合arima(1,0,0),然后将arima(1,1,0)拟合到原始序列。我(我认为)反转差异文件上arima(1,0,0)的拟合值的差异。

我正在比较拟合值-而不是预测。

这是情节(红色是arima(1,1,0),蓝色是在变回原始比例后的差分序列上的arima(1,0,0)):

在此处输入图片说明

回应Hyndman博士的回答:

1)您能否在R代码中说明我需要做些什么才能使Arima(1,1, 0)和Arima(1,0,0)在手动差分序列上?我认为这与没有包含在modA中有关,但是我不确定如何进行。

2)关于您的#3。我知道我缺少明显的东西,但是和当定义为时,是否相同?您是说我不正确吗?X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1


1
关于您的更新。1)我看不出这样做的意义。Arima()将产生拟合值和预测。为什么我应该产生其他R代码来完成与Arima()已经相同的操作?2)是的,但是区别X帽子不会给您Y帽子。因此,保持一致的Y型帽子不会给您X型帽子。
罗伯·海德曼

2
谢谢。1)对我来说是一次学习练习。2)我在原始问题(使用diffinv)中的计算错误是在使用拟合值而不是原始值,这是我认为我从中得到的结果。(?)...这导致如何正确设置#1数据无差异。我知道Arima会做到这一点,只是尝试遵循使用等式的书籍示例。
B_Miner

Answers:


14

这里有几个问题。

  1. 如果先差异,则将Arima()模型拟合到差异数据。如果您让Arima()微分作为估计过程的一部分,则它将使用弥散先验进行初始化。的帮助文件对此进行了说明arima()。因此,由于初始观察的处理方式不同,结果也会有所不同。我认为这在估算质量方面没有太大的区别。但是,Arima()如果要在原始(无差异)数据上进行预测或拟合值,则更容易处理差异。

  2. 除了估算上的差异外,您的两个模型不相等,因为modB其中包括一个常数,而常数modA不包括。默认情况下,Arima()当时包括一个常数,而当时不包括一个常数。您可以使用参数覆盖这些默认值。d=0d>0include.mean

  3. 原始数据的拟合值不等于差异数据上的无差异拟合值。看到这一点,请注意,在原始数据拟合值由下式给出 ,而嵌合差异数据上的值由 ,其中是原始时间序列,是原始时间序列不同的系列。因此 ý=φX-1-X-2{X}{ý} X - X牛逼-1 Ÿ牛逼

    X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1,我打算回答2分。对于荣誉,包括其他2
mpiktas

Hyndman博士,谢谢您的答复!我有很多了解时间序列分析的知识。请问可以跟进吗?我不确定我是否确切知道如何处理此信息,所以我要在原始问题中添加一个内容。
B_Miner

2

有时您需要删除局部方法以使该序列平稳。如果原始系列的acf没有消失,则可能是由于系列中的级别/步长偏移所致。补救措施是去除系列的含义。

对赏金的回应:

获得相同结果/拟合值的方法是在对原始(Y(t)系列)进行物理求差以得到第一差(dely)之后,估计没有常数的AR(1)。这等于拟合OLS模型的OLS模型。形式dely(t)= B1 * dely(t-1)+ a(t),不带截距。该模型的拟合值(适当地乘以1的阶数)将(我相信)为您提供模型的拟合值; [ 1-B] [AR(1)] Y(t)= a(t)。除了注明的AUTOBOX以外,大多数软件都不允许您估计没有常数的AR(1)模型。 Dely的公式= + [(1-.675B * 1)] **-1 [A(T)],而Y的公式为

[(1-B * 1)] Y(T)= + [(1-.676B * 1)] **-1 [A(T)]。请注意由Y的物理差分引起的舍入误差。请注意,当差分生效时(在模型中),否则用户不能选择是否包含或排除常数。正常过程是为固定的(即无差异的)ARIMA模型包含一个常数,并且当模型中存在差异时,可选地包含一个常数。看来替代方法(Arima)迫使一个常数进入固定模型,在我看来,这已引起您的困境。


在这种情况下,这是否会影响delta-y的arima(1,0,0)和y的arima(1,1,0)之间的拟合值?
B_Miner

在这两种情况下,您都将AR(1)拟合到时间序列的第一个差异,对吗?如果是这种情况,并且拟合方法相同,则它们应该做的完全相同。操作顺序甚至没有差异。
Michael R. Chernick

这里似乎并非如此。也许@Rob_Hyndman将办理入住手续。
B_Miner

1

我不知道为什么结果会有所不同,除非您以某种方式比另一种方式相差更多。对于ARIMA(p,d,q),在进行任何模型拟合之前首先要完成d差。然后将静态ARMA(p,q)模型拟合到差分序列。假设是在去除序列中的多项式趋势之后,其余序列是固定的。差异的数量与要删除的多项式的阶数相对应。因此,对于线性趋势,您只需要一个差,对于二次趋势,您只需两个差。我不同意约翰回答中的大部分内容。


0

区分I(1)级数的一个原因是使它平稳。假设您具有ARIMA模型的正确规范,则模型的残差将删除自回归和移动平均成分,并且应保持不变。在这方面,对模型使用残差而不是差分是有意义的。但是,在您拥有许多您认为大约为I(1)的数据的情况下,有些人只会改变数据,而不是完全估计ARIMA模型。ARIMA模型可以解决可能没有意义的所有时间序列问题。例如,如果数据经历均值回归,则由于它可能不是I(1),因此不一定总是适合于差分。


您希望差异如此之大吗?这让我认为我在从差异恢复到原始状态方面做错了什么。
B_Miner

你能确切解释一下你做了什么吗?我不擅长阅读R代码。如果两种方法都采用相同数量的差异,并且在差异之后拟合相同的ARMA模型,则只要拟合技术相同(通常使用条件最小二乘),就应该得到相同的结果。
Michael R. Chernick

他获取一些数据,拟合ARIMA(1,1,0),然后获取差异并拟合ARIMA(1,0,0)。最后,他将样本预测中的一个期间相互比较。大概它们是不同的,但是我们看不到帖子中的图表。
约翰·

一个简单的例子说明了我要说的是什么,如果您考虑。求差得到。但是,如果要查找,则如果估算Ŷ = β - 1 ý - 1 + ε ε Ŷ = β ý - 1 + ε yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
John

1
终于对了。我不能在5分钟内完成LaTex!尽我所能告诉上面的方程是双向的。
Michael R. Chernick
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.