Используйте arima.sim для имитации ARIMA 1,1,1 с дрейфом в R

#r #time-series #data-science #simulation #arima

Вопрос:

Я пытаюсь использовать пакет ARIMA sim для имитации симуляции ARIMA с дрейфом. Моя проблема в том, что я, похоже, не могу заставить его работать.

Мне нужно получить что-то вроде этого:

введите описание изображения здесь

Мой код создает это, хотя:

 > mean(datatime)
[1] 15881.56
> sd(datatime)
[1] 8726.893
> length(datatime)
[1] 123

 
 # The mean and variance from the original series

originalseriesmean = 15881.56
originalseriesvariance = 8726.893*8726.893
originalseriesn=123

# Simulation using arima.sim



ts.sim <- arima.sim(model=list(c(1,1,1)), n = 123, mean=190,sd=69.2863)

ts.plot(ts.sim)


 

[
Как добавить термин drft в эту функцию, чтобы она выглядела как предыдущая симуляция?

Ответ №1:

Процесс ARIMA по определению не имеет никакого дрейфа/тренда. Вдохновленный этим ответом на перекрестную проверку arima с трендом и с учетом желаемой ценности:

 set.seed(123)
intercept <- 4500
b <- (32000 - intercept) / 123
x <- 1:123
y <- b * x   arima.sim(model=list(c(1, 0, 1)),
                    n = 123, mean=intercept, sd=2000)


> sd(y)
[1] 8020
> mean(y)
[1] 18370
 

Аргумент mean дает вам представление о процессе (где он начинается), чтобы получить дисперсию, вы должны отклонить свой процесс, потому mean что значение и sd значения, которые вы даете, соответствуют тренду, поэтому для моделирования такого процесса вы должны разложить свой процесс на шум тренд.