Bridges a drm_pair() declaration onto the shipped pieces: two drm_node()
specifications (used for row-alignment and imputation bookkeeping) and the
covary() covariance edges (residual rho12 plus any higher-level
corpair). drm_sem() no longer fits those two nodes independently: it
calls the joint bivariate engine path and stores the same drmTMB fit under
both response names. Building the drm_node() objects wraps each plain
formula with drmTMB::bf(), so this needs drmTMB available; the declaration
itself (drm_pair()) and the accessors do not.
Examples
# The declaration itself needs no engine.
pair <- drm_pair(
activity ~ x + (1 | id),
boldness ~ x + (1 | id),
rho12 = ~ x
)
if (FALSE) { # \dontrun{
# Expansion builds the marginal sub-nodes with drmTMB::bf(), so it needs
# drmTMB available.
expanded <- drm_expand_pair(pair)
names(expanded$nodes) # the two marginal response sub-nodes
expanded$covariances # the residual rho12 (+ any corpair) edges
} # }