simsart | R Documentation |
simsart
simulates censored data with social interactions (see Xu and Lee, 2015).
simsart(formula, Glist, theta, tol = 1e-15, maxit = 500, cinfo = TRUE, data)
formula |
a class object |
Glist |
The network matrix. For networks consisting of multiple subnets, |
theta |
a vector defining the true value of |
tol |
the tolerance value used in the fixed-point iteration method to compute |
maxit |
the maximum number of iterations in the fixed-point iteration method. |
cinfo |
a Boolean indicating whether information is complete ( |
data |
an optional data frame, list, or environment (or object coercible by |
For a complete information model, the outcome y_i
is defined as:
\begin{cases}
y_i^{\ast} = \lambda \bar{y}_i + \mathbf{z}_i'\Gamma + \epsilon_i, \\
y_i = \max(0, y_i^{\ast}),
\end{cases}
where \bar{y}_i
is the average of y
among peers,
\mathbf{z}_i
is a vector of control variables,
and \epsilon_i \sim N(0, \sigma^2)
.
In the case of incomplete information models with rational expectations, y_i
is defined as:
\begin{cases}
y_i^{\ast} = \lambda E(\bar{y}_i) + \mathbf{z}_i'\Gamma + \epsilon_i, \\
y_i = \max(0, y_i^{\ast}).
\end{cases}
A list consisting of:
y^{\ast}
, the latent variable.
The observed censored variable.
E(y)
, the expected value of y
.
The average of y
among peers.
The average of E(y)
among peers.
A list including average and individual marginal effects.
The number of iterations performed per sub-network in the fixed-point iteration method.
Xu, X., & Lee, L. F. (2015). Maximum likelihood estimation of a spatial autoregressive Tobit model. Journal of Econometrics, 188(1), 264-280, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.jeconom.2015.05.004")}.
sart
, simsar
, simcdnet
.
# Define group sizes
set.seed(123)
M <- 5 # Number of sub-groups
nvec <- round(runif(M, 100, 200)) # Number of nodes per sub-group
n <- sum(nvec) # Total number of nodes
# Define parameters
lambda <- 0.4
Gamma <- c(2, -1.9, 0.8, 1.5, -1.2)
sigma <- 1.5
theta <- c(lambda, Gamma, sigma)
# Generate covariates (X)
X <- cbind(rnorm(n, 1, 1), rexp(n, 0.4))
# Construct network adjacency matrices
G <- list()
for (m in 1:M) {
nm <- nvec[m] # Nodes in sub-group m
Gm <- matrix(0, nm, nm) # Initialize adjacency matrix
max_d <- 30 # Maximum degree
for (i in 1:nm) {
tmp <- sample((1:nm)[-i], sample(0:max_d, 1)) # Random connections
Gm[i, tmp] <- 1
}
rs <- rowSums(Gm) # Normalize rows
rs[rs == 0] <- 1
Gm <- Gm / rs
G[[m]] <- Gm
}
# Prepare data
data <- data.frame(X, peer.avg(G, cbind(x1 = X[, 1], x2 = X[, 2])))
colnames(data) <- c("x1", "x2", "gx1", "gx2") # Add column names
# Complete information game simulation
ytmp <- simsart(formula = ~ x1 + x2 + gx1 + gx2,
Glist = G, theta = theta,
data = data, cinfo = TRUE)
data$yc <- ytmp$y # Add simulated outcome to the dataset
# Incomplete information game simulation
ytmp <- simsart(formula = ~ x1 + x2 + gx1 + gx2,
Glist = G, theta = theta,
data = data, cinfo = FALSE)
data$yi <- ytmp$y # Add simulated outcome to the dataset
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.