#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
значения, которые вы даете, соответствуют тренду, поэтому для моделирования такого процесса вы должны разложить свой процесс на шум тренд.