Skip to contents

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.

Usage

drm_expand_pair(pair)

Arguments

pair

A drm_pair object.

Value

A list with nodes (named list of drm_node) and covariances (list of drm_covary).

See also

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
} # }