Skip to contents

Analyze the MFRM design network

Usage

mfrm_network_analysis(
  fit,
  diagnostics = NULL,
  top_n_subsets = NULL,
  min_observations = 0,
  include_graph = FALSE
)

Arguments

fit

Output from fit_mfrm().

diagnostics

Optional output from diagnose_mfrm().

top_n_subsets

Optional maximum number of connected-subset rows to retain before constructing the graph.

min_observations

Minimum observations required to keep a subset row.

include_graph

Logical; if TRUE, include the underlying igraph object in the returned bundle. Defaults to FALSE so outputs remain easy to serialize.

Value

A bundle of class mfrm_network_analysis containing:

  • summary: graph-level connectedness and vulnerability metrics

  • node_metrics: node-level degree, strength, graph-theoretic centrality, and cutpoint flags

  • edge_metrics: edge-level weights, betweenness, and bridge flags

  • facet_summary: facet-level aggregation of node/bridge indicators

  • cut_nodes: articulation-point rows from node_metrics

  • bridge_edges: bridge rows from edge_metrics

Details

mfrm_network_analysis() treats the person/facet-level observation design as an undirected weighted graph. Nodes are person or facet levels; edges connect levels that co-occur in at least one observed rating; edge weights are co-observation counts. The resulting network metrics are design diagnostics, not psychometric measures of person ability or rater quality. This is the package's assignment/co-observation network: unlike the score-relation networks returned by rater_network_analysis() and rater_halo_network_analysis(), it can expose disconnected measurement subsets relevant to common-scale interpretation. SourceSubsets, RetainedSubsets and ScopeComplete record whether subset filters retained the full observed design. Connectedness of selected subsets cannot be generalized to omitted subsets. Recreate older design reviews from the existing fit and matching diagnostics to record this coverage. plot(net, type = "centrality"), plot(net, type = "facet_summary"), and plot(net, type = "network") provide immediate visual checks; use draw = FALSE to extract reusable plot data.

The most useful review columns are:

  • Components: more than one component means the design has disconnected measurement subsets.

  • IsArticulationPoint: a node whose removal would increase disconnectedness.

  • IsBridge: an edge whose removal would increase disconnectedness.

  • Betweenness: a routing-dependence indicator; high values identify levels that carry many shortest paths through the design graph.

In incomplete rater-mediated designs, these graph summaries help identify fragile linking structures before interpreting facet measures or planning additional data collection.

References

  • McEwen, M. R. (2015). Development of a Software Prototype for Generating and Classifying Incomplete Many-Facet-Rasch Model Rating Designs. Brigham Young University.

  • Csardi, G., Nepusz, T., Traag, V., Horvat, S., Zanini, F., Noom, D., & Muller, K. (2026). igraph: Network Analysis and Visualization.

Examples

# \donttest{
toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score",
  method = "JML", maxit = 300
)
if (requireNamespace("igraph", quietly = TRUE)) {
  net <- mfrm_network_analysis(fit)
  net$summary
  head(net$node_metrics)
  net$cut_nodes
  plot(net, type = "centrality", draw = FALSE)
}
# }