Time Trends and Event Studies
- #econometrics
- #time-series
- #time-trends
- #spurious-regression
- #detrending
- #event-study
- #abnormal-returns
- #deterministic-trend
Time Trends and Event Studies
Part of: Econometrics Lecture 07 — Applied Econometrics, Dr. Aluma Dembo Key concepts: Deterministic Time Trend, Spurious Regression, Detrending, Event Study, Abnormal Returns, Estimation Period, Observation Period, Distributed Lag Model, Autoregressive Model
Quick Recap: Types of Time Series Models
Before covering trends, it helps to remember the three model types from Lecture 6:
| Model | Formula | Key idea |
|---|---|---|
| Static | affects immediately, no carry-over | |
| Distributed Lag (DL) | affects over multiple periods | |
| Autoregressive (AR) | 's own past helps predict today |
Why does this matter for trends?Many real-world time series — GDP, population, stock prices — drift upward over time. This "trending" behaviour can corrupt regression results even when the models above are correct in structure. The next sections explain how to detect and fix this.
What is a Time Series?
A time series is a sequence of observations indexed by time: .
Think of it as a single "reel" from a random process that could have generated many different reels. What you observe is one realisation — one possible path the variable took over time.
Sample vs. population in time seriesIn cross-sectional data, the "population" is all people (or firms, etc.) you didn't sample. In time series, the "population" is all possible reels the process could have generated. Your data is just one of them. This is important for understanding what OLS assumptions mean in a time series context.
OLS Assumptions for Time Series
Running OLS on time series data requires its own set of assumptions, layered on top of the standard OLS ones.
Step 1: Zero Conditional Mean (TS.1)
This is strict exogeneity — the error at time is uncorrelated with the explanatory variables at every time period (past, present, and future). It's a stronger requirement than in cross-sectional settings.
When does strict exogeneity fail?It fails when is a lagged dependent variable (e.g. in an AR model), or when there are feedback loops (e.g. the central bank adjusts interest rates in response to past inflation — then interest rate reacts to past , violating independence between and past errors).
Step 2: Homoskedasticity (TS.3)
The variance of the error is constant across time — no explosion or collapse of variability.
Step 3: No Serial Correlation (TS.4)
Errors at different time periods are uncorrelated with each other. Violated when today's error affects tomorrow's — common in economic time series.
Step 4: Normality (TS.5)
Combined with TS.1–TS.4, this gives exact distributions for and statistics.
What do these assumptions give you?
Assumptions satisfied What you get A1 + TS.1 OLS is unbiased A1 + TS.1 + TS.3 + TS.4 OLS has known (correct) sampling variance A1 + TS.1–TS.5 OLS estimates are normally distributed; / tests are exact
Deterministic Time Trends
A deterministic time trend is a systematic, predictable drift in a variable over time — not random, just a steady march upward (or downward).
Linear Trend
- = the average change in per time period
- = the random fluctuation around the trend
- If : the series drifts upward; if : downward
Reading a linear trend coefficientIf is annual GDP in billions and , then GDP grows by approximately $50 billion per year on average, regardless of other factors. The actual GDP in any given year is this trend value plus a random deviation .
Exponential Trend
- After taking logs, the trend becomes linear in
- the average growth rate per period (expressed as a proportion)
- If , the variable grows at approximately 3% per period
Linear vs. exponential trend — how to choosePlot the variable. If it rises by roughly the same amount each period (like a straight ramp), use a linear trend. If it rises by roughly the same percentage each period (accelerating upward — like compound interest or population growth), use an exponential trend (i.e. take logs first).
The Spurious Regression Problem
Here's a critical danger: two completely unrelated variables can appear highly correlated simply because they both trend upward over time.
A concrete example
Suppose we regress GDP on consumption:
lm(GDP ~ Consumption, gdp)
We get — a stunning fit. But wait: both GDP and consumption grow over time. The regression might just be picking up the common upward drift, not a genuine relationship.
Spurious regression: what's really happeningWhen two variables both trend upward, a regression will almost always produce a high and a statistically significant coefficient — even if the variables have nothing to do with each other. The OLS estimator is finding the common trend, not a real causal relationship. This is called spurious regression.
Classic example: ice cream sales and drowning rates both rise in summer. A naive regression would show ice cream "causes" drowning. It doesn't — both respond to a third factor (hot weather = a trend).
type: time-trends
mode: spurious
The high R² is an illusionThese two series were generated independently — neither has any effect on the other. But because both drift upward, the scatter on the right looks like a tight linear relationship with R² ≈ 0.8. OLS isn't finding a relationship; it's finding the shared march of time. This is why you must remove the trend before trusting any time-series regression.
Two Methods to Fix Spurious Regression
There are two equivalent approaches to remove the confounding influence of a time trend.
Method 1: Add a Time Variable Directly
Include as an additional regressor:
- The coefficient now captures whatever is changing uniformly over time
- The coefficients measure the effect of net of the common trend
- satisfies strict exogeneity (it's just the calendar — no feedback loop can make affect what year it is)
When to use Method 1Use this when the trend itself is of substantive interest — e.g. you want to know "is there a long-run upward trend in this outcome even after controlling for ?". The estimate tells you directly.
# Add time variable to control for trend
lm(GDP ~ Consumption + t, gdp)
Method 2: Detrend the Variables First
Step 1 — Regress each variable on time, and save the residuals:
Step 2 — Regress the detrended on the detrended :
What detrending actually doesAfter detrending, is "GDP with the trend removed" — just the year-to-year deviations around the average upward drift. Same for . Regressing one on the other now asks: "when consumption is above its trend, is GDP also above its trend?" — a genuinely interesting question, not contaminated by the common drift.
type: time-trends
mode: detrending
What the two panels showTop: the raw series climbs steadily; the dashed green line is the fitted trend . Bottom: subtracting that line leaves only the deviations around it — the series now hovers around zero with no drift. Those detrended wiggles are what you actually regress, so any correlation you find reflects genuine co-movement rather than a shared trend.
Methods 1 and 2 are equivalentIn large samples, adding as a regressor (Method 1) and manually detrending first (Method 2) produce the same coefficient estimates for . This is a consequence of the Frisch-Waugh-Lovell (FWL) theorem: the coefficient on after controlling for equals the coefficient from regressing the residual of on against the residual of on .
Event Studies
An event study is a methodology for measuring the causal effect of a specific, discrete event on an outcome of interest (typically stock returns, but can be any outcome).
The fundamental idea: compare what actually happened around the event to what would have happened without the event. The difference is the causal effect.
Step 1: Define the two periods
| Period | Description |
|---|---|
| Estimation period | Pre-event window. Use this to build a model of normal outcomes. |
| Observation period | The window around the event. Use the model to predict what outcomes should be, then compare. |
Why split into two periods?You can't include the event itself in the model you use to predict "normal" behaviour — that would contaminate your baseline. You train the model on clean pre-event data, then apply it to the event window.
Step 2: Build the model on the estimation period
A common model for stock returns:
- This says: Google's return normally tracks the S&P 500 by some factor
- Estimated on pre-event data only
Why control for the S&P 500?The S&P 500 captures broad market movements. On any given day, the market as a whole might go up or down, pulling individual stocks with it. By including the market return, we strip out this "tide that lifts all boats" and isolate stock-specific movements. What's left is the abnormal return due to the event.
Step 3: Compute Abnormal Returns (AR)
- : Google did better than the model predicted → positive surprise
- : Google did worse than the model predicted → negative surprise
- : Nothing unexpected happened
Reading the AR plotTime on x-axis, AR on y-axis, vertical line at event date.
- Non-zero AR before the event → the market was anticipating the announcement (information leaked, or insiders traded)
- Spike at the event date → market surprised by the announcement
- Non-zero AR after the event → market still processing/adjusting to the news
type: event-study
Anatomy of an AR plotAway from the event the abnormal returns are just noise scattered around zero — the model is tracking the stock well. The big red bar on day 0 is the event surprise. The green bars at −1 and +1 hint at a pre-event leak and post-event adjustment. In the dummy-regression version, these three bars are exactly the coefficients , , .
# Step 1: Fit model on estimation period
model_est <- lm(Google ~ SP500, data = estimation_period)
# Step 2: Predict returns in the observation period
predicted_returns <- predict(model_est, newdata = observation_period)
# Step 3: Compute abnormal returns
AR <- observation_period$Google - predicted_returns
Case Study: Google → Alphabet Restructuring (2015)
Event: On 10 August 2015, Google announced it was restructuring into a holding company called Alphabet, with Google as one subsidiary.
Question: Did this announcement cause an abnormal stock return?
Setup
- Estimation period: pre-August 2015 trading days
- Observation period: a window around 10 August 2015
- Model: Google daily return ~ S&P 500 daily return
Regression approach using dummies
Instead of splitting into two periods, we can run a single regression with event dummies:
| Dummy | Value | Interpretation |
|---|---|---|
day.before |
1 on 9 Aug 2015, 0 otherwise | AR on the day before the event |
day.of |
1 on 10 Aug 2015, 0 otherwise | AR on the announcement day itself |
day.after |
1 on 11 Aug 2015, 0 otherwise | AR on the day after the event |
- A significant means the announcement caused a genuine abnormal return
- A significant suggests the market anticipated the announcement
Interpreting the resultsSuppose (statistically significant). This means that on the day of the restructuring announcement, Google stock returned 6 percentage points more than the S&P 500 baseline would predict. The market reacted positively to the news. If is also significant, information may have leaked beforehand.
Non-trading days don't countEvent studies use trading days, not calendar days. Weekends and holidays are skipped. The "day before" and "day after" refer to the nearest trading days, not +1 and -1 calendar days.
Case Study: California Seatbelt Law (1986)
Event: California implemented a mandatory seatbelt law in January 1986.
Question: Did the law reduce traffic fatalities?
Setup:
- Seasonal dummies (months): control for the fact that fatalities vary by season (summer driving more common, etc.)
seatbelt.law= 1 after January 1986, 0 before
Confounders: the speed limit changeIn 1987, California also changed its speed limit. This is a confounder — another policy change happening close to the event that could also affect fatalities. Any estimated effect of the seatbelt law might be picking up the speed limit change too. A good event study design must either (a) control for confounders or (b) argue convincingly they don't apply.
This is why the design of the estimation vs. observation window, and the choice of control variables, matters so much.
Step-by-step logic of this event study
- Model pre-law fatalities using only data before January 1986, controlling for month-of-year (seasonal dummies)
- Predict what fatalities would have been after January 1986 if the law had not passed
- Compare actual fatalities to predictions → the difference is the estimated effect of the seatbelt law
- If actual fatalities are below predicted, the law worked; the size of the gap estimates how much
Summary
-
OLS on time series requires extra assumptions: strict exogeneity (TS.1), homoskedasticity (TS.3), no serial correlation (TS.4), normality (TS.5). These are stronger than cross-sectional requirements.
-
Deterministic time trends capture steady drift in a series over time. Linear trend: ( = change per period). Exponential trend: ( growth rate).
-
Spurious regression arises when two trending variables appear correlated in OLS purely because both drift in the same direction — not because of a real relationship.
-
Fix 1 (add time variable): Include as a regressor. then measures the effect of net of the common trend.
-
Fix 2 (detrending): Regress both and on separately, then regress the residuals on each other. Gives the same answer as Fix 1 in large samples.
-
Event studies compare actual outcomes around an event to model-predicted outcomes (from an estimation period). The difference is the Abnormal Return (AR): .
-
Event study design: anticipation (pre-event AR ≠ 0), event effect (AR ≠ 0 at event date), drift (post-event AR ≠ 0) each tell a different story about how markets process information.
Related Notes
- Previous: Lec_06-Simultaneous Equations & Time Series — static/DL/AR models, serial correlation, seasonality
- Next: Lec_08-Fixed Effects in Panel Data — within-estimator, individual fixed effects, clustered SEs
- Hub: Econometrics
- Key concepts: Deterministic Time Trend, Spurious Regression, Detrending, Event Study, Abnormal Returns, Estimation Period, Observation Period, Strict Exogeneity