sart {CDatanet} | R Documentation |
Estimating Tobit models with social interactions
Description
sart
estimates Tobit models with social interactions (Xu and Lee, 2015).
Usage
sart(
formula,
Glist,
starting = NULL,
Ey0 = NULL,
optimizer = "fastlbfgs",
npl.ctr = list(),
opt.ctr = list(),
cov = TRUE,
cinfo = TRUE,
data
)
Arguments
formula |
a class object formula: a symbolic description of the model. |
Glist |
The network matrix. For networks consisting of multiple subnets, |
starting |
(optional) a starting value for |
Ey0 |
(optional) a starting value for |
optimizer |
is either |
npl.ctr |
a list of controls for the NPL method (see details of the function |
opt.ctr |
a list of arguments to be passed in |
cov |
a Boolean indicating if the covariance must be computed. |
cinfo |
a Boolean indicating whether information is complete ( |
data |
an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables
in the model. If not found in data, the variables are taken from |
Details
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 modelswith 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}
Value
A list consisting of:
info |
a list of general information on the model. |
estimate |
the Maximum Likelihood (ML) estimator. |
Ey |
|
GEy |
the average of |
cov |
a list including (if |
details |
outputs as returned by the optimizer. |
References
Xu, X., & Lee, L. F. (2015). Maximum likelihood estimation of a spatial autoregressive Tobit model. Journal of Econometrics, 188(1), 264-280, doi:10.1016/j.jeconom.2015.05.004.
See Also
Examples
# Groups' size
set.seed(123)
M <- 5 # Number of sub-groups
nvec <- round(runif(M, 100, 200))
n <- sum(nvec)
# Parameters
lambda <- 0.4
Gamma <- c(2, -1.9, 0.8, 1.5, -1.2)
sigma <- 1.5
theta <- c(lambda, Gamma, sigma)
# X
X <- cbind(rnorm(n, 1, 1), rexp(n, 0.4))
# Network
G <- 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
G[[m]] <- Gm
}
# Data
data <- data.frame(X, peer.avg(G, cbind(x1 = X[,1], x2 = X[,2])))
colnames(data) <- c("x1", "x2", "gx1", "gx2")
## Complete information game
ytmp <- simsart(formula = ~ x1 + x2 + gx1 + gx2, Glist = G, theta = theta,
data = data, cinfo = TRUE)
data$yc <- ytmp$y
## Incomplete information game
ytmp <- simsart(formula = ~ x1 + x2 + gx1 + gx2, Glist = G, theta = theta,
data = data, cinfo = FALSE)
data$yi <- ytmp$y
# Complete information estimation for yc
outc1 <- sart(formula = yc ~ x1 + x2 + gx1 + gx2, optimizer = "nlm",
Glist = G, data = data, cinfo = TRUE)
summary(outc1)
# Complete information estimation for yi
outc1 <- sart(formula = yi ~ x1 + x2 + gx1 + gx2, optimizer = "nlm",
Glist = G, data = data, cinfo = TRUE)
summary(outc1)
# Incomplete information estimation for yc
outi1 <- sart(formula = yc ~ x1 + x2 + gx1 + gx2, optimizer = "nlm",
Glist = G, data = data, cinfo = FALSE)
summary(outi1)
# Incomplete information estimation for yi
outi1 <- sart(formula = yi ~ x1 + x2 + gx1 + gx2, optimizer = "nlm",
Glist = G, data = data, cinfo = FALSE)
summary(outi1)