Skip to content

Include missing values as a separate PSI bin - #1110

Open
lcrmorin wants to merge 2 commits into
feature-engine:mainfrom
lcrmorin:issue-883
Open

lcrmorin wants to merge 2 commits into
feature-engine:mainfrom
lcrmorin:issue-883

Conversation

@lcrmorin

@lcrmorin lcrmorin commented Oct 18, 2026 •

Copy link
Copy Markdown

Automatic Handling missing values in PSI is important for me.

I offer the PR below - mostly AI generated and human reviewed.


Closes #883. Adds opt-in missing_values='include' to measure missingness drift
without merging missing observations into real-value bins. Numeric boundaries are
learned from observed basis values; all rows enter the frequency denominator.
Existing raise and ignore behaviour is preserved.

Proposed edge-case policy: with fewer than two distinct observed basis values,
compare a missing bin with a single observed bin rather than learn boundaries
from the test partition. Automatic thresholds count the populated bins, including
missingness. This policy remains open to maintainer feedback.

Validation: 77 focused tests pass on pandas 3.0/sklearn 1.9 and pandas 2.2/sklearn 1.4.
Tests include hand-calculated PSI, all-missing partitions, automatic thresholds,
duplicate row labels and category-name collisions. User guide and API docs updated;
type and style checks pass.

Dependency requirements are unchanged. Testing covers the two configurations above, not the full supported-version matrix.

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.

DropHighPSIFeatures support for missing values?

1 participant