Skip to content

check_panel_data

yohou.testing.panel.check_panel_data(forecaster, y_panel, X_panel=None)

Check cross-learning with panel data predicts all groups by default.

Validates that when panel_group=None (default), predictions are generated for all groups in the panel data columns.

Parameters

Name Type Description Default
forecaster BaseForecaster

Fitted forecaster with panel data

required
y_panel DataFrame

Panel data with panel columns for testing

required
X_panel DataFrame

Panel features

None

Raises

Type Description
AssertionError

If default prediction doesn't include all groups

Source Code

Show/Hide source
def check_panel_data(forecaster, y_panel: pl.DataFrame, X_panel: pl.DataFrame | None = None) -> None:
    """Check cross-learning with panel data predicts all groups by default.

    Validates that when panel_group=None (default), predictions are
    generated for all groups in the panel data columns.

    Parameters
    ----------
    forecaster : BaseForecaster
        Fitted forecaster with panel data
    y_panel : pl.DataFrame
        Panel data with panel columns for testing
    X_panel : pl.DataFrame, optional
        Panel features

    Raises
    ------
    AssertionError
        If default prediction doesn't include all groups

    """
    # Predict with default (panel_group=None)
    y_pred = _call_predict(forecaster, forecasting_horizon=3, panel_group=None)

    # Check that all local groups from training data are in predictions
    _, y_panel_groups = inspect_panel(y_panel)

    if len(y_panel_groups) > 0:
        # Should have predictions for all group columns (with __ separator)
        for _group_prefix, expected_fields in y_panel_groups.items():
            for field in expected_fields:
                assert _column_present(field, y_pred.columns), (
                    f"Column '{field}' (or interval bounds) missing from predictions. "
                    f"panel_group=None should predict all groups. Got columns: {y_pred.columns}"
                )