set.seed(123)
# Groups' size
nvec <- sample(100:500, 2)
M <- length(nvec)
n <- sum(nvec)
# Parameters
lambda <- 0.4
beta <- c(1.5, 2.2, -0.9)
gamma <- c(1.5, -1.2)
delta <- c(1, 0.87, 0.75, 0.6)
delbar <- 0.05
rho <- 0.5
theta <- c(lambda, beta, gamma)
# X
X <- cbind(rnorm(n, 1, 1), rexp(n, 0.4))
# Network
Glist <- list()
for (m in 1:M) {
nm <- nvec[m]
Gm <- matrix(0, nm, nm)
max_d <- 30
for (i in 1:nm) {
tmp <- sample((1:nm)[-i], sample(0:max_d, 1))
Gm[i, tmp] <- 1
}
rs <- rowSums(Gm); rs[rs == 0] <- 1
Gm <- Gm/rs
Glist[[m]] <- Gm
}
# data
data <- data.frame(x1 = X[,1], x2 = X[,2])
ytmp <- simcdnet(formula = ~ x1 + x2 | x1 + x2, Glist = Glist, theta = theta,
deltabar = delbar, delta = delta, rho = rho, data = data)
y <- ytmp$y
# plot histogram
hist(y, breaks = max(y))
data <- data.frame(yt = y, x1 = data$x1, x2 = data$x2)
rm(list = ls()[!(ls() %in% c("Glist", "data"))])
out <- cdnet(formula = yt ~ x1 + x2, contextual = TRUE, Glist = Glist,
data = data, Rbar = 10, estim.rho = TRUE, optimizer = "nlm")
summary(out)
Run the code above in your browser using DataLab