Skip to content

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

DifficultyImportance


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 testing

Core Formula Quick Reference

Stationarity and Autocorrelation

ConceptFormulaExplanation
Weak Stationarity, , Mean, variance constant, autocovariance depends only on lag
ACFAutocorrelation function
First DifferenceRemove trend
ADF TestH₀: γ = 0 (unit root)

ARIMA Models

ModelFormulaACFPACF
AR(p)Exponential decayCutoff at p
MA(q)Cutoff at qExponential decay
ARMA(p,q)AR + MAGradual decayGradual decay
ARIMA(p,d,q)Depends on ARMADepends on ARMA
SARIMASeasonal lags significantSeasonal lags significant

Information Criteria

CriterionFormulaCharacteristic
AICFavors complex models
BICMore severe parameter penalty
HQICBetween AIC and BIC

Selection Principle: Lower value is better

Event Study

ConceptFormulaExplanation
Market ModelEstimate normal returns
Abnormal ReturnActual - Expected
CARCumulative abnormal returns
AR t-testH₀: AR = 0
CAR t-testH₀: CAR = 0
AARAverage abnormal return
CAARCumulative average abnormal return

Python Code Quick Reference

Time Series Basics

python
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

python
# 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

python
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

python
# 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:

  1. Conduct ADF and KPSS tests on the original CPI series, determine if stationary
  2. If non-stationary, apply first-order differencing, test stationarity again
  3. Plot time series graphs, ACF, PACF for original and differenced series
  4. Explain why CPI year-over-year growth rate might be non-stationary

Requirements:

  • Use adfuller() and kpss() 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:

  1. Plot ACF and PACF, preliminarily determine possible p, d, q
  2. Estimate at least 5 candidate models (e.g., ARIMA(1,1,0), ARIMA(0,1,1), ARIMA(1,1,1), etc.)
  3. Compare models using AIC, BIC, select optimal model
  4. Conduct residual diagnostics on optimal model (Ljung-Box test, normality test)
  5. 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:

  1. Use STL decomposition to extract trend, seasonal, residual components
  2. Build ARIMA model on seasonally adjusted series
  3. Build SARIMA model (including seasonal components)
  4. Compare ARIMA and SARIMA forecast performance (RMSE, MAE)
  5. 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:

  1. Use market model to estimate normal returns (estimation window: 250-11 days before event)
  2. Calculate abnormal returns (AR) for event window (-10, +10)
  3. Calculate cumulative abnormal returns (CAR)
  4. Conduct statistical significance testing (single-day AR and CAR)
  5. 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):

  1. Conduct event study for each of 50 events separately
  2. Calculate AAR for each trading day
  3. Calculate CAAR and conduct cross-sectional t-test
  4. Group analysis by merger type (horizontal vs vertical mergers)
  5. 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

  1. 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
  2. Hamilton, J. D. (1994). Time Series Analysis. Princeton University Press.

    • Graduate-level textbook
    • Covers VAR, cointegration, state space models
  3. Enders, W. (2014). Applied Econometric Time Series (4th ed.). Wiley.

    • Economics perspective on time series
    • Numerous empirical cases
  4. Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3rd ed.). OTexts.

Event Study Methodology

  1. 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
  2. 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

  1. 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
  2. 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)
  3. 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:

  1. Time series basic concepts (stationarity, ACF/PACF)
  2. Unit root testing (ADF, KPSS)
  3. Simple ARIMA modeling (AR, MA, ARMA)
  4. 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:

  1. SARIMA modeling
  2. Model diagnosis and selection
  3. Event study methodology
  4. 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:

  1. Vector Autoregression (VAR)
  2. Granger causality testing
  3. Impulse Response Function (IRF)
  4. Cointegration and Vector Error Correction Model (VECM)
  5. 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:

python
# 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!

Released under the MIT License. Content © Author.