Восстановление моделируемой модели ARIMA в R - PullRequest
0 голосов
/ 23 апреля 2020

Когда я моделирую временной ряд ARIMA со смещением, а затем подгоняю модель ARIMA к моделируемым данным, я не возвращаю модель, которая выглядит как истинная.

Без дрейфа она работает нормально подогнанные коэффициенты достаточно близки к истинным значениям:

set.seed(1)

X_t <- arima.sim(n = 10000, model = list(ar = c(.7, .2), ma = c(.6), sd = .1))
arima(X_t, order = c(2, 0, 1))

# Call:
# arima(x = X_t, order = c(2, 0, 1))
# 
# Coefficients:
#          ar1     ar2     ma1  intercept
#       0.7279  0.1677  0.5818     -0.126
# s.e.  0.0240  0.0233  0.0204      0.153
# 
# sigma^2 estimated as 1.022:  log likelihood = -14299.17,  aic = 28608.34

Но когда я добавляю дрейф, коэффициенты оказываются совершенно неправильными:

X_t <- arima.sim(n = 10000, model = list(ar = c(.7, .2), ma = c(.6), sd = .1))
delta_t <- rnorm(10000, mean = .05, sd = .2)
X_t <- X_t + cumsum(delta_t)

arima(X_t, order = c(2, 1, 1))

# Call:
# arima(x = X_t, order = c(2, 1, 1))
# 
# Coefficients:
#          ar1      ar2      ma1
#       1.0368  -0.1172  -0.9433
# s.e.  0.0202   0.0102   0.0181
# 
# sigma^2 estimated as 3.216:  log likelihood = -20028.62,  aic = 40065.25

Я также пытался arima(diff(X_t), order = c(2, 0, 1)) , но не повезло.

Я неправильно настроил симулированный дрейф? Подгонка модели не так? Или это ожидаемое поведение по какой-то причине?

...