我将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)都是相当不同的。
非常感谢您的任何见解或建议, 标记
答案 0 :(得分:3)
EstimatedProcess
和FindProcessParameters
使用矩量法。另一方面,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]