Skip to contents

PDRobust 0.3.8

Interface correction and printed results

  • Corrected the public ORCI() argument name from fomula to formula in the function, validation messages, help, examples, vignettes, README, and interface tests. Calls that supplied the former misspelling by name must use formula; positional calls are unchanged.
  • Custom print methods now introduce their results with a sentence, display their principal numeric or tabular component, and draw the stored user-facing plot or plots when present. The underlying plot objects and all statistical calculations are unchanged.

Data validation and standardization

  • Replaced repeated subject-level lookups with grouped visit counts, treatment flags, and stable survival ordering. Both validation passes and the existing public interfaces, data ordering, and audit attributes remain.
  • Documented all DataCheck() return fields and DataStandard() attributes, including the distinction between repairability and final analysis readiness. Corrected the data-workflow vignette’s endpoint, row-removal, and metadata descriptions to match the existing implementation.
  • Added regression coverage for factor-covariate attrition and the final readiness check when deletion removes a treatment group.
  • Excluded the large-sample development script and saved test plot from source archives; these files remain in the working repository.

CRAN release preparation

  • Retained the 0.3.7 treatment-1 survival-favorable estimator and documented how to convert treatment coding and effect contrasts relative to Zhang et al. (2026). Added the methodological citation and an implementation guide. Outcome-noise sensitivity is explicitly distinguished from the paper’s principal-ignorability sensitivity procedure.
  • Corrected the documented ORCI() argument spelling and QR return values without changing function signatures or numerical estimators.
  • Documented all bundled data columns and the existing print, plot, and subsetting methods.
  • Added reproducible seeds and explained demonstration-only bootstrap counts in the README and workflow vignettes; clarified the binary effect link and the interpretation of outcome-noise sensitivity analysis.
  • Declared the utility namespace import used for global-variable registration and excluded development reports, release artifacts, and the top-level sensitivity image from source builds.
  • Shortened the package title and made the software citation follow the package metadata.
  • Corrected vignette figure paths for the documentation website and supplied descriptive alternative text for workflow figures.

PDRobust 0.3.7.2

Live bootstrap progress

  • HTEAllT() and HTESepT() accept an optional progress_callback without changing their estimands, fitting logic, bootstrap acceptance rules, or returned numerical results.
  • The callback receives structured updates before model fitting, after the point estimate, after every bootstrap attempt, and at completion. Updates report successful replications, total and failed attempts, elapsed time, and the last worker-update time.
  • A callback error produces one warning and disables monitoring for that run; it does not interrupt or alter the scientific calculation.

PDRobust 0.3.7

Interfaces and example data

  • All ten Mapping() arguments are required and every package example now supplies the five structural column roles explicitly.
  • ORCI() now requires the treatment-group argument a; the obsolete treatment_group argument and its default were removed.
  • Tests and vignettes now use the current ImperfectConSample contract: noncanonical clinical column names, character visit months 0/6/12, preserved X1-X6 covariate names, and explicitly reported recoverable imperfections.

Model warnings and diagnostics

  • Logistic warnings are normalized so nonconvergence and separation are each reported once per fit instead of duplicating both glm() and package-level messages.
  • HTESepT(), HTEAllT(), and SA() consolidate repeated point-estimate nuisance warnings at the public analysis boundary. Bootstrap warnings remain silent during resampling and are aggregated in bootstrap_info.
  • Analysis-internal principal-score and outcome models are fitted once for each distinct data/formula combination and reused for the two counterfactual treatment predictions, eliminating identical duplicate fits without changing the prediction equations.
  • Returned model diagnostics identify the analysis, sample type, target time, treatment group, fitting rows and subjects, response counts, formula, predictors, rank status, finite-prediction status, convergence, and separation.

Return precision

  • Final user-facing predictions, estimates, diagnostics, confidence intervals, odds ratios, weighted summaries, and sensitivity tables are rounded to three decimal places.
  • Full precision is retained for analysis data, internal nuisance predictions, fitted models, probabilities, weights, score equations, optimization, bootstrap replicates, and confidence-interval calculations.
  • generate_data_example() performs its simulation at full precision and rounds only the final generated data frame.

