Data Quality✓ Mathematical
◆ The PatternImputation, MICE, missingness patterns — handling gaps without corrupting your analysis
Missing data isn't just annoying — why it's missing matters. MCAR (completely random) is safe to drop. MAR (depends on observed data) needs smart imputation. MNAR (depends on the missing value itself) is the hardest case.
MCAR: P(missing) = constant
Missing completely at random. Dropping rows is unbiased but wasteful.
MAR: P(missing | observed) ≠ P(missing)
Missing at random given observed data. Use MICE, KNN imputation.
// Interactive — missing data patterns and imputation
% Missing20%
Strategy
# Python — imputation strategies from sklearn.impute import SimpleImputer, KNNImputer from sklearn.experimental import enable_iterative_imputer from sklearn.impute import IterativeImputer # Simple: median (robust to outliers) imp = SimpleImputer(strategy='median') # KNN: uses similar rows imp = KNNImputer(n_neighbors=5) # MICE: iterative multivariate imp = IterativeImputer(max_iter=10) X_filled = imp.fit_transform(X)
Never impute the target. And always impute inside cross-validation folds to prevent data leakage.