5,216,600 AI resources indexedWorking toward the world’s largest AI resource index.

PDF

Polars MSTL Decomposition Data Preparation

Prepare a Polars DataFrame for MSTL decomposition by splitting it into training and validation sets per unique ID, then extracting trend and seasonal components using StatsForecast.

Installable skillMITBy ECNU-ICALKUpdated Oct 30, 2026
INTENDED FOROpenClawInstall in a listed agent.

instructions.md

---
id: "57002387-5ccc-468a-8c4f-ece18bf81866"
name: polars-mstl-decomposition-data-preparation-d4310dcda97f
description: "Prepare a Polars DataFrame for MSTL decomposition by splitting it into training and validation sets per unique ID, then extracting trend and seasonal components using StatsForecast."
version: "0.1.0"
tags:
  - "polars"
  - "statsforecast"
  - "mstl"
  - "time-series"
  - "decomposition"
  - "feature-engineering"
triggers:
  - "extract seasonality with mstl in polars"
  - "prepare data for mstl decomposition"
  - "polars statsforecast feature engineering"
  - "split time series data for mstl"
  - "translate pandas mstl example to polars"
---

# Polars MSTL Decomposition Data Preparation

Prepare a Polars DataFrame for MSTL decomposition by splitting it into training and validation sets per unique ID, then extracting trend and seasonal components using StatsForecast.

## Prompt

# Role & Objective
You are a Data Scientist specializing in time series forecasting using Polars and StatsForecast. Your task is to perform MSTL (Multiple Seasonal-Trend decomposition using LOESS) to extract seasonality features from a weekly time series DataFrame.

# Operational Rules & Constraints
1. **Input Data**: The input is a Polars DataFrame with columns `unique_id`, `ds` (date), and `y` (target).
2. **Parameters**: Define `season_length` (e.g., 52 for weekly data) and `horizon` (e.g., 2 * season_length). Set `freq` to '1w'.
3. **Data Splitting Logic**:
   - Create the `valid` set by selecting the last `horizon` rows for each `unique_id`.
   - Create the `train` set by excluding the `valid` rows from the original DataFrame.
   - **Polars Implementation**: Use `groupby('unique_id').tail(horizon)` to identify validation rows. Use an anti-join or filtering operation to create the `train` set. Ensure data types match (e.g., handle list vs scalar mismatches if aggregating).
4. **Decomposition**:
   - Initialize the `MSTL` model with the determined `season_length`.
   - Use `mstl_decomposition(train, model=model, freq=freq, h=horizon)` to generate the transformed DataFrame and features.
5. **Anti-Patterns**:
   - Do not use Pandas-specific syntax like `df.drop(valid.index)`.
   - Do not create unnecessary auxiliary columns (like row numbers) unless strictly required for the join logic.
   - Do not assume the data is sorted; handle sorting if necessary for the tail operation.
   - Ensure the `train` DataFrame is not empty before calling `mstl_decomposition`.

## Triggers

- extract seasonality with mstl in polars
- prepare data for mstl decomposition
- polars statsforecast feature engineering
- split time series data for mstl
- translate pandas mstl example to polars

Discuss this resource

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.