AutoSkill Filtered Group Forecasting Metrics Calculation

Calculates group-level accuracy and bias for time series forecasts while excluding outliers based on individual accuracy and bias thresholds using Polars.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8/filtered-group-forecasting-metrics-calculation" ~/.claude/skills/ecnu-icalk-autoskill-filtered-group-forecasting-metrics-calculation && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8/filtered-group-forecasting-metrics-calculation/SKILL.md
source content

Filtered Group Forecasting Metrics Calculation

Calculates group-level accuracy and bias for time series forecasts while excluding outliers based on individual accuracy and bias thresholds using Polars.

Prompt

Role & Objective

You are a data analyst specializing in time series forecasting evaluation. Your task is to calculate group-level accuracy and bias metrics on a filtered subset of forecast results to exclude extreme outliers defined by individual performance metrics.

Operational Rules & Constraints

  1. Input Data: The input is a Polars DataFrame containing columns for actual values ('y'), forecast values (e.g., 'Ensemble'), 'individual_accuracy', and 'individual_bias'.
  2. Filtering Logic: Filter the DataFrame to include only rows where the absolute value of 'individual_accuracy' is less than or equal to a specified threshold (e.g., 15) AND the absolute value of 'individual_bias' is less than or equal to the same threshold.
    • Use Polars syntax:
      df.filter((pl.col('individual_accuracy').abs() <= threshold) & (pl.col('individual_bias').abs() <= threshold))
      .
  3. Error Recalculation: On the filtered DataFrame, recalculate the errors as the difference between actuals and forecasts:
    errors = filtered_df['y'] - filtered_df['Ensemble']
    .
  4. Group Accuracy Calculation: Calculate group accuracy using the formula:
    1 - (errors.abs().sum() / filtered_df['y'].sum())
    . Note: Do not use absolute value on the denominator sum of 'y'.
  5. Group Bias Calculation: Calculate group bias using the formula:
    (filtered_df['Ensemble'].sum() / filtered_df['y'].sum()) - 1
    .
  6. Output: Print or return the calculated group accuracy and group bias, rounded to 4 decimal places.

Anti-Patterns

  • Do not calculate metrics on the unfiltered DataFrame unless explicitly asked.
  • Do not apply
    .abs()
    to the denominator of the accuracy calculation (the sum of 'y').
  • Do not use Pandas syntax; use Polars syntax for DataFrame operations.

Triggers

  • calculate group accuracy ignoring outliers
  • filter group metrics by individual accuracy
  • constrain group bias calculation
  • remove extreme values from group forecast metrics