cdnet {CDatanet} | R Documentation |

`cdnet`

is used to estimate peer effects on counting data with rational expectations (see details). The model is presented in Houndetoungan (2022).

```
cdnet(
formula,
contextual,
Glist,
Rbar = NULL,
estim.rho = FALSE,
starting = list(theta = NULL, deltabar = NULL, delta = NULL, rho = NULL),
yb0 = NULL,
optimizer = "fastlbfgs",
npl.ctr = list(),
opt.ctr = list(),
cov = TRUE,
data
)
```

`formula` |
an object of class formula: a symbolic description of the model. The |

`contextual` |
(optional) logical; if true, this means that all individual variables will be set as contextual variables. Set the
the |

`Glist` |
the adjacency matrix or list sub-adjacency matrix. |

`Rbar` |
the value of Rbar. If not provided, it is automatically set at |

`estim.rho` |
indicates if the parameter |

`starting` |
(optional) starting value of |

`yb0` |
(optional) expectation of y. |

`optimizer` |
is either |

`npl.ctr` |
list of controls for the NPL method (see details). |

`opt.ctr` |
list of arguments to be passed in |

`cov` |
a Boolean indicating if the covariance should be computed. |

`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 |

Following Houndetoungan (2022), the count data `\mathbf{y}`

is generated from a latent variable `\mathbf{y}^*`

.
The latent variable is given for all i as

`y_i^* = \lambda \mathbf{g}_i \mathbf{E}(\bar{\mathbf{y}}|\mathbf{X},\mathbf{G}) + \mathbf{x}_i'\beta + \mathbf{g}_i\mathbf{X}\gamma + \epsilon_i,`

where `\epsilon_i \sim N(0, 1)`

.

Then, `y_i = r`

iff `a_r \leq y_i^* \leq a_{r+1}`

, where
`a_0 = -\inf`

, `a_1 = 0`

, `a_r = \sum_{k = 1}^r\delta_k`

.
The parameter are subject to the constraints `\delta_r \geq \lambda`

if `1 \leq r \leq \bar{R}`

, and
`\delta_r = (r - \bar{R})^{\rho}\bar{\delta} + \lambda`

if `r \geq \bar{R} + 1`

. The unknown parameters to be estimated are
`\lambda`

, `\beta`

, `\gamma`

, `\delta_2`

, ..., `\delta_{\bar{R}}`

, `\bar{\delta}`

, and `\rho`

.

`npl.ctr`

The model parameters is estimated using the Nested Partial Likelihood (NPL) method. This approach
starts with a guess of `\theta`

and `\bar{y}`

and constructs iteratively a sequence
of `\theta`

and `\bar{y}`

. The solution converges when the `L_1`

distance
between two consecutive `\theta`

and `\bar{y}`

is less than a tolerance.

The argument `npl.ctr`

is an optional list which contain

tol the tolerance of the NPL algorithm (default 1e-4),

maxit the maximal number of iterations allowed (default 500),

print a boolean indicating if the estimate should be printed at each step.

S the number of simulation performed use to compute integral in the covariance by important sampling.

A list consisting of:

`info` |
list of general information about the model. |

`estimate` |
NPL estimator. |

`yb` |
ybar (see details), expectation of y. |

`Gyb` |
average of the expectation of y among friends. |

`cov` |
list of covariance matrices. |

`details` |
step-by-step output as returned by the optimizer. |

Houndetoungan, E. A. (2022). Count Data Models with Social Interactions under Rational Expectations. Available at SSRN 3721250, doi:10.2139/ssrn.3721250.

```
set.seed(123)
# Groups' size
nvec <- rep(100, 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 = 5, estim.rho = TRUE, optimizer = "nlm")
summary(out)
```

[Package *CDatanet* version 2.1.2 Index]