Skip to content

Add Zivot-Andrews unit-root test (one endogenous break) #3

Description

@cacoleman16

What: Add the Zivot-Andrews unit-root test, which allows one endogenously-determined structural break. Standard ADF badly under-rejects when a series has a break; this is the usual remedy.

Why it's a good first issue: it has a double runnable reference — arch.unitroot.ZivotAndrews and statsmodels.tsa.stattools.zivot_andrews agree to full precision, so a correct implementation is unambiguous.

Scope: trimmed grid search over candidate break dates, ADF regression with break dummies (level / trend / both), take the minimum t-statistic, then Baum's critical-value surfaces. Reuses the existing ADF machinery in crates/tsecon-diag/src/unitroot.rs.

Acceptance criteria

  • Rust core + #[pyfunction] + stub entry
  • Fixture generator (never imports tsecon) + golden test matching arch/statsmodels for all three break models
  • Validation-matrix row
  • The returned dict exposes the estimated break date, not just the statistic

Cross-reference: sup_f_test and bai_perron (in crates/tsecon-breaks/) already do break-date searching for coefficient breaks — worth reading for the trimming convention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions