Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Chapter 23 — Impulse Response Functions

In the previous chapter, we introduced VAR models as systems of interacting time series.

But VAR coefficients themselves are often difficult to interpret directly.

Suppose we estimate a VAR involving:

A natural question immediately arises:

For example:

Impulse response functions (IRFs) were developed precisely to answer such questions.

This chapter introduces:

The emphasis is intuition-first and applications-oriented.


Learning Objectives

By the end of this chapter, you should be able to:


23.1 Why Impulse Responses Matter

Economic systems are dynamic.

A shock today may influence variables:

For example:


23.2 What Is an Impulse Response Function?

The response is tracked period by period.


Example

Suppose interest rates suddenly increase unexpectedly.

We may ask:

IRFs attempt to answer these questions visually and dynamically.


23.3 Intuition: Dropping a Stone into Water

A useful analogy is:

Dropping a stone into water.

The initial splash creates waves.

The waves then:

Economic shocks behave similarly.



23.4 Impulse Responses in a VAR

Consider a VAR involving:

Suppose an unexpected interest-rate shock occurs today.

The VAR traces:


Dynamic Feedback

Because variables interact:

This creates rich dynamic behavior.


23.5 A Simple Example

Suppose central banks unexpectedly raise interest rates.

Possible dynamic effects include:

PeriodPossible Effect
immediateborrowing becomes more expensive
short runinvestment falls
medium runoutput slows
longer runinflation declines


23.6 Shape of Impulse Responses

Impulse responses may display different patterns.


Rapid Decay

Effects disappear quickly.


Persistent Effects

Responses decay slowly over time.


Oscillating Responses

Variables may overshoot and fluctuate before stabilizing.



23.7 Positive and Negative Responses

Impulse responses may be:

For example:


23.8 Orthogonalized Shocks

A major complication arises because VAR residuals are often correlated.

For example:

may occur simultaneously.



23.9 Cholesky Decomposition

One common solution is:

Cholesky decomposition

This transforms correlated shocks into orthogonal shocks.



23.10 Ordering Matters

With Cholesky decomposition, variable ordering becomes important.

Example ordering:

  1. GDP

  2. Inflation

  3. Interest rate

This ordering implicitly assumes:



23.11 Identification Problems

VAR models describe correlations and dynamics.

But economists often want structural interpretation.

This requires identifying assumptions.


Example

Question:

What is a monetary policy shock?

Answering this requires economic theory.


Structural interpretation requires assumptions.


23.12 Confidence Intervals

Impulse responses are estimated statistically.

Therefore they contain uncertainty.

Confidence intervals help assess statistical precision.


Example

Wide confidence bands imply:



23.13 Estimating IRFs in Python

We now estimate impulse responses using Python.

import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from statsmodels.tsa.api import VAR

# Download data
spy = yf.download(
    "SPY",
    start="2015-01-01",
    auto_adjust=False
)

# Compute returns
returns = 100 * np.log(
    spy["Adj Close"] /
    spy["Adj Close"].shift(1)
)

returns = returns.dropna()

# Volatility proxy
volatility = returns.rolling(20).std()

# Combine variables
data = pd.concat(
    [returns, volatility],
    axis=1
)

data.columns = [
    "Returns",
    "Volatility"
]

data = data.dropna()

# Estimate VAR
model = VAR(data)

results = model.fit(2)

# Impulse responses
irf = results.irf(12)

irf.plot()

plt.savefig("figs/ch23/irf.png", dpi=300, bbox_inches="tight")
plt.close()   # replace with plt.show()
IRF

23.14 Interpreting an IRF Plot

Suppose we observe:

This suggests:


Persistent Responses

If responses decay very slowly:

This is common in:


23.15 Cumulative Impulse Responses

Sometimes we are interested in total accumulated effects.

This leads to cumulative impulse responses.


Example

Question:

How much total inflation is generated by an oil shock over two years?

Cumulative responses help answer this.


23.16 Forecast Error Variance Decomposition

Impulse responses are closely related to:

Forecast Error Variance Decomposition (FEVD)

FEVD measures how much forecast uncertainty comes from different shocks.



23.17 Impulse Responses and Economic Theory

Impulse responses are especially useful because they connect:

Examples include:



23.18 Example: Monetary Policy Shock

Suppose central banks unexpectedly raise interest rates.

Possible impulse responses:

VariablePossible Response
inflationdeclines gradually
GDPslows
unemploymentrises
exchange rateappreciates

