This follows the vp_cp / RealVAMS structure:
Outer PQL loop updates working response (z_work) and weights (w_num).
Inner EM loop (with z_work, w_num fixed) updates (beta, eta, tau2).
glmmFEL_pl(
y,
X,
Z,
family = c("binomial_probit", "binomial_logit", "poisson_log"),
approx = c("RSPL", "MSPL"),
max_iter = 200L,
tol = 1e-06,
control = list()
)RSPL vs MSPL:
#' - MSPL uses \(\mathrm{Var}(\eta \mid \beta, y) = (Z^\top W Z + G^{-1})^{-1}\)
(called H.inv in vp_cp).
RSPL uses the eta-eta block of the inverse of the full augmented system (called C.mat in vp_cp) for the variance-component moment update.