Rolling Regression
Use window functions to analyze trends over time.
Use Case
Detect when regression relationships change (e.g., price elasticity shifts).
Rolling Window Pattern
SELECT
date,
result.coefficients[2] as rolling_elasticity,
result.r_squared
FROM daily_sales
ORDER BY date
WINDOW w AS (ROWS BETWEEN 60 PRECEDING AND CURRENT ROW)
APPLY anofox_statistics_ols_agg(
demand,
ARRAY[price]
) OVER w;
Example: Detecting Momentum Shifts
Stock beta changes over time:
SELECT
date,
result.coefficients[2] as rolling_beta,
LAG(result.coefficients[2]) OVER (ORDER BY date) as prev_beta,
(result.coefficients[2] - prev_beta) as beta_shift
FROM stock_returns
WINDOW w AS (ROWS BETWEEN 250 PRECEDING AND CURRENT ROW)
APPLY anofox_statistics_ols_agg(
stock_return,
ARRAY[market_return]
) OVER w
WHERE date >= '2023-01-01';
Next Steps
- Model Selection — Comparing models
- Reference: Aggregates — Window functions