Я хочу смоделировать ARIMA(1,1,0)
с варьированием:
- размеры выборки
- значения phi
- значения стандартного отклонения.
Я восхищаюсь, как приведенный ниже r
код имитирует только один ARIMA(1,1,0)
, который я хочу использовать в формате, чтобы имитировать множество ARIMA(1,1,0)
с различными размерами выборки , значениями и значения стандартного отклонения
wn <- rnorm(10, mean = 0, sd = 1)
ar <- wn[1:2]
for (i in 3:10){
ar<- arima.sim(n=10,model=list(ar=-0.7048,order=c(1,1,0)),start.innov=4.1,n.start=1,innov=wn)
}
Я задал похожий вопрос здесь и дал хороший ответ, основываясь на моем вопросе, но теперь я вижу, что функция arima.sim()
незаменим при моделировании временных рядов ARIMA
и поэтому хочу включить его в мой стиль моделирования временных рядов ARIMA
. Я придумаю это испытание, в котором используется функция arima.sim()
для имитации N = c (15, 20) ARIMA(1,1,0)
временных рядов с различными размерами выборки , стандарта значения отклонения и значения фи , сначала генерируя N случайное число, а затем используя первые два случайных числа, чтобы быть первыми двумя ARIMA(1,1,0). The 3rd to **n**th are the made to follow
ARIMA (1,1,0) `. Вот что я попробовал ниже:
N <- c(15L, 20L)
SD = c(1, 2) ^ 2
phi = c(0.2, 0.4)
res <- vector('list', length(N))
names(res) <- paste('N', N, sep = '_')
set.seed(123L)
for (i in seq_along(N)){
res[[i]] <- vector('list', length(SD))
names(res[[i]]) <- paste('SD', SD, sep = '_')
ma <- matrix(NA_real_, nrow = N[i], ncol = length(phi))
for (j in seq_along(SD)){
wn <- rnorm(N[i], mean = 0, sd = SD[j])
ar[[1:2, ]] <- wn[[1:2]]
for (k in 3:N[i]){
ar[k, ] <- arima.sim(n=N[[i]],model=list(ar=phi[[k]],order=c(1,1,0)),start.innov=4.1,n.start=1,innov=wn)
}
colnames(ar) <- paste('ar_theta', phi, sep = '_')
res[[i]][[j]] <- ar
}
}
res1 <- lapply(res, function(dat) do.call(cbind, dat))
sapply(names(res1), function(nm) write.csv(res1[[nm]],
file = paste0(nm, ".csv"), row.names = FALSE, quote = FALSE))
Последние две строки записывают данные временного ряда в .csv и сохраняют их в моем рабочем каталоге.