Как моделировать из простой модели SETAR - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь смоделировать значения из модели SETAR (2; 1,1) с нулевым перехватом со следующим кодом.

xgen <- function(pi, Ni = 50, burn = 5000, r = 0, del = NULL, sig = 1, doplot = F) {
  L <- Ni + burn; et <- rnorm(L,sd = sig); Xt <- rep(0L,L)
  if (is.null(del) ) { # || del == 0L
    for (k in 2:L) {
      if (Xt[k-1] <= r) {
        Xt[k] <- pi*Xt[k-1] + et[k-1]
      } else {
        Xt[k] <- et[k-1]
      }
    }
  } else if (0 <= del && del <= 1) {
    gap <- pi*del
    for (k in 2:L) {
      if (Xt[k-1] <= r) {
        Xt[k] <- pi*Xt[k-1] + et[k-1]
      } else {
        Xt[k] <- (pi+gap)*Xt[k-1] + et[k-1]
      }
    }
  } else {
    stop("Variable 'del' should be between 0 to 1.")
  }
  val <- ts(Xt[-(1:burn)])
  if (doplot) {
    plot(val, xlab = expression(t),ylab = expression(X[t]) )
    abline(h = r, col = "red")
  }
  return(val)
}

Я пытаюсь проверить, правильно ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...