Skip to contents

Build a subset connectivity report (preferred alias)

Usage

subset_connectivity_report(
  fit,
  diagnostics = NULL,
  top_n_subsets = NULL,
  min_observations = 0
)

Arguments

fit

Output from fit_mfrm().

diagnostics

Optional output from diagnose_mfrm().

top_n_subsets

Optional maximum number of subset rows to keep.

min_observations

Minimum observations required to keep a subset row.

Value

A named list with subset-connectivity components. Class: mfrm_subset_connectivity.

Details

summary(out) is supported through summary(). plot(out) is dispatched through plot() for class mfrm_subset_connectivity (type = "subset_observations", "facet_levels", or "linking_matrix" / "coverage_matrix" / "design_matrix").

Interpreting output

  • summary: number and size of connected subsets.

  • subset table: whether data are fragmented into disconnected components.

  • facet-level columns: where connectivity bottlenecks occur.

Typical workflow

  1. Run subset_connectivity_report(fit).

  2. Confirm near-single-subset structure when possible.

  3. Use results to justify linking/anchoring strategy.

Examples

toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score", method = "JML", maxit = 25)
out <- subset_connectivity_report(fit)
summary(out)
#> mfrmr Subset Connectivity Summary 
#>   Class: mfrm_subset_connectivity
#>   Components (4): summary, listing, nodes, settings
#> 
#> Subset overview
#>  Subset Criterion Person Rater Observations ObservationPercent
#>       1         4     48     4          768                100
#> 
#> Subset/node rows: listing
#>  Subset     Facet LevelsN
#>       1 Criterion       4
#>       1    Person      48
#>       1     Rater       4
#>                                                                                                                                                                                                                                                                                          Levels
#>                                                                                                                                                                                                                                                       Accuracy, Content, Language, Organization
#>  P001, P002, P003, P004, P005, P006, P007, P008, P009, P010, P011, P012, P013, P014, P015, P016, P017, P018, P019, P020, P021, P022, P023, P024, P025, P026, P027, P028, P029, P030, P031, P032, P033, P034, P035, P036, P037, P038, P039, P040, P041, P042, P043, P044, P045, P046, P047, P048
#>                                                                                                                                                                                                                                                                              R01, R02, R03, R04
#>  Observations ObservationPercent                  Ruler
#>           768                100 [====================]
#>           768                100 [====================]
#>           768                100 [====================]
#> 
#> Settings
#>           Setting Value
#>     top_n_subsets    NA
#>  min_observations     0
#>       is_disjoint FALSE
#> 
#> Notes
#>  - Legacy-compatible Table 6 subset/connectivity report with subset and node listings.
p_sub <- plot(out, draw = FALSE)
p_design <- plot(out, type = "design_matrix", draw = FALSE)
class(p_sub)
#> [1] "mfrm_plot_data" "list"          
class(p_design)
#> [1] "mfrm_plot_data" "list"          
out$summary[, c("Subset", "Observations", "ObservationPercent")]
#>   Subset Observations ObservationPercent
#> 1      1          768                100