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:
inflation,
interest rates,
and output.
A natural question immediately arises:
For example:
What happens to inflation after a monetary policy shock?
What happens to GDP after an oil-price shock?
What happens to exchange rates after an interest-rate increase?
Impulse response functions (IRFs) were developed precisely to answer such questions.
This chapter introduces:
economic shocks,
dynamic propagation,
impulse response functions,
orthogonalization,
identification,
confidence intervals,
and economic interpretation.
The emphasis is intuition-first and applications-oriented.
Learning Objectives¶
By the end of this chapter, you should be able to:
explain the intuition behind impulse response functions
interpret dynamic responses to shocks
distinguish contemporaneous and lagged effects
understand orthogonalized shocks
interpret confidence bands
generate IRFs in Python and GRETL
understand identification issues in VAR analysis
interpret IRFs economically
23.1 Why Impulse Responses Matter¶
Economic systems are dynamic.
A shock today may influence variables:
immediately,
gradually,
or persistently.
For example:
a monetary tightening may reduce inflation only slowly,
an oil-price shock may affect output for many quarters,
a financial crisis may generate persistent volatility.
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:
How does inflation respond?
How long do effects persist?
Do effects eventually disappear?
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:
spread,
interact,
and gradually disappear.
Economic shocks behave similarly.
23.4 Impulse Responses in a VAR¶
Consider a VAR involving:
inflation,
interest rate.
Suppose an unexpected interest-rate shock occurs today.
The VAR traces:
inflation tomorrow,
inflation next month,
inflation next year,
and so on.
Dynamic Feedback¶
Because variables interact:
inflation affects interest rates,
interest rates affect inflation,
and responses feed back through time.
This creates rich dynamic behavior.
23.5 A Simple Example¶
Suppose central banks unexpectedly raise interest rates.
Possible dynamic effects include:
| Period | Possible Effect |
|---|---|
| immediate | borrowing becomes more expensive |
| short run | investment falls |
| medium run | output slows |
| longer run | inflation 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:
positive,
negative,
or mixed over time.
For example:
a monetary tightening may reduce inflation,
an oil-price shock may initially raise inflation,
stock markets may react positively or negatively depending on expectations.
23.8 Orthogonalized Shocks¶
A major complication arises because VAR residuals are often correlated.
For example:
inflation shocks,
and interest-rate shocks
may occur simultaneously.
23.9 Cholesky Decomposition¶
One common solution is:
Cholesky decompositionThis transforms correlated shocks into orthogonal shocks.
23.10 Ordering Matters¶
With Cholesky decomposition, variable ordering becomes important.
Example ordering:
GDP
Inflation
Interest rate
This ordering implicitly assumes:
GDP affects inflation contemporaneously,
inflation affects interest rates contemporaneously,
but not vice versa within the same period.
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:
substantial uncertainty,
less reliable inference.
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()
23.14 Interpreting an IRF Plot¶
Suppose we observe:
positive initial response,
gradual decay,
eventual convergence toward zero.
This suggests:
shocks matter temporarily,
but long-run stability eventually returns.
Persistent Responses¶
If responses decay very slowly:
shocks may have long-lasting effects.
This is common in:
volatility,
inflation,
exchange rates.
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:
data,
dynamics,
and economic theory.
Examples include:
monetary transmission,
fiscal policy effects,
exchange-rate dynamics,
financial contagion.
23.18 Example: Monetary Policy Shock¶
Suppose central banks unexpectedly raise interest rates.
Possible impulse responses:
| Variable | Possible Response |
|---|---|
| inflation | declines gradually |
| GDP | slows |
| unemployment | rises |
| exchange rate | appreciates |
Delayed Effects¶
Many macroeconomic responses occur only after several periods.
This is sometimes called:
policy transmission lag23.19 Impulse Responses in Finance¶
IRFs are also widely used in finance.
Examples include:
volatility spillovers,
stock market contagion,
oil-price shocks,
exchange-rate transmission.
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 ResponsesThese reduce sensitivity to ordering.
23.21 IRFs and Stability¶
In stable systems:
impulse responses eventually converge toward zero.
In unstable systems:
responses may explode.
23.22 GRETL Example: Impulse Responses¶
GRETL provides built-in tools for IRF analysis.
Step 1¶
Estimate a VAR model.
Menu:
Model → Time Series → VARStep 2¶
From the VAR output window:
Analysis → Impulse responsesStep 3¶
Choose:
shock variable,
response variable,
forecast horizon,
confidence intervals.
[GRETL Screenshot Placeholder: IRF settings]23.23 Reading IRF Graphs¶
Typical IRF graphs show:
horizontal axis = time horizon,
vertical axis = response magnitude.
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:
Vector Error Correction Models (VECMs),
cointegrated systems,
and long-run equilibrium relationships.
We will combine:
short-run dynamics,
and long-run adjustment
within a unified multivariate framework.
Key Takeaways¶
Concept Check¶
Basic¶
What is an impulse response function (IRF)?
What does a “shock” represent in a VAR model?
Why are IRFs used instead of directly interpreting VAR coefficients?
Intuition¶
Explain the “stone in water” analogy for impulse responses.
Why do economic shocks often have effects over multiple periods?
What does it mean for a shock to “propagate” through a system?
Dynamics¶
What is the difference between:
contemporaneous effects
lagged effects
Why do impulse responses often decay over time?
Challenge¶
What does it mean if an impulse response does not decay?
Interpretation & Practice¶
An IRF shows:
a positive initial response
gradual decay to zero
What does this imply?
An IRF shows a negative response after a positive shock.
What does this suggest about the relationship?
An IRF oscillates before stabilizing.
What might this indicate?
An IRF is close to zero at all horizons.
What does this imply?
Persistence¶
A shock has effects that persist for many periods.
What does this suggest about the system?
A shock disappears quickly.
What does this imply?
Confidence Bands¶
Confidence intervals are wide.
What does this imply?
Confidence bands include zero.
What does this suggest?
Challenge¶
Why should IRFs always be interpreted together with confidence intervals?
Orthogonalization & Identification¶
Why are VAR shocks often correlated?
What is orthogonalization?
What does Cholesky decomposition do?
Ordering¶
Why does variable ordering matter?
What assumption is made when a variable is ordered first?
What assumption is made when a variable is ordered last?
Interpretation¶
Why are IRFs not automatically causal?
Challenge¶
How can different ordering assumptions change conclusions?
Numerical & Graph Interpretation¶
Interpreting an Impulse Response Function¶
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()
Describe the pattern of the impulse response.
At what period does the response peak?
Does the effect persist or disappear quickly?
What does this suggest about the dynamic impact of the shock?
Reading an IRF¶
Suppose an IRF shows:
initial increase
peak after 3 periods
slow decline
What does this suggest?
Cumulative Effects¶
Why might we use cumulative impulse responses?
Suppose cumulative IRF increases steadily.
What does this imply?
Stability¶
Suppose IRFs grow larger over time.
What does this imply?
Comparison¶
Two IRFs:
one decays quickly
one decays slowly
Which system is more persistent?
Challenge¶
Suppose a shock produces different responses depending on ordering.
What does this suggest?
Appendix 23A — Orthogonalized vs Generalized IRFs¶
Orthogonalized IRFs:
rely on Cholesky decomposition,
depend on variable ordering.
Generalized IRFs:
reduce ordering sensitivity,
but may be harder to interpret structurally.
Different approaches may produce somewhat different results.
Appendix 23B — Why Impulse Responses Became Popular¶
VAR coefficient matrices are often difficult to interpret directly.
Impulse responses became popular because they:
summarize complex dynamics visually,
describe propagation mechanisms,
connect statistical models with economic narratives.
They transformed VAR analysis from:
large coefficient tablesinto dynamic economic interpretation.