# time-series-analysis

> Analiza series temporales: tendencia, estacionalidad y pronóstico con Prophet, statsmodels y ML, incluyendo descomposición, tests de estacionariedad y evaluación contra baselines.

- Skill: `leandrobenjaminl/time-series-analysis` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add leandrobenjaminl/time-series-analysis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/leandrobenjaminl/time-series-analysis/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics, AI & ML, Data Analysis, Model Training & Fine-tuning
- Tags: Adf Test, Forecasting, Lightgbm, Mae, Prophet, Seasonal Decompose, Statsmodels, Time Series
- License: MIT
- Author: LeandroBenjaminL (https://skillmd.com/u/leandrobenjaminl)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/leandrobenjaminl/time-series-analysis

---


# Skill: time-series-analysis

Series temporales. El tiempo es la dimensión más traicionera de los datos.

## Trigger

- Tus datos tienen una columna de fecha/hora
- Querés saber si hay tendencia, estacionalidad o ciclos
- Necesitás pronosticar valores futuros
- Comparás períodos (mes contra mes, año contra año)

## Workflow LEND

```
1. ANALIZAR
   ├── Frecuencia: diaria, horaria, mensual? ¿es regular o tiene gaps?
   ├── Componentes: tendencia, estacionalidad, residuo
   ├── Estacionariedad: ¿la media y varianza cambian en el tiempo? (Dickey-Fuller)
   └── Outliers temporales: feriados, eventos extraordinarios, errores de medición

2. OFRECER (Menú del Senior)
   ├── A) Descomposición clásica — statsmodels, tendencia + estacionalidad + residuo
   ├── B) Prophet — maneja feriados, change points, outliers. Bueno para negocios.
   └── C) ML-based — LightGBM con features temporales (lag, rolling window, día de semana, mes)

3. ELEGIR → confirmación

4. HACER
   ├── timestamp como índice, freq explícita
   ├── Descomposición: seasonal_decompose o STL (más robusto)
   ├── Test de estacionariedad: ADF (p-value < 0.05 = estacionaria)
   ├── Si no es estacionaria → diferencias o transformación (log, Box-Cox)
   ├── Prophet: df con ds (fecha) e y (valor), feriados del país
   ├── ML: features de calendario + lags + rolling window + diff
   └── Evaluar forecast con MAE, RMSE, MAPE (y siempre contra un baseline naive)

5. VERIFICAR
   ├── El forecast es mejor que un baseline naive (último valor = próximo valor)
   ├── Los residuos son ruido blanco (no hay patrón en los errores)
   └── Los intervals de confianza tienen sentido (no son absurdamente anchos)
```

## Patrones

- **Frecuencia explícita**: `.asfreq('D')` para evitar gaps silenciosos
- **Estacionariedad**: modelos clásicos (ARIMA) requieren series estacionarias. ML no.
- **Prophet para negocios**: maneja automáticamente feriados, change points, outliers
- **Baseline naive**: el forecast del mes siguiente = valor de este mes. Si tu modelo no le gana a eso, no sirve.
- **Cross-validation temporal**: siempre en orden cronológico, nunca aleatorio

## Anti-patrones

- ❌ No fijar la frecuencia — gaps silenciosos sesgan tendencias
- ❌ Modelar sin descomponer primero — no sabés si hay estacionalidad
- ❌ Forecast sin intervalo de confianza — "va a subir" sin rango no es útil
- ❌ Cross-validation aleatoria en tiempo — rompés la estructura temporal
- ❌ Ignorar feriados — "diciembre tiene ventas bajas" porque nadie labura, no porque sea tendencia

