为什么SAS和R会给出不同的ARIMA输出?

时间:2016-02-17 22:11:34

标签: r sas

我使用SAS和R中的回归量构建ARIMA模型,但模型的结果完全不同,我无法弄清楚为什么两个包给出不同的输出。

以下是SAS代码

proc ARIMA data=TSDATA;
identify var=LOG_Sale
crosscorr=(
Log_Var1
Log_Var2
Log_Var3)
nlag=12 ALPHA=0.05  WHITENOISE = IGNOREMISS SCAN;
run;
estimate q=(4)(10)
input=
( Log_Var1
Log_Var2
Log_Var3)
method=ml plot ;
run;

以下是R代码:

finalmodel <- arima (LOG_Sale, order=c(0, 0, 4), seasonal=list  (order=c(0, 0, 1),period=10),include.mean = TRUE, xreg=xinput,fixed=c(0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
                     method="ML")
summary(finalmodel)

如您所见,模型包括MA(4)(10)和3个回归量,我定义了矩阵xinput以包含三个回归量(Log_Var1,Log_Var2,Log_Var3)。

两个输出(SAS和R)的系数完全不同,我不知道为什么,如果你能指出R代码中的错误,请帮帮我,因为我认为SAS代码非常典型,应该是对的,但我是R的新手,我猜R代码可能错了....

感谢。

1 个答案:

答案 0 :(得分:0)

数据是典型的每周时间序列数据 Date Log_Var1 Log_Var2 Log_Var3 3-Jan-11 13.47487027 8.65886635 9.096499556 10-Jan-11 14.1688108 9.182043773 9.096499556 17-Jan-11 14.3192497 9.175024027 9.096499556 24-Jan-11 14.54051181 9.1902397 9.096499556 31-Jan-11 14.33370089 9.1902397 9.096499556 7-Feb-11 13.76581591 9.431962767 9.326321786 14-Feb-11 14.09526221 9.29844282 9.326321786 21-Feb-11 14.61994905 9.29844282 9.326321786 28-Feb-11 14.94652204 8.700680735 9.326321786 7-Mar-11 14.71066636 9.026056892 9.348993004

从SAS代码中可以看出,该模型是ARIMA(0,0,4)(0,0,10),带有三个输入系列,在SAS中是直接的,但我读了很多R材料,我找不到任何有用的文档和示例,以展示如何使用外部回归量构建具有特定高阶p,q或P,Q(子集ARIMA)的ARIMA。 您在这里看到的R代码实​​际上在R中工作并且输出看起来不错,但是系数与SAS中的输出不同,所以我猜R中的ARIMA算法可能与SAS不同,但两者都使用ML方法。

所以关键是如果模型是ARIMA(0,0,4)(0,0,10),R代码是否正确,应该注意q =(4)(10),其中只有4和10,而不是1到4而不是1到10,这只是子集顺序。 感谢。