Ships the three items previously marked as future work, each in a scoped, honest form. Native in R and Python against one shared schema; R CMD check clean.
New
- spatial_autocorrelation — the random-field diagnostic: Moran's I on the outcome-model residuals (martingale for Cox via a Breslow baseline hazard, response for GLMs) over a k-nearest-neighbour weight matrix, attacking a new
spatial_independenceinvariance. Resolved residual autocorrelation means the effective sample size is smaller than n and i.i.d.-style intervals overstate precision. Deterministic (Cliff-Ord moments); R and Python agree bit-for-bit. - Interference exposure maps —
interference_check(..., exposure_map=)declares how spillover aggregates:mean(exposed fraction),any(contagion),sum(dose). The chosen map is recorded in the audit. - Identification repair — when the effect is not identifiable,
adjustment_checknames which latent node(s), if measured, would restore identifiability by adjustment (adjustment.repair): "measuring {U} would make the effect identifiable."
No new dependencies (numpy/pandas and base R).
Acknowledgement
AssessLite's assumptions-first framing is indebted to Weinstein & Blei, "Geometric Causal Models" (arXiv:2607.05153, 2026).
Publishes to PyPI and archives on Zenodo.