Estimate a within-block network model.
est_within.Rd
Function to estimate the within-block model. Both pseudo-maximum likelihood and monte carlo approximate maximum likelihood estimators are implemented.
Usage
est_within(
formula,
network,
seed = NULL,
method = "MPLE",
add_intercepts = TRUE,
clustering_with_features = FALSE,
return_network = FALSE,
...
)
Arguments
- formula
An R
formula
object of the formy ~ <model terms>
, wherey
is anetwork
object. The network object must contain block information as a vertex attribute with the name 'block'. For the details on the possible<model terms>
, seeergmTerm
and Morris, Handcock and Hunter (2008). TheL-ergmTerm
is supported to enable size-dependent coefficients.- network
a network object with one vertex attribute called 'block' representing which node belongs to which block
- seed
seed value (integer) for the random number generator
- method
If "MPLE" (the default), then the maximum pseudolikelihood estimator is returned. If "MLE", then an approximate maximum likelihood estimator is returned.
- add_intercepts
Boolean value to indicate whether adequate intercepts should be added to the provided formula so that the model in the first stage of the estimation is a nested model of the estimated model in the second stage of the estimation
- clustering_with_features
Boolean value to indicate if the clustering was carried out making use of the covariates or not (only important if
add_intercepts = TRUE
)- return_network
Boolean value to indicate if the network object should be returned in the output. This is needed if the user wants to use, e.g., the
gof
function as opposed to thegof.bigergm
function.- ...
Additional arguments, to be passed to the
ergm
function
References
Morris M, Handcock MS, Hunter DR (2008). Specification of Exponential-Family Random Graph Models: Terms and Computational Aspects. Journal of Statistical Software, 24.
Examples
adj <- c(
c(0, 1, 0, 0, 1, 0),
c(1, 0, 1, 0, 0, 1),
c(0, 1, 0, 1, 1, 0),
c(0, 0, 1, 0, 1, 1),
c(1, 0, 1, 1, 0, 1),
c(0, 1, 0, 1, 1, 0)
)
adj <- matrix(data = adj, nrow = 6, ncol = 6)
rownames(adj) <- as.character(1001:1006)
colnames(adj) <- as.character(1001:1006)
# Use non-consecutive block names
block <- c(70, 70, 70, 70, 95, 95)
g <- network::network(adj, matrix.type = "adjacency", directed = FALSE)
g %v% "block" <- block
g %v% "vertex.names" <- 1:length(g %v% "vertex.names")
est <- est_within(
formula = g ~ edges,
network = g,
parallel = FALSE,
verbose = 0,
initial_estimate = NULL,
seed = NULL,
method = "MPLE",
add_intercepts = FALSE,
clustering_with_features = FALSE
)
#> Starting maximum pseudolikelihood estimation (MPLE):
#> Obtaining the responsible dyads.
#> Evaluating the predictor and response matrix.
#> Maximizing the pseudolikelihood.
#> Finished MPLE.
#> Evaluating log-likelihood at the estimate.
#>