Bridges a drm_pair() declaration onto the shipped pieces: two drm_node()
specifications (the marginal response sub-nodes) and the covary() covariance
edges (residual rho12 plus any higher-level corpair). This is the
documented hook point for the 0.4 engine lane — a joint bivariate drmTMB fit
replaces the two independent node fits, while the covariance edges and
accessors stay the same. 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
} # }