timeseries-detrending
Tools for macroeconomic analysis, including HP filters and log transformations for decomposing economic cycles and trends.
Install
mkdir -p .claude/skills/timeseries-detrending && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5773" && unzip -o skill.zip -d .claude/skills/timeseries-detrending && rm skill.zipInstalls to .claude/skills/timeseries-detrending
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Tools and techniques for detrending time series data in macroeconomic analysis. Use when working with economic time series that need to be decomposed into trend and cyclical components. Covers HP filter, log transformations for growth series, and correlation analysis of business cycles.Key capabilities
- →Decompose time series into trend and cycle
- →Apply HP filters
- →Perform log transformations
- →Analyze business cycle correlations
How it works
It uses the Hodrick-Prescott filter to separate long-term trends from short-term cyclical fluctuations in macroeconomic data.
Inputs & outputs
When to use timeseries-detrending
- →Detrending macroeconomic datasets
- →Decomposing economic cycles
- →Calculating growth series transformations
- →Applying HP filters to economic data
About this skill
Time Series Detrending for Macroeconomic Analysis
This skill provides guidance on decomposing economic time series into trend and cyclical components, a fundamental technique in business cycle analysis.
Overview
Economic time series like GDP, consumption, and investment contain both long-term trends and short-term fluctuations (business cycles). Separating these components is essential for:
- Analyzing business cycle correlations
- Comparing volatility across variables
- Identifying leading/lagging indicators
The Hodrick-Prescott (HP) Filter
The HP filter is the most widely used method for detrending macroeconomic data. It decomposes a time series into a trend component and a cyclical component.
Mathematical Foundation
Given a time series $y_t$, the HP filter finds the trend $\tau_t$ that minimizes:
$$\sum_{t=1}^{T}(y_t - \tau_t)^2 + \lambda \sum_{t=2}^{T-1}[(\tau_{t+1} - \tau_t) - (\tau_t - \tau_{t-1})]^2$$
Where:
- First term: Minimizes deviation of data from trend
- Second term: Penalizes changes in the trend's growth rate
- $\lambda$: Smoothing parameter controlling the trade-off
Choosing Lambda (λ)
Critical: The choice of λ depends on data frequency:
| Data Frequency | Recommended λ | Rationale |
|---|---|---|
| Annual | 100 | Standard for yearly data |
| Quarterly | 1600 | Hodrick-Prescott (1997) recommendation |
| Monthly | 14400 | Ravn-Uhlig (2002) adjustment |
Common mistake: Using λ=1600 (quarterly default) for annual data produces an overly smooth trend that misses important cyclical dynamics.
Python Implementation
from statsmodels.tsa.filters.hp_filter import hpfilter
import numpy as np
# Apply HP filter
# Returns: (cyclical_component, trend_component)
cycle, trend = hpfilter(data, lamb=100) # For annual data
# For quarterly data
cycle_q, trend_q = hpfilter(quarterly_data, lamb=1600)
Important: The function parameter is lamb (not lambda, which is a Python keyword).
Log Transformation for Growth Series
Why Use Logs?
For most macroeconomic aggregates (GDP, consumption, investment), you should apply the natural logarithm before filtering:
- Multiplicative to Additive: Converts percentage changes to log differences
- Stabilizes Variance: Growth rates become comparable across time
- Economic Interpretation: Cyclical component represents percentage deviations from trend
- Standard Practice: Required for business cycle statistics that compare volatilities
import numpy as np
# Apply log transformation BEFORE HP filtering
log_series = np.log(real_series)
cycle, trend = hpfilter(log_series, lamb=100)
# The cycle now represents percentage deviations from trend
# e.g., cycle = 0.02 means 2% above trend
When NOT to Use Logs
- Series that can be negative (net exports, current account)
- Series already expressed as rates or percentages
- Series with zeros
Complete Workflow for Detrending
Step-by-Step Process
- Load and clean data: Handle missing values, ensure proper time ordering
- Convert to real terms: Deflate nominal values using appropriate price index
- Apply log transformation: For positive level variables
- Apply HP filter: Use appropriate λ for data frequency
- Analyze cyclical component: Compute correlations, volatilities, etc.
Example: Business Cycle Correlation
import pandas as pd
import numpy as np
from statsmodels.tsa.filters.hp_filter import hpfilter
# Load real (inflation-adjusted) data
real_consumption = pd.Series(...) # Real consumption expenditure
real_investment = pd.Series(...) # Real fixed investment
# Log transformation
ln_consumption = np.log(real_consumption)
ln_investment = np.log(real_investment)
# HP filter with λ=100 for annual data
cycle_c, trend_c = hpfilter(ln_consumption, lamb=100)
cycle_i, trend_i = hpfilter(ln_investment, lamb=100)
# Compute correlation of cyclical components
correlation = np.corrcoef(cycle_c, cycle_i)[0, 1]
print(f"Business cycle correlation: {correlation:.4f}")
Dependencies
Ensure these packages are installed:
pip install statsmodels pandas numpy
The HP filter is in statsmodels.tsa.filters.hp_filter.
When not to use it
- →Non-economic time series
- →Series with negative values
Prerequisites
Limitations
- →Requires appropriate lambda selection
- →Not suitable for series with zeros or negatives
How it compares
It provides a rigorous statistical framework for detrending, specifically tuned for economic data frequencies.
Compared to similar skills
timeseries-detrending side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| timeseries-detrending (this skill) | 1 | 7mo | Review | Advanced |
| quant-analyst | 103 | 2mo | No flags | Advanced |
| stock-analyzer | 71 | 2mo | Review | Beginner |
| google-analytics | 43 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by benchflow-ai
View all by benchflow-ai →You might also like
quant-analyst
zenobi-us
Expert quantitative analyst specializing in financial modeling, algorithmic trading, and risk analytics. Masters statistical methods, derivatives pricing, and high-frequency trading with focus on mathematical rigor, performance optimization, and profitable strategy development.
stock-analyzer
FrancyJGLisboa
Provides comprehensive technical analysis for stocks and ETFs using RSI, MACD, Bollinger Bands, and other indicators. Activates when user requests stock analysis, technical indicators, trading signals, or market data for specific ticker symbols.
google-analytics
davila7
Analyze Google Analytics data, review website performance metrics, identify traffic patterns, and suggest data-driven improvements. Use when the user asks about analytics, website metrics, traffic analysis, conversion rates, user behavior, or performance optimization.
data-engineering
pluginagentmarketplace
ETL pipelines, Apache Spark, data warehousing, and big data processing. Use for building data pipelines, processing large datasets, or data infrastructure.
math-tools
ananddtyagi
Deterministic mathematical computation using SymPy. Use for ANY math operation requiring exact/verified results - basic arithmetic, algebra (simplify, expand, factor, solve equations), calculus (derivatives, integrals, limits, series), linear algebra (matrices, determinants, eigenvalues), trigonometry, number theory (primes, GCD/LCM, factorization), and statistics. Ensures mathematical accuracy by using symbolic computation rather than LLM estimation.
crawl4ai
basher83
This skill should be used when users need to scrape websites, extract structured data, handle JavaScript-heavy pages, crawl multiple URLs, or build automated web data pipelines. Includes optimized extraction patterns with schema generation for efficient, LLM-free extraction.