Skip to content

Bias

polars_ts.bias

Forecast bias detection and correction. Closes #56.

bias_detect(df, actual_col='y', predicted_col='y_hat', id_col=None)

Detect systematic forecast bias.

Computes mean error, sign test ratio, and bias ratio per group.

Parameters

df DataFrame with actual and predicted values. actual_col Column with actual values. predicted_col Column with predicted values. id_col If provided, compute bias per group.

Returns

pl.DataFrame DataFrame with columns ["mean_error", "sign_ratio", "bias_ratio"]. sign_ratio is the fraction of positive errors (> 0.5 = over-predicting). bias_ratio is mean_error / MAE.

bias_correct(df, actual_col='y', predicted_col='y_hat', method='mean', id_col=None)

Correct systematic forecast bias.

Parameters

df DataFrame with actual and predicted values. actual_col Column with actual values. predicted_col Column with predicted values. method Correction method: "mean" — subtract mean error, "regression" — linear recalibration (slope + intercept), "quantile" — quantile mapping correction. id_col If provided, correct per group.

Returns

pl.DataFrame DataFrame with predicted_col adjusted and {predicted_col}_original preserving the uncorrected values.

_regression_correct(df, actual_col, predicted_col)

Apply linear recalibration: actual ≈ slope * predicted + intercept.

_quantile_correct(df, actual_col, predicted_col)

Quantile mapping: map predicted quantiles to actual quantiles.