Learn R Programming

NMAR (version 0.1.1)

el_estimator_core: Core Empirical Likelihood Estimator

Description

Implements the core computational engine for empirical likelihood estimation under nonignorable nonresponse, including parameter solving, variance calculation, and diagnostic computation.

Usage

el_estimator_core(
  missingness_design,
  aux_matrix,
  aux_means,
  respondent_weights,
  analysis_data,
  outcome_expr,
  N_pop,
  formula,
  standardize,
  trim_cap,
  control,
  on_failure,
  family = logit_family(),
  variance_method,
  bootstrap_reps,
  start = NULL,
  trace_level = 0,
  auxiliary_means = NULL
)

Value

List containing estimation results, diagnostics, and metadata.

Arguments

missingness_design

Respondent-side missingness (response) model design matrix (intercept + predictors).

aux_matrix

Auxiliary design matrix on respondents (may have zero columns).

aux_means

Named numeric vector of auxiliary population means (aligned to columns of aux_matrix).

respondent_weights

Numeric vector of respondent weights aligned with missingness_design rows.

analysis_data

Data object used for logging and variance (survey designs supply the design object).

outcome_expr

Character string identifying the outcome expression displayed in outputs.

N_pop

Population size on the analysis scale.

formula

Original model formula used for estimation.

standardize

Logical. Whether to standardize predictors during estimation.

trim_cap

Numeric. Upper bound for empirical likelihood weight trimming.

control

List of control parameters for the nonlinear equation solver.

on_failure

Character. Action when solver fails: "return" or "error".

family

List. Link function specification (typically logit).

variance_method

Character. Variance estimation method.

bootstrap_reps

Integer. Number of bootstrap replications.

auxiliary_means

Named numeric vector of known population means supplied by the user (optional; used for diagnostics).

Details

Orchestrates EL estimation for NMAR following Qin, Leung, and Shao (2002). For data.frame inputs (IID setting) the stacked system in \((\beta, z, \lambda_x)\) with \(z = \mathrm{logit}(W)\) is solved by nleqslv::nleqslv() using an analytic Jacobian. For survey.design inputs a design-weighted analogue in \((\beta, z, \lambda_W, \lambda_x)\) is solved with an analytic Jacobian when the response family supplies second derivatives, or with numeric/Broyden Jacobians otherwise. Numerical safeguards are applied consistently across equations, Jacobian, and post-solution weights: bounded linear predictors, probability clipping in ratios, and a small floor on denominators \(D_i(\theta)\) with an active-set mask in derivatives. After solving, unnormalized masses \(d_i/D_i(\theta)\) are formed, optional trimming may be applied (with normalization only for reporting), and optional variance is computed via bootstrap when variance_method = "bootstrap".