Skip to content

Add optional non-negative post-processing for MCNNM baselines#34

Draft
fedemolina wants to merge 1 commit into
TianyiPeng:mainfrom
fedemolina:feature/mcnnm-baseline-projection
Draft

Add optional non-negative post-processing for MCNNM baselines#34
fedemolina wants to merge 1 commit into
TianyiPeng:mainfrom
fedemolina:feature/mcnnm-baseline-projection

Conversation

@fedemolina

Copy link
Copy Markdown
Contributor

Summary

  • Add MCNNMPanelSolver.fit(...) dispatch across suggested-rank, fixed-regularizer, and cross-validation paths.
  • Add baseline_projection="clip_nonnegative" as optional post-estimation support correction on the final baseline fitted_value + M.
  • Preserve raw outputs as canonical (res.baseline, res.tau) and expose projected companion outputs (res.baseline_projected, res.tau_projected, res.projection_diagnostics).
  • Add focused tests, a slim local documentation page, and an executable tutorial notebook.

Notes

This is intentionally not framed as a constrained MC-NNM estimator. The projection is transparent post-processing so users can inspect how enforcing a non-negative baseline changes the implied treatment effect.

Validation

  • env PYTHONPATH=src poetry run pytest tests/test_mcnnm_baseline_projection.py -q
  • env PYTHONPATH=src poetry run pytest src/causaltensor/tests/test_synthetic_class.py::TestSyntheticClass::test_mc src/causaltensor/tests/test_real_class.py::TestRealClass::test_mc -q
  • env PYTHONPATH=src poetry run python -m py_compile src/causaltensor/cauest/MCNNM.py tests/test_mcnnm_baseline_projection.py
  • Executed tutorials/mcnnm_nonnegative_baselines.ipynb from repo root and from tutorials/ cwd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant