% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/api-estimation.R
\name{plot.mfrm_data_description}
\alias{plot.mfrm_data_description}
\title{Plot a data-description object}
\usage{
\method{plot}{mfrm_data_description}(
  x,
  y = NULL,
  type = c("score_distribution", "facet_levels", "missing"),
  main = NULL,
  palette = NULL,
  label_angle = 45,
  draw = TRUE,
  ...
)
}
\arguments{
\item{x}{Output from \code{\link[=describe_mfrm_data]{describe_mfrm_data()}}.}

\item{y}{Reserved for generic compatibility.}

\item{type}{Plot type: \code{"score_distribution"}, \code{"facet_levels"}, or \code{"missing"}.}

\item{main}{Optional title override.}

\item{palette}{Optional named colors (\code{score}, \code{facet}, \code{missing}).}

\item{label_angle}{X-axis label angle for bar plots.}

\item{draw}{If \code{TRUE}, draw using base graphics.}

\item{...}{Reserved for generic compatibility.}
}
\value{
A plotting-data object of class \code{mfrm_plot_data}.
}
\description{
Plot a data-description object
}
\details{
This method draws quick pre-fit quality views from \code{\link[=describe_mfrm_data]{describe_mfrm_data()}}:
\itemize{
\item score distribution balance
\item facet-level structure size
\item missingness by selected columns
}
}
\section{Interpreting output}{

\itemize{
\item \code{"score_distribution"}: bar chart of weighted observation counts per
score category.  Y-axis is \code{WeightedN} (sum of weights for each
category).  Categories with very few observations (< 10) may produce
unstable threshold estimates.  A roughly uniform or unimodal
distribution is ideal; heavy floor/ceiling effects compress the
measurement range.
\item \code{"facet_levels"}: bar chart showing the number of distinct levels
per facet.  Useful for verifying that the design structure matches
expectations (e.g., expected number of raters or criteria).  Very
large numbers of levels increase computation time and may require
higher \code{maxit} in \code{\link[=fit_mfrm]{fit_mfrm()}}.
\item \code{"missing"}: bar chart of missing-value counts per input column.
Columns with non-zero counts should be investigated before
fitting---rows with missing scores, persons, or facet IDs are
dropped during estimation.
}
}

\section{Typical workflow}{

\enumerate{
\item Run \code{\link[=describe_mfrm_data]{describe_mfrm_data()}} before fitting.
\item Inspect \code{summary(ds)} and \code{plot(ds, type = "missing")}.
\item Check category/facet balance with other plot types.
\item Fit model after resolving obvious data issues.
}
}

\examples{
toy <- load_mfrmr_data("example_core")
ds <- describe_mfrm_data(toy, "Person", c("Rater", "Criterion"), "Score")
p <- plot(ds, draw = FALSE)
}
\seealso{
\code{\link[=describe_mfrm_data]{describe_mfrm_data()}}, \code{plot()}
}
