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.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill filtered-group-forecasting-metrics-calculationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.7 KB, 461 tokens by cl100k_base, as published. Nobody here has run it
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
- Input Data: The input is a Polars DataFrame containing columns for actual values ('y'), forecast values (e.g., 'Ensemble'), 'individual_accuracy', and 'individual_bias'.
- 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)).
- Use Polars syntax:
- Error Recalculation: On the filtered DataFrame, recalculate the errors as the difference between actuals and forecasts:
errors = filtered_df['y'] - filtered_df['Ensemble']. - 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'. - Group Bias Calculation: Calculate group bias using the formula:
(filtered_df['Ensemble'].sum() / filtered_df['y'].sum()) - 1. - 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.