R与Mathematica中的时间序列估计

时间:2014-11-27 10:11:18

标签: r wolfram-mathematica time-series

我将IMA(1,1)[或ARIMA(0,1,1)]模型拟合为时间序列。我尝试使用R中的arima函数和Mathematica中的EstimatedProcess函数(版本10),我得到了非常不同的结果。为什么?他们是否做出不同的假设,在不同情况下有效?有没有人建议我应该使用哪一个?

实施例。首先,在R。

> series <- c(-1.42377, 0.578605, -0.534659, -3.07486, -2.4468,
 -0.508346, -0.216464, -2.7485, -1.93354, -1.07292,
 -1.48064, -1.13934, -1.24597, 1.419, -1.22549,
 -2.44651, 1.54611, 1.80892, -0.863338, 1.21636)
> arima(series, order=c(0,1,1))

Call:
arima(x = series, order = c(0, 1, 1))

Coefficients:
          ma1
      -0.7807
s.e.   0.1548

sigma^2 estimated as 2.227:  log likelihood = -35.03,  aic = 74.07

现在,在Mathematica:

series = {-1.42377, 0.578605, -0.534659, -3.07486, -2.4468, 
-0.508346, -0.216464, -2.7485, -1.93354, -1.07292, 
-1.48064, -1.13934, -1.24597, 1.419, -1.22549, 
-2.44651, 1.54611, 1.80892, -0.863338, 1.21636};
EstimatedProcess[series, ARIMAProcess[{}, 1, {ma1}, s2]]

产生:

ARIMAProcess[{}, 1, {-0.252596}, 3.30217]

正如您所看到的,估计的MA1系数(R中的-0.7807,Mathematica中的-0.2526)和方差(2.227,3.302)都是相当不同的。

非常感谢您的任何见解或建议, 标记

1 个答案:

答案 0 :(得分:3)

好的,我已经明白了。默认情况下,Mathematica函数EstimatedProcessFindProcessParameters使用矩量法。另一方面,R函数arima使用最大似然。所以如果你告诉Mathematica使用最大可能性,就像这样

series = {-1.42377, 0.578605, -0.534659, -3.07486, -2.4468, 
-0.508346, -0.216464, -2.7485, -1.93354, -1.07292, 
-1.48064, -1.13934, -1.24597, 1.419, -1.22549, 
-2.44651, 1.54611, 1.80892, -0.863338, 1.21636};
EstimatedProcess[series, ARIMAProcess[{}, 1, {ma1}, s2],
 ProcessEstimator -> "MaximumLikelihood"]

你得到与R:

完全相同的答案
ARIMAProcess[{}, 1, {-0.780677}, 2.22661]