## Not run: ------------------------------------
#
# #set up graph
# p <- 5 # number of variables
# tsteps <- 200 # number of time steps
# set.seed(3)
# ParMat <- matrix(runif(p^2, .4, .8), p, p) *
# matrix(sample(c(0,1), p^2, replace=TRUE, prob=c(.6,.4)), p, p)
# ParMat
# InnoVar <- colSums(ParMat) + 1 # innovation variance
#
# # generate data from VAR model
# set.seed(99)
# data <- matrix(NA, tsteps, p)
# data[1, ] <- rnorm(p, 0, InnoVar)
# for(i in 1:tsteps) {
# for(v in 1:p) {
# data[i, v] <- sum(data[i-1,] * ParMat[,v]) + rnorm(1,0,InnoVar[v])
# }
# }
#
# head(data) # first 6 time steps
#
# # estimate VAR model
# library(mgm)
# var.fit <- var.mgm(data, type=rep('g', p), lev=rep(1,p), lags=1, gam=.25, d=2)
#
# # compare true & estimated VAR model
# library(qgraph)
# par(mfrow=c(1,2))
# Q <- qgraph(ParMat, minimum=0, maximum=range(ParMat)[2])
# qgraph(var.fit$mpar.matrix, layout=Q$layout, minimum=0, maximum=range(ParMat)[2])
#
# # observation:
# # all parameters were recovered correctly; parameter weights are smaller due to regularization
#
## ---------------------------------------------
Run the code above in your browser using DataLab