Delayed Effects

Many macroeconomic responses occur only after several periods.

This is sometimes called:

policy transmission lag

23.19 Impulse Responses in Finance

IRFs are also widely used in finance.

Examples include:


Example

Question:

How does a U.S. market shock affect Asian stock markets?

VAR and IRF methods are commonly used to study such problems.


23.20 Generalized Impulse Responses

Standard orthogonalized IRFs depend on ordering assumptions.

An alternative is:

Generalized Impulse Responses

These reduce sensitivity to ordering.



23.21 IRFs and Stability

In stable systems:

In unstable systems:



23.22 GRETL Example: Impulse Responses

GRETL provides built-in tools for IRF analysis.


Step 1

Estimate a VAR model.

Menu:

Model → Time Series → VAR

Step 2

From the VAR output window:

Analysis → Impulse responses

Step 3

Choose:


[GRETL Screenshot Placeholder: IRF settings]

23.23 Reading IRF Graphs

Typical IRF graphs show:

The zero line is especially important.



23.24 Common Mistakes


23.25 Looking Ahead

Impulse responses provide powerful tools for analyzing dynamic systems.

The next chapter introduces:

We will combine:

within a unified multivariate framework.


Key Takeaways

Concept Check

Basic

  1. What is an impulse response function (IRF)?

  2. What does a “shock” represent in a VAR model?

  3. Why are IRFs used instead of directly interpreting VAR coefficients?


Intuition

  1. Explain the “stone in water” analogy for impulse responses.

  2. Why do economic shocks often have effects over multiple periods?

  3. What does it mean for a shock to “propagate” through a system?


Dynamics

  1. What is the difference between:

    • contemporaneous effects

    • lagged effects

  2. Why do impulse responses often decay over time?


Challenge

  1. What does it mean if an impulse response does not decay?


Interpretation & Practice

  1. An IRF shows:

  1. An IRF shows a negative response after a positive shock.

    • What does this suggest about the relationship?

  2. An IRF oscillates before stabilizing.

    • What might this indicate?

  3. An IRF is close to zero at all horizons.

    • What does this imply?


Persistence

  1. A shock has effects that persist for many periods.

    • What does this suggest about the system?

  2. A shock disappears quickly.

    • What does this imply?


Confidence Bands

  1. Confidence intervals are wide.

    • What does this imply?

  2. Confidence bands include zero.

    • What does this suggest?


Challenge

  1. Why should IRFs always be interpreted together with confidence intervals?


Orthogonalization & Identification

  1. Why are VAR shocks often correlated?

  2. What is orthogonalization?

  3. What does Cholesky decomposition do?


Ordering

  1. Why does variable ordering matter?

  2. What assumption is made when a variable is ordered first?

  3. What assumption is made when a variable is ordered last?


Interpretation

  1. Why are IRFs not automatically causal?


Challenge

  1. How can different ordering assumptions change conclusions?


Numerical & Graph Interpretation

Interpreting an Impulse Response Function

  1. Consider the following impulse response function:

Source
import numpy as np
import matplotlib.pyplot as plt

horizon = np.arange(10)

# stylized IRF: rise → peak → decay
irf = [0.0, 0.5, 0.9, 1.2, 1.0, 0.7, 0.4, 0.2, 0.1, 0.0]

plt.figure(figsize=(8,4))
plt.plot(horizon, irf, marker='o')

plt.axhline(0, linestyle='--', linewidth=1)

plt.title("Stylized Impulse Response Function")
plt.xlabel("Horizon")
plt.ylabel("Response")

plt.tight_layout()

plt.savefig("figs/ch23/irf_Q.png", dpi=300, bbox_inches="tight")
plt.close()   # replace with plt.show()
IRF


Reading an IRF

  1. Suppose an IRF shows:



Cumulative Effects

  1. Why might we use cumulative impulse responses?

  2. Suppose cumulative IRF increases steadily.


Stability

  1. Suppose IRFs grow larger over time.


Comparison

  1. Two IRFs:



Challenge

  1. Suppose a shock produces different responses depending on ordering.


Appendix 23A — Orthogonalized vs Generalized IRFs

Orthogonalized IRFs:

Generalized IRFs:

Different approaches may produce somewhat different results.



VAR coefficient matrices are often difficult to interpret directly.

Impulse responses became popular because they:

They transformed VAR analysis from:

large coefficient tables

into dynamic economic interpretation.