% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/long-grmtree-threshpar.R
\name{threshpar_longitudinal_grmtree}
\alias{threshpar_longitudinal_grmtree}
\title{Extract Threshold Parameters from Longitudinal GRM Tree}
\usage{
threshpar_longitudinal_grmtree(object, node = NULL, clean_names = TRUE, ...)
}
\arguments{
\item{object}{A \code{longitudinal_grmtree} object.}

\item{node}{Optional vector of node IDs. If NULL (default), extracts from all
terminal nodes.}

\item{clean_names}{Logical. If TRUE (default), clean item names by removing
common prefixes (e.g., "resp_wideMOS_") and suffixes (e.g., "_BL", "_T1").}

\item{...}{Additional arguments (currently unused).}
}
\value{
A data.frame with columns:
\describe{
\item{Node}{Terminal node ID}
\item{Item}{Item name (cleaned if \code{clean_names = TRUE})}
\item{b1, b2, ..., bK}{Threshold parameters for each category boundary}
}
Contains \code{n_items} rows per node (not \code{2 * n_items}).
}
\description{
Extracts threshold (difficulty) parameters for each unique item from all
terminal nodes of a longitudinal GRM tree. Only T1 item parameters are
returned since the constrained model enforces equal thresholds across T1 and
T2 within each node.
}
\examples{
\dontshow{if (interactive()) withAutoprint(\{ # examplesIf}
library(grmtree)

# Load the synthetic longitudinal data
data("grmtree_long_data", package = "grmtree")

  # Prepare the wide-format response matrix
  items_t1 <- c("MOS_Listen", "MOS_Info", "MOS_Advice_Crisis", "MOS_Confide",
                "MOS_Advice_Want", "MOS_Fears", "MOS_Personal", "MOS_Understand")
  ld <- prepare_longitudinal_data(
    data = grmtree_long_data,
    items_t1 = items_t1,
    items_t2 = paste0(items_t1, "_year1"),
    covariates = c("sex", "age", "residency", "job",
                   "education", "comorbidity_count", "ever_smoker")
  )

  # Phase 1: fit the longitudinal GRM tree
  ltree <- longitudinal_grmtree(
    resp_wide ~ sex + age + residency + job +
      education + comorbidity_count + ever_smoker,
    data = ld, n_items = 8,
    control = grmtree.control(minbucket = 200)
  )

  # Print the threshold parameters
  thresholds <- threshpar_longitudinal_grmtree(ltree)
  print(thresholds)

  # Using the raw names
  threshpar_longitudinal_grmtree(ltree, clean_names = FALSE)  # raw names
\dontshow{\}) # examplesIf}
}
\seealso{
\code{\link{longitudinal_grmtree}} for Phase 1 (tree fitting),
\code{\link{discrpar_longitudinal_grmtree}} for extracting discrimination
parameters for longitudinal GRMTree,
\code{\link{itempar_longitudinal_grmtree}} for extracting item parameters
for longitudinal GRMTree
}
