2014-11-27 4 views
1

IMA (1,1) [또는 ARIMA (0,1,1)] 모델을 시계열에 맞추고 있습니다. 나는 R에서 arima 함수를 사용하고 Mathematica에서 EstimatedProcess 함수를 사용하려고 시도했는데 (매우 다른 결과를 얻었습니다). 왜? 서로 다른 상황에서 유효한 서로 다른 가정을하고 있습니까? 누구든지 내가 사용해야 할 조언이 있습니까?R 대 Mathematica의 시계열 계산

예. 첫째, 매스 매 티카에서 지금

, 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 
에서 :

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]] 

산출 : R의

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

당신이 볼 수 있듯이, 모두 추정 MA1 계수 (-0.7807, -0.2526의 Mathematica)와 분산 (2.227, 3.302)은 다소 다릅니다. 어떤 통찰력이나 조언

감사 많은 마크

답변

3

OK, 나는 그것을 알아 냈어요. Mathematica 함수는 기본적으로 EstimatedProcessFindProcessParameters 함수를 사용합니다. 반면에 R 함수 arima은 최대 우도를 사용합니다.

ARIMAProcess[{}, 1, {-0.780677}, 2.22661] 
: 당신이 그렇게

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과 동일한 답변을 얻을