7.6 Summary and Chapter Review
"Prediction is very difficult, especially about the future."— Niels Bohr, Nobel Prize in Physics
Time series analysis and event study: Complete mastery from theory to practice
Chapter Review
After completing this chapter, you have mastered:
Core Concepts ✓
- Basic characteristics of time series data: trend, seasonality, cycle, random fluctuation
- Concept of stationarity and testing methods (ADF, KPSS)
- Interpretation of autocorrelation (ACF) and partial autocorrelation (PACF)
- Time series decomposition: additive model vs multiplicative model
- ARIMA model family: AR, MA, ARMA, ARIMA, SARIMA
- Box-Jenkins modeling process: identification, estimation, diagnosis, forecasting
- Event study methodology: abnormal returns (AR), cumulative abnormal returns (CAR)
Technical Skills ✓
- Processing time series data using pandas
- Stationarity testing using statsmodels
- Plotting ACF/PACF to identify model orders
- Building and diagnosing ARIMA models
- Time series forecasting and forecast interval calculation
- Implementing complete event study analysis
- Computing and testing statistical significance of abnormal returns
Practical Applications ✓
- Analysis of macroeconomic data such as GDP, CPI, unemployment rate
- Time series modeling of stock returns
- Event study evaluation of policy effects
- Empirical analysis of merger announcement impact on stock prices
Knowledge System Summary
Time Series Analysis Landscape
Time Series Analysis
├── 1️⃣ Basic Concepts
│ ├── Stationarity
│ │ ├── Strict stationarity vs weak stationarity
│ │ ├── Unit root tests (ADF, KPSS, PP)
│ │ └── Differencing transformation
│ ├── Autocorrelation
│ │ ├── ACF (autocorrelation function)
│ │ ├── PACF (partial autocorrelation function)
│ │ └── Ljung-Box test
│ └── White noise testing
│
├── 2️⃣ Time Series Decomposition
│ ├── Classical decomposition
│ │ ├── Additive model: Y = T + S + R
│ │ └── Multiplicative model: Y = T × S × R
│ ├── STL decomposition (Seasonal-Trend Loess)
│ ├── X-13ARIMA-SEATS (seasonal adjustment)
│ └── HP filter (trend extraction)
│
├── 3️⃣ ARIMA Model Family
│ ├── AR(p): Autoregressive model
│ │ └── y_t = φ₁y_{t-1} + ... + φₚy_{t-p} + ε_t
│ ├── MA(q): Moving average model
│ │ └── y_t = ε_t + θ₁ε_{t-1} + ... + θ_qε_{t-q}
│ ├── ARMA(p,q): Combined model
│ ├── ARIMA(p,d,q): ARMA after differencing
│ │ └── Box-Jenkins process
│ └── SARIMA(p,d,q)(P,D,Q)_s: Seasonal ARIMA
│
├── 4️⃣ Event Study Methodology
│ ├── Time window design
│ │ ├── Estimation window
│ │ ├── Event window
│ │ └── Post-event window
│ ├── Normal return models
│ │ ├── Market model ⭐
│ │ ├── Mean-adjusted model
│ │ └── Market-adjusted model
│ ├── Abnormal return calculation
│ │ ├── AR (Abnormal Return)
│ │ └── CAR (Cumulative AR)
│ ├── Statistical testing
│ │ ├── Single-day AR t-test
│ │ ├── CAR significance test
│ │ └── Cross-sectional test (AAR, CAAR)
│ └── Multiple event studies
│
└── 5️⃣ Advanced Topics
├── Vector Autoregression (VAR)
├── Impulse Response Function (IRF)
├── Granger causality testing
├── Cointegration
├── Vector Error Correction Model (VECM)
└── Structural break testingCore Formula Quick Reference
Stationarity and Autocorrelation
| Concept | Formula | Explanation |
|---|---|---|
| Weak Stationarity | , , | Mean, variance constant, autocovariance depends only on lag |
| ACF | Autocorrelation function | |
| First Difference | Remove trend | |
| ADF Test | H₀: γ = 0 (unit root) |
ARIMA Models
| Model | Formula | ACF | PACF |
|---|---|---|---|
| AR(p) | Exponential decay | Cutoff at p | |
| MA(q) | Cutoff at q | Exponential decay | |
| ARMA(p,q) | AR + MA | Gradual decay | Gradual decay |
| ARIMA(p,d,q) | Depends on ARMA | Depends on ARMA | |
| SARIMA | Seasonal lags significant | Seasonal lags significant |
Information Criteria
| Criterion | Formula | Characteristic |
|---|---|---|
| AIC | Favors complex models | |
| BIC | More severe parameter penalty | |
| HQIC | Between AIC and BIC |
Selection Principle: Lower value is better
Event Study
| Concept | Formula | Explanation |
|---|---|---|
| Market Model | Estimate normal returns | |
| Abnormal Return | Actual - Expected | |
| CAR | Cumulative abnormal returns | |
| AR t-test | H₀: AR = 0 | |
| CAR t-test | H₀: CAR = 0 | |
| AAR | Average abnormal return | |
| CAAR | Cumulative average abnormal return |
Python Code Quick Reference
Time Series Basics
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller, kpss, acf, pacf
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.arima.model import ARIMA
# 1. Read time series data
ts = pd.read_csv('data.csv', index_col='date', parse_dates=True)
# 2. Stationarity test
adf_result = adfuller(ts['value'], autolag='AIC')
print(f"ADF statistic: {adf_result[0]:.4f}, p-value: {adf_result[1]:.4f}")
# 3. Differencing
ts_diff = ts.diff().dropna()
# 4. ACF/PACF plots
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
plot_acf(ts, lags=40, ax=axes[0])
plot_pacf(ts, lags=40, ax=axes[1])
plt.show()ARIMA Modeling
# 1. Fit ARIMA model
model = ARIMA(ts, order=(1, 1, 1))
results = model.fit()
# 2. Model summary
print(results.summary())
# 3. Diagnostics
results.plot_diagnostics(figsize=(14, 10))
plt.show()
# 4. Forecasting
forecast = results.get_forecast(steps=12)
forecast_mean = forecast.predicted_mean
forecast_ci = forecast.conf_int()
# 5. Visualize forecast
fig, ax = plt.subplots(figsize=(14, 6))
ts.plot(ax=ax, label='Historical Data')
forecast_mean.plot(ax=ax, label='Forecast', color='red')
ax.fill_between(forecast_ci.index,
forecast_ci.iloc[:, 0],
forecast_ci.iloc[:, 1],
alpha=0.3, color='red')
ax.legend()
plt.show()Auto ARIMA
from pmdarima import auto_arima
# Automatically select optimal ARIMA
auto_model = auto_arima(ts,
start_p=0, start_q=0,
max_p=5, max_q=5,
seasonal=True, m=12, # monthly data
d=None, # automatically determine differencing order
trace=True,
stepwise=True,
information_criterion='aic')
print(auto_model.summary())Event Study
# 1. Estimate market model
X = sm.add_constant(market_returns)
market_model = sm.OLS(stock_returns, X).fit()
alpha, beta = market_model.params
# 2. Calculate abnormal returns
normal_returns = alpha + beta * market_returns
abnormal_returns = stock_returns - normal_returns
# 3. Calculate CAR
car = abnormal_returns.cumsum()
# 4. t-test
sigma = np.sqrt(market_model.mse_resid)
t_stat = car.iloc[-1] / (sigma * np.sqrt(len(car)))
print(f"CAR t-statistic: {t_stat:.4f}")10 High-Difficulty Practice Exercises
Exercise 1: Stationarity Testing and Differencing ⭐⭐
Problem:
Given monthly CPI year-over-year growth rate data for China (2010-2023), complete the following tasks:
- Conduct ADF and KPSS tests on the original CPI series, determine if stationary
- If non-stationary, apply first-order differencing, test stationarity again
- Plot time series graphs, ACF, PACF for original and differenced series
- Explain why CPI year-over-year growth rate might be non-stationary
Requirements:
- Use
adfuller()andkpss()for testing - Plot 4×3 subplots (original vs differenced; time series, ACF, PACF)
- Write complete analysis report (200 words)
Exercise 2: ARIMA Model Identification and Estimation ⭐⭐⭐
Problem:
Use the Box-Jenkins method to build an ARIMA model for U.S. monthly unemployment rate:
- Plot ACF and PACF, preliminarily determine possible p, d, q
- Estimate at least 5 candidate models (e.g., ARIMA(1,1,0), ARIMA(0,1,1), ARIMA(1,1,1), etc.)
- Compare models using AIC, BIC, select optimal model
- Conduct residual diagnostics on optimal model (Ljung-Box test, normality test)
- Use optimal model to forecast next 12 months
Scoring Criteria (out of 100):
- Stationarity testing and differencing (20 points)
- ACF/PACF analysis (15 points)
- Model estimation and comparison (30 points)
- Residual diagnostics (20 points)
- Forecasting and visualization (15 points)
Exercise 3: Seasonal ARIMA (SARIMA) Modeling ⭐⭐⭐⭐
Problem:
Airline monthly passenger data typically exhibits strong seasonality. Please complete:
- Use STL decomposition to extract trend, seasonal, residual components
- Build ARIMA model on seasonally adjusted series
- Build SARIMA model (including seasonal components)
- Compare ARIMA and SARIMA forecast performance (RMSE, MAE)
- Visualize forecast results of both models
Requirements:
- Use
seasonal_decompose()or STL - SARIMA parameter form: SARIMA(p,d,q)(P,D,Q)₁₂
- Training set: first 10 years; test set: last 2 years
- Plot forecast comparison chart
Exercise 4: Event Study - Market Reaction to Earnings Announcements ⭐⭐⭐
Problem:
A technology company released quarterly earnings report on 2023-08-15, with results exceeding expectations. Please evaluate:
- Use market model to estimate normal returns (estimation window: 250-11 days before event)
- Calculate abnormal returns (AR) for event window (-10, +10)
- Calculate cumulative abnormal returns (CAR)
- Conduct statistical significance testing (single-day AR and CAR)
- Analyze: Was there information leakage before earnings announcement? How did market react after announcement?
Requirements:
- Complete event study process
- Visualize AR and CAR
- Write analysis report (300 words)
Exercise 5: Multiple Event Study - Cross-sectional Analysis of Merger Announcements ⭐⭐⭐⭐
Problem:
Analyze 50 merger announcement events, calculate average abnormal return (AAR) and cumulative average abnormal return (CAAR):
- Conduct event study for each of 50 events separately
- Calculate AAR for each trading day
- Calculate CAAR and conduct cross-sectional t-test
- Group analysis by merger type (horizontal vs vertical mergers)
- Test: Is CAAR significantly different between target companies and acquiring companies?
Scoring Criteria (out of 100):
- Single event study implementation (30 points)
- AAR and CAAR calculation (20 points)
- Statistical testing (20 points)
- Group analysis (20 points)
- Visualization and report (10 points)
Classic Literature Recommendations
Must-Read Textbooks
Box, G. E. P., Jenkins, G. M., Reinsel, G. C., & Ljung, G. M. (2015). Time Series Analysis: Forecasting and Control (5th ed.). Wiley.
- Bible of time series analysis
- Authoritative work on ARIMA methods
Hamilton, J. D. (1994). Time Series Analysis. Princeton University Press.
- Graduate-level textbook
- Covers VAR, cointegration, state space models
Enders, W. (2014). Applied Econometric Time Series (4th ed.). Wiley.
- Economics perspective on time series
- Numerous empirical cases
Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3rd ed.). OTexts.
- Free online textbook: https://otexts.com/fpp3/
- R code included, Python users can reference approach
Event Study Methodology
MacKinlay, A. C. (1997). "Event Studies in Economics and Finance." Journal of Economic Literature, 35(1), 13-39.
- Authoritative review of event study methodology
- Must-read
Kothari, S. P., & Warner, J. B. (2007). "Econometrics of Event Studies." In Handbook of Corporate Finance: Empirical Corporate Finance, 3-36.
- Detailed methodological discussion
- Pitfalls in statistical inference
Foundational Papers
Dickey, D. A., & Fuller, W. A. (1979). "Distribution of the Estimators for Autoregressive Time Series with a Unit Root." Econometrica, 47(4), 1057-1072.
- Original ADF test paper
Engle, R. F., & Granger, C. W. J. (1987). "Co-integration and Error Correction: Representation, Estimation, and Testing." Econometrica, 55(2), 251-276.
- Cointegration theory (Nobel Prize research)
Fama, E. F., Fisher, L., Jensen, M. C., & Roll, R. (1969). "The Adjustment of Stock Prices to New Information." International Economic Review, 10(1), 1-21.
- Seminal work on event study methodology
Learning Path Recommendations
Beginner Path (1-2 months)
Goal: Master time series basics and simple ARIMA
Learning Content:
- Time series basic concepts (stationarity, ACF/PACF)
- Unit root testing (ADF, KPSS)
- Simple ARIMA modeling (AR, MA, ARMA)
- Box-Jenkins process
Recommended Resources:
- Enders (2014): Chapters 1-2
- Hyndman & Athanasopoulos (2021): Chapters 2, 8, 9
Practice: Exercises 1, 2, 3
Intermediate Path (3-4 months)
Goal: Independently complete time series forecasting and event studies
Learning Content:
- SARIMA modeling
- Model diagnosis and selection
- Event study methodology
- Multiple event studies and cross-sectional testing
Recommended Resources:
- Box & Jenkins (2015): Chapters 5-7
- MacKinlay (1997)
Practice: Exercises 3, 4, 5
Advanced Path (5-6 months)
Goal: Master VAR, cointegration, VECM
Learning Content:
- Vector Autoregression (VAR)
- Granger causality testing
- Impulse Response Function (IRF)
- Cointegration and Vector Error Correction Model (VECM)
- Structural break detection
Recommended Resources:
- Hamilton (1994): Chapters 10-11, 19-20
- Lütkepohl (2005): New Introduction to Multiple Time Series Analysis
Common Pitfalls and Precautions
Pitfall 1: Spurious Regression
Problem: Two non-stationary series may show high correlation but are actually unrelated
Example:
# Two independent random walks
y1 = np.cumsum(np.random.randn(100))
y2 = np.cumsum(np.random.randn(100))
# Regression: R² very high, but meaningless!
import statsmodels.api as sm
X = sm.add_constant(y1)
model = sm.OLS(y2, X).fit()
print(f"R² = {model.rsquared:.4f}") # May be > 0.5!Solution:
- Always test for stationarity
- Use differencing or cointegration analysis
Pitfall 2: Over-differencing
Problem: Unnecessary differencing introduces MA components
Testing:
- Use joint ADF and KPSS testing
- If ADF rejects unit root and KPSS doesn't reject stationarity, series is already stationary
Pitfall 3: Ignoring Structural Breaks
Problem: Policy changes, crises lead to parameter changes
Testing:
- Chow Test
- Bai-Perron breakpoint detection
Pitfall 4: Biases in Event Studies
Problem A: Event Clustering
- Multiple events concentrated in same period (e.g., merger wave during financial crisis)
- Solution: Use calendar-time portfolio method
Problem B: Event Anticipation
- Market knows event in advance (e.g., policy rumors)
- Solution: Expand event window, test pre-event AR
Problem C: Long-term Event Study Bias
- Long-term CAR affected by compound returns and skewness
- Solution: Use BHAR (Buy-and-Hold Abnormal Returns)
Conclusion
Time series analysis is a core tool for empirical research in economics and finance. Through this chapter's study, you have mastered:
✓ Theoretical Foundation: Stationarity, autocorrelation, ARIMA theory ✓ Modeling Skills: Box-Jenkins process, model diagnostics ✓ Forecasting Ability: Time series forecasting and evaluation ✓ Causal Inference: Event study methodology ✓ Python Implementation: Proficient use of statsmodels, pandas
Remember the Core Philosophy:
"Time series analysis is not just about forecasting the future; it's about understanding the dynamics that drive the data."
Continue to deepen your learning and apply time series methods to your research field, and you will be able to:
- Publish high-quality academic papers
- Provide empirical support for policymaking
- Conduct quantitative analysis in the financial industry
- Solve complex real-world problems
Time Series Analysis: Understanding the past, predicting the future, evaluating causality! ⏰
Best wishes on your journey in time series analysis! ✓