Skip to contents

Data Generation

Normal

library(simAutoReg)
set.seed(42)
time <- 10000L
burn_in <- 200
k <- 3
p <- 2
constant <- c(1, 1, 1)
coef <- matrix(
  data = c(
    0.4, 0.0, 0.0, 0.1, 0.0, 0.0,
    0.0, 0.5, 0.0, 0.0, 0.2, 0.0,
    0.0, 0.0, 0.6, 0.0, 0.0, 0.3
  ),
  nrow = k,
  byrow = TRUE
)
chol_cov <- chol(
  matrix(
    data = c(
      0.1, 0.0, 0.0,
      0.0, 0.1, 0.0,
      0.0, 0.0, 0.1
    ),
    nrow = k,
    byrow = TRUE
  )
)
y <- SimVAR(
  time = time,
  burn_in = burn_in,
  constant = constant,
  coef = coef,
  chol_cov = chol_cov
)

Model Fitting

FitVAROLS

yx <- YX(data = y, p = p)
simAutoReg:::.FitVAROLS(Y = yx$Y, X = yx$X)
#>           [,1]        [,2]        [,3]         [,4]        [,5]        [,6]
#> [1,] 1.0811778  0.38149582 0.014493688 -0.008235351 0.107271863 -0.01481861
#> [2,] 0.9079932 -0.01067206 0.516880335 -0.003886862 0.009852424  0.20816148
#> [3,] 1.0180537 -0.01619283 0.008703253  0.599960140 0.015098029 -0.01696596
#>             [,7]
#> [1,] 0.002528288
#> [2,] 0.005060958
#> [3,] 0.301688940

Plots

plot(x = 1:nrow(y), y = y[, 1], type = "b", xlab = "time", ylab = "y1")

plot(x = 1:nrow(y), y = y[, 2], type = "b", xlab = "time", ylab = "y2")

plot(x = 1:nrow(y), y = y[, 3], type = "b", xlab = "time", ylab = "y3")

hist(y[, 1], xlab = "y1")

hist(y[, 2], xlab = "y2")

hist(y[, 3], xlab = "y3")

Zero-inflated Poisson Y1

y <- SimVARZIP(
  time = time,
  burn_in = burn_in,
  constant = constant,
  coef = coef,
  chol_cov = chol_cov
)

Model Fitting

FitVAROLS

yx <- YX(data = y, p = p)
simAutoReg:::.FitVAROLS(Y = yx$Y, X = yx$X)
#>           [,1]         [,2]         [,3]         [,4]          [,5]
#> [1,] 0.2643668 0.0016574149 -0.081150799 -0.001438417  0.0089541947
#> [2,] 1.0689736 0.0008798782  0.505501654  0.004477010 -0.0016392229
#> [3,] 1.0256152 0.0034659010  0.001366681  0.593440454 -0.0009961553
#>              [,6]        [,7]
#> [1,]  0.038828763  0.04726703
#> [2,]  0.192314276 -0.01089324
#> [3,] -0.003687306  0.30481287

Plots

plot(x = 1:nrow(y), y = y[, 1], type = "b", xlab = "time", ylab = "y1")

plot(x = 1:nrow(y), y = y[, 2], type = "b", xlab = "time", ylab = "y2")

plot(x = 1:nrow(y), y = y[, 3], type = "b", xlab = "time", ylab = "y3")

hist(y[, 1], xlab = "y1")

hist(y[, 2], xlab = "y2")

hist(y[, 3], xlab = "y3")