Read a compact summary of the checks from describe_mfrm_data() before
fitting a model. Save it with review <- summary(data_review) and select
the tables you need with $, as in the example.
Usage
# S3 method for class 'mfrm_data_description'
summary(object, digits = 3, top_n = 10, ...)Arguments
- object
Output from
describe_mfrm_data().- digits
Number of digits for numeric rounding.
- top_n
Maximum rows shown in preview blocks.
- ...
Reserved for generic compatibility.
Value
An object of class summary.mfrm_data_description.
overview: design/sample countsmissing: top columns by missingnessscore_distribution: compact score-usage table, including zero-count categories retained by the prepared score supportfacet_overview: facet-level coverage summarystructural_missingness: declared assignment coverage summary; status is"not_declared"when no assignment roster was suppliedstructural_level_coverage: expected versus observed level countsdesign_connectivity: Person-facet component counts for observed and declared-expected designsdesign_components: component sizes and facet-level labels; person labels are suppressed unless explicitly requested indescribe_mfrm_data()linkage_summary: sparse-support and shared-person counts by facetduplicate_cell_summary: aggregate duplicate-cell countsagreement: selected-facet agreement summary when availableagreement_settings: selected scorer facet, matching context, and statusrow_retention: row counts before and after preparation filterspreparation_notes: structured preparation notes retained fromdescribe_mfrm_data()reporting_map: manuscript-oriented guide to what is covered here versus which companion outputs should be consultedcaveats: structured warning/review rows for score-support issues;print(summary(ds))shows a compactCaveatsblock when rows are presentnotes: plain-language explanations of missingness, preparation, score support, and design-review findings
Details
data_review holds the complete data checks; review holds summary tables
and notes. Neither object contains model estimates. The default top_n = 10
limits the missing-column and score-distribution previews; use
data_review$missing_by_column and data_review$score_distribution to see
the complete tables.
Interpreting output
Recommended read order:
overview: retained ratings (Observations), persons, facets, and categories. Compare input and retainedRowsinrow_retentionand investigate unexpectedDroppedRows.CategoryPolicyandScoreRecodeddistinguish the selected policy from actual changes to score values. Older results without the policy record report"not_recorded"; an absent map givesNAfor recoding.missing: inputNAcounts by column. This table is namedmissing_by_columnin the originaldata_reviewobject. Declared missing-code replacements and invalid score text can cause additional row loss; inspectdata_review$missing_recodingandpreparation_notes.score_distribution: category usage balance.notes/ printedCaveats: retained zero-count score categories and related score-support caveats. Withkeep_original = TRUE, a retained unused internal category stops fitting; review the data and rubric first.facet_overview: coverage per facet (minimum/maximum weighted counts).agreement: observed-score agreement for the selected scorer facet (when available).design_connectivity: check for more than one observed component before comparing facet levels.structural_missingnessreports planned omissions only when an assignment roster was supplied;not_declareddoes not mean that no ratings are missing.
Very low MinWeightedN in facet_overview is a practical warning for
unstable downstream facet estimates.
Typical workflow
Run
describe_mfrm_data()on raw long-format data.Inspect
review <- summary(data_review)before model fitting.Correct input issues and repeat the review, then pass the corrected rating data to
fit_mfrm()with the same preparation settings.
Examples
library(mfrmr)
ratings <- load_mfrmr_data("example_operational")
# Demonstrate two missing scores in a copy of the example data
ratings$Score[1:2] <- NA
data_review <- describe_mfrm_data(
data = ratings,
person = "Person",
facets = c("Rater", "Criterion"),
score = "Score",
rating_min = 1,
rating_max = 4,
category_policy = "preserve"
)
review <- summary(data_review)
review$row_retention # 282 input rows, 280 retained rows
#> Stage Rows DroppedRows
#> 1 input_selected_columns 282 0
#> 2 after_missing_and_weight_filter 280 2
#> DroppedReason
#> 1
#> 2 missing values or non-positive weights
review$missing # Score has 2 missing input values
#> Column Missing
#> 1 Score 2
#> 2 Criterion 0
#> 3 Person 0
#> 4 Rater 0
review$overview # Counts describe the retained ratings
#> Observations TotalWeight Persons Facets Categories RatingMin RatingMax
#> 1 280 280 48 2 4 1 4
#> RatingRangeSource RatingMinSource RatingMaxSource CategoryPolicy ScoreRecoded
#> 1 declared declared declared preserve FALSE
review$notes # Explanations to read before fitting
#> [1] "Missing values were detected in one or more input columns."
#> [2] "Structural missingness was not assessed because `expected_design` was not supplied. Absent rows cannot be distinguished from cells that were never assigned."
#> [3] "Dropped 2 row(s) with missing values or non-positive weights before estimation. Pass `missing_codes = ...` to recode user-specified missing markers, or pre-process upstream if you need to keep the row."
# The original description retains the full missingness table
data_review$missing_by_column
#> # A tibble: 4 × 2
#> Column Missing
#> <chr> <int>
#> 1 Person 0
#> 2 Rater 0
#> 3 Criterion 0
#> 4 Score 2
# Investigate missingness before using ratings in fit_mfrm()
