
Fit an ERGM to a declared binary rater network
Source:R/api-network-inference.R
fit_rater_network.RdModel network configurations and rater covariates after examining shared
rating coverage with rater_network_analysis() or
rater_halo_network_analysis(). Estimation uses the optional ergm package.
Usage
fit_rater_network(
x,
terms,
threshold,
relation = c("greater", "less"),
node_data = NULL,
missing = c("error", "model"),
control = NULL,
gof = NULL,
gof_control = NULL,
seed = NULL
)
# S3 method for class 'mfrm_network_ergm'
summary(object, ...)
# S3 method for class 'mfrm_network_ergm'
coef(object, ...)
# S3 method for class 'mfrm_network_ergm'
vcov(object, ...)
# S3 method for class 'mfrm_network_ergm'
confint(object, parm = NULL, level = 0.95, ...)Arguments
- x
A rater or halo network result. All eligible pair metrics are used, before graph/plot filtering; missing comparisons never become zero ties.
- terms
One-sided ERGM formula, for example
~ edges + mutualfor a directed network, or~ edges + nodecov("Experience"). Seeergm::ergmTermfor terms appropriate to the declared graph.- threshold
Required finite cutoff for the chosen pair metric.
- relation
"greater"makes a tie when the metric is strictly greater than the threshold;"less"makes one when strictly smaller. Equal values are observed non-ties. Negative alpha is not automatically a positive tie.- node_data
Optional data frame with
NodeIDs and complete node covariates. IDs must match all nodes exactly; order is matched by ID.- missing
"error"requires all dyads to be observed."model"explicitly permits unobserved dyads, represented byNA, using ergm's observed-data likelihood under an ignorable missingness assumption.- control
Optional
ergm::control.ergm()object.- gof
Optional one-sided formula for simulation-based model checks, e.g.
~ degree + distancefor an undirected graph. Seeergm::gof.ergm.- gof_control
Optional
ergm::control.gof.ergm()object.- seed
Optional integer seed; the caller's RNG state is restored.
- object
An
mfrm_network_ergmresult.- ...
Unused; unexpected arguments are rejected by extractors.
- parm
Coefficient names or positive integer positions; NULL selects all.
- level
Confidence level strictly between zero and one.
Value
An mfrm_network_ergm object with the backend fit, binary network,
complete dyads, nodes, coefficient/diagnostic/settings tables, backend
warnings and optional gof with long-form simulation tables.
summary() retains model settings and diagnostic cautions. coef() and
vcov() extract backend coefficient coordinates; confint() returns
approximate pointwise normal intervals without refitting. plot() uses
the originally stored 95% intervals or saved simulation GOF.
Use mfrm_report() and export_summary_appendix() for stored reporting.
Details
This is a binary ERGM, not a valued/signed ERGM or a rating-response model. A coefficient is a conditional network log-odds coefficient for its change statistic; it is not an MFRM severity, a causal rater effect or an independent rating-level regression. Thresholds, sampling of raters, overlap and node covariates define the question. Prespecify them and assess sensitivity by refitting at substantively plausible thresholds; do not select a threshold for significance. Different thresholds define different response networks: their AIC values do not select a best threshold.
A missing dyad includes insufficient overlap and an undefined association.
Such missingness need not be ignorable (e.g. constant scores or assignment
related to rater characteristics). missing = "model" asserts an assumption,
not a correction for informative missingness. Self-ties are excluded.
Unobserved dyads are not structural zeroes. For structural constraints or
valued ERGMs, use the returned network with ergm::ergm() explicitly.
Estimation requests MLE. For dyad-independent terms MPLE is also the MLE;
dependent terms require MCMC. A returned fit is not proof of convergence or
model adequacy. Inspect ergm::mcmc.diagnostics(result$fit) and the saved
gof object; review warnings, degeneracy, effective sample size and mixing.
GOF tail areas are simulation diagnostics, not tests of halo. Intervals in
the coefficient table are approximate pointwise normal intervals, conditional
on the chosen network model and adequate estimation. Small rater networks
may not support complex models. Neither mfrmr nor this wrapper validates
arbitrary ERGM specifications or corrects estimated-edge uncertainty.
confint() preserves unavailable coefficients as missing bounds.
Its matrix attributes retain level, method, diagnostics and notes.
These intervals remain conditional on the selected binary network and
model; they do not propagate estimated-edge or model-selection uncertainty.
Changing level does not change the fitted object or its stored plot.
References
Lamprianou, I. (2018). Investigation of rater effects using social network analysis and exponential random graph models. Educational and Psychological Measurement, 78, 430–459. doi:10.1177/0013164416689696.
Examples
# Optional integration example (loads additional modelling or rendering packages).
# example("fit_rater_network", run.dontrun = TRUE)
if (FALSE) { # \dontrun{
if (requireNamespace("ergm", quietly = TRUE) &&
requireNamespace("igraph", quietly = TRUE)) {
ratings <- load_mfrmr_data("example_core")
fit <- fit_mfrm(ratings, "Person", c("Rater", "Criterion"), "Score",
method = "JML", maxit = 300)
rn <- rater_network_analysis(fit, weight_metric = "KrippendorffAlpha")
# Four synthetic raters: illustrate the handoff, not a complex ERGM.
# Tie = pairwise interval alpha strictly above the declared 0.35 cutoff.
model <- fit_rater_network(rn, ~ edges, threshold = 0.35, seed = 41)
model$dyads
summary(model)$diagnostics
confint(model, level = 0.90) # Approximate, conditional on this binary network
mfrm_report(model)$tables$coefficients
plot(model, draw = FALSE)
}
} # }