Missingness¶
column_missing_rate¶
column_missing_rate
¶
column_missing_rate(graph: ConceptGraph, X: DataFrame) -> DataFrame
Mean per-feature missing rate, plus a concept-level any-missing mean.
For a concept node, any_missing_rate is mean(any feature under the
concept is NaN in row) — much weaker than :func:joint_missing_rate,
but useful as an upper bound.
Source code in src/concept_graph_xai/metrics/missingness.py
joint_missing_rate¶
joint_missing_rate
¶
joint_missing_rate(graph: ConceptGraph, X: DataFrame) -> DataFrame
Per-concept joint-missing rate (P13/P15b).
For each concept (and each feature, trivially), the fraction of rows where every feature under that concept is NaN. This is the number that should drive the "is the AUC-drop scenario realistic?" judgement.
Returned columns: name, kind, depth, parent, feature_count,
joint_missing_rate.