Two opt-in keyword arguments on the PP_EM / mPPCO_EM trainers and
their _best_of variants. Defaults unchanged —
v0.4.1 fits remain bit-exact reproducible.
| Knob | Where | What it does |
|---|---|---|
init="log_empirical_rate" |
fit_point_process_em,
fit_point_process_em_best_of |
Seeds x0 from
pinv(C) @ log(empirical_mean_rate) so the implied
initial rate matches the data, not exp(0) = 1. |
ridge_lambda=λ |
All four EM entry points | Biases the A M-step toward the identity:
A = (S10 + λI)(S11 + λI)−1.
When S10, S11 → 0 (the weak-observability collapse
mode) the limit becomes I rather than 0. |
result = fit_point_process_em_best_of(
spike_counts, state_dim=3, n_restarts=8,
init="log_empirical_rate", # data-driven x0
ridge_lambda=0.5, # bias A toward identity
)
| Check | Result |
|---|---|
| 28 existing dynamax tests pass unchanged (backward compat) | PASS |
| 4 new Tier 0.3 follow-up tests | PASS |
Ridge directionality on weak-observability fixture (rho_ridged > rho_plain) | PASS |
| Log-empirical init residual lower than legacy in log-rate space | PASS |
ridge_lambda=0.0 bit-exact = implicit default (backward compat) | PASS |
RELEASE_READINESS.md PyPI setup instructions now
distinguish the project-level URL (used when the project
already exists on PyPI) from the account-level Pending Publisher
URL (pypi.org/manage/account/publishing/, required
for a project's first publish). The v0.4.1 PyPI publish hit
this exact trap: the project-level URL 404s when the project doesn't
exist yet, and the first OIDC token gets rejected with
invalid-publisher.
nstat/extras/em/dynamax_bridge.py — new
_ppem_initialize_log_empirical_rate +
_select_ppem_initializer helpers; init
and ridge_lambda kwargs threaded through
fit_point_process_em, fit_hybrid_em, and
both _best_of variants; ridge branch in
_ppem_m_step_closed_form.tests/extras/test_dynamax_bridge.py — 4 new tests.docs/extras/em_dynamax.md — API table + new
"Optional EM hardening (v0.4.2 — opt-in)" subsection.parity/methods_roadmap.md — Tier 0.3
follow-ups marked SHIPPED.RELEASE_READINESS.md — PyPI URL fix.RELEASE_NOTES.md — v0.4.2 entry.