Skip to main content

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

🍪 Cookie Settings