Validation cleanup

  • Binary conversion and invalid-row detection now share one authoritative implementation.
  • Validation guaranteed by Mapping() is no longer repeated by DataCheck().
  • DataStandard() now consumes the authoritative initial DataCheck() result instead of repeating mapping, column, and nonempty-data checks.
  • Prepared-data helpers now reuse the validated mapping instead of retrieving and validating it multiple times in the same public call.

PDRobust 0.3.6

Estimation and bootstrap

  • SA() now supports continuous and binary outcomes. Continuous analyses retain the original additive-noise and closed-form equations; binary analyses use logistic outcome prediction and the bounded-link HTE estimating equation.
  • Subject-level bootstrap resampling still preserves complete panels and assigns a new bootstrap ID to every sampled cluster. Ordinary model warnings are now recorded without automatically rejecting otherwise finite, converged replicates.
  • Bootstrap diagnostics now categorize rejected replicates and retain warnings emitted by accepted or rejected attempts. The arbitrary coefficient-magnitude rejection threshold was removed.
  • Binary estimating equations use numerically stable logistic calculations and may accept a finite root reached at the iteration limit when its residual precision satisfies the requested tolerance.

Prediction and validation

  • OutPred() retains the original missing-outcome filtering, treatment and survival assignments, linear/logistic model choice, response prediction, and row-aligned numeric return value.
  • Separation, extreme fitted probabilities, rank-deficient nuisance fits, and ordinary fitting or prediction warnings are no longer fatal when finite predictions remain available. Genuinely non-finite or misaligned predictions and non-estimable HTE modifier systems remain errors.
  • Ill-conditioned but full-rank closed-form estimating systems now warn and are accepted only when solving produces finite coefficients.

Data, documentation, plots, and tests

  • Examples now use the package datasets BiSample and ImperfectConSample through standard data() loading. The redundant CSV-backed pd_example_data() helper was removed.
  • Pooled HTE and ORCI forest plots use stable, distinct variable colors with matching point, interval, and legend mappings.
  • Tests now cover binary and continuous sensitivity analysis, finite warning-tolerant nuisance prediction, successful built-in-data bootstrap estimation, categorized bootstrap diagnostics, and plot color mappings.

PDRobust 0.3.5

Model validation

  • Propensity-score, principal-score, outcome, odds-ratio, quantile-regression, HTE, and sensitivity-analysis fitting now use shared package-level preflight checks.
  • Missing formula variables, invalid model matrices, zero-variance predictors, rank deficiency, insufficient complete cases, nonvarying responses, separation, non-estimable coefficients, fitting warnings, convergence failures, and singular estimating systems now produce contextual PDRobust errors instead of leaking raw model-fitting conditions.

Tests

  • Added a deterministic, side-effect-free simulation helper adapted from the package’s example-data generator. It creates continuous, binary, valid, and deliberately invalid test panels.
  • Expanded data workflow tests for validation contracts, supported and unsupported encodings, edge cases, immutability, reproducibility, audit attributes, attrition, and value idempotency.
  • Expanded prediction, analysis, profile, sensitivity, and diagnostic tests for boundary inputs, model-matrix validity, estimability, separation, convergence, reproducibility, and preservation of user data.

PDRobust 0.3.4

Diagnostics

  • PSDiag() now always truncates internally estimated propensity scores to [0.01, 0.99] before ordinary IPTW weights and weighted SMDs are calculated.
  • PrinSDiag() now applies the same fixed propensity-score truncation before evaluating the cutoff principal-score diagnostic equation.

Tests

  • Principal-score prediction fixtures now use a larger probabilistically generated panel with non-separated survival outcomes and a full-rank design matrix.
  • Tests explicitly verify principal-model rank, response variation, convergence, absence of fitting warnings, and fixed diagnostic propensity truncation.

Documentation

  • The README now demonstrates the complete public workflow and identifies the principal returned class and components of every exported function.
  • All vignettes were revised to document data preparation, independent prediction models, diagnostics, profiling, HTE estimation, and sensitivity analysis under the 0.3.4 interface.