传递函数模型:: TSA中的Arimax

时间:2014-08-09 23:40:26

标签: r sas

我正在尝试从forecasting with dynamic regression models复制模型,并且我无法使用TSA库中的arimax函数匹配R中的输出。我能够使用SAS非常接近结果,但我想使用R并希望有人知道如何编写arimax函数来实现这一目标。我发现函数有问题(通常根据arima和optim)正确收敛,但在这种情况下会返回一个模型,但参数是关闭的。

该数据是来自astsa图书馆Box和Jenkins的销售沙子系列的前140个观察结果。

以下是本书中的片段,显示了他们的结果(再次,我可以与SAS接近)以及与R一起使用的代码(以及结果)。我注意到的一件事是在arimax()的帮助文件中有建议" mean-delete"传递函数协变量。我不确定这意味着什么,也不确定这是否是问题的一部分。

从书中可以看出:

enter image description here

这是R代码:

library(TSA)
library(Hmisc)
library(astsa)


sales_140<-window(sales,end=140)
lead_140<-window(lead,end=140)

mod<-arimax(window(sales_140,start=4),order=c(0,1,1),
       xtransf = window(Lag(lead_140,3),start=4),transfer = list(c(1,0)),
       xreg=data.frame(seq(1:137)),method="ML")
mod


#Series: window(sales_140, start = 4) 
#ARIMA(0,1,1)                    

#Coefficients:
#         ma1  seq.1.137.  T1-AR1  T1-MA0
#      0.5974      0.3322  0.0613  2.8910
#s.e.  0.0593      0.1111  0.0275  0.1541

#sigma^2 estimated as 0.6503:  log likelihood=-163.94
#AIC=335.87   AICc=336.34   BIC=350.44

这是SAS代码:

proc arima data=BL;
identify var=sales(1) crosscorr=lead(1);
estimate q=1 input=( 3 $ ( 0 ) / ( 1) lead) method=ml;
forecast out = out1 lead = 0;

run; 

和估计:

enter image description here

1 个答案:

答案 0 :(得分:8)

AR中的ARIMAX模型可能有点难以实现/解释。在这种情况下,有一些事情会让你失望。这里没有特别的顺序:

&#34;平均-删除&#34;是另一种说法&#34;删除平均值&#34;。在这种情况下,它指的是协变量lead_140。所以,从

开始
lead_140_Z <- lead_140 - mean(lead_140).

您尝试拟合的ARIMAX模型的顺序是(0,1,1),它与第一差异数据上的ARMAX(0,1)相同。因此,不要使用模型内部的差异,而是事先这样做:

sales_140_D <- diff(sales_140)
lead_140_D <- diff(lead_140_Z)

在这种情况下,传递函数的顺序实际上是(1,3),但是第一,第二和第三MA参数(MA0,MA1和MA2)固定为0(即,只有B ^ 3出现在分子)。要解决此问题,您需要使用fixed中的ARIMAX()参数,并为要估算的参数指定NA,并为省略的0指定。{/ p>

您在xreg中不需要任何内容​​,因为转移中会出现协变量。

mod <- arimax(sales_140_D,
   order=c(0,0,1),
   include.mean=TRUE,
   fixed=c(NA,NA,NA,0,0,0,NA),
   xtransf=lead_140_D,
   transfer=list(c(1,3)),
   method="ML")

mod

# Coefficients:
          ma1  intercept  T1-AR1  T1-MA0  T1-MA1  T1-MA2  T1-MA3
      -0.5791     0.0286  0.7255       0       0       0  4.7092
s.e.   0.0756     0.0090  0.0040       0       0       0  0.0551

结果并不准确,但它们非常接近。