IES FSV UK
What are the main stylized facts of the business cycle?
How well do the real business cycle models match these data?
Is it a usable theory?
To answer these questions, we will:
Separate the trend and cycle
Calibrate the RBC model
Simulate impulse response functions.
Business cycles are a-periodical fluctuations (rather than cycles) of output and other macroeconomic variables, observable in the whole economy. Longer than 2 quarters, shorter than 8 years.
No universal cause of all cycles/fluctuations.
Two perspectives:
Turning points + periods of growth (expansions or booms) and declines (recessions or contractions)
Deviations from the trend growth: growth recessions.
Theoretical models: focused on deviations from the trend; trend = equilibrium.
Data from the FRED database, series GDPC1, in logs.
Grey bars: NBER recessions (official chronology of peaks and troughs).
No clear regularity
Recessions shorter than expansions.
Exponential growth: \(gdp_{t+k} = gdp_0 (1+β)^k\)
R code on the next slide.
library(xts)
library(pdfetch) #Library for loading FRED data
library(ggplot2) #Library for plotting
data <- pdfetch_FRED("GDPC1")
data$loggdp <- log(data$GDPC1)
#Add recession bars
recessions.df = read.table(textConnection(
"Peak, Trough
1948-11-01, 1949-10-01
1953-07-01, 1954-05-01
1957-08-01, 1958-04-01
1960-04-01, 1961-02-01
1969-12-01, 1970-11-01
1973-11-01, 1975-03-01
1980-01-01, 1980-07-01
1981-07-01, 1982-11-01
1990-07-01, 1991-03-01
2001-03-01, 2001-11-01
2007-12-01, 2009-06-01
2020-02-01, 2020-05-01"), sep=',',
colClasses=c('Date', 'Date'), header=TRUE)
ggplot(data$loggdp, aes(x = Index, y = data$loggdp)) +
geom_line(color="red", lwd=1) +
geom_rect(data=recessions.df, inherit.aes=F, aes(xmin=Peak, xmax=Trough, ymin=-Inf, ymax=+Inf), fill='darkgray', alpha=0.5) +
theme_classic() +
labs(title = "Log of US real GDP", x = "Quarter", y = "")
Trend: \[ log(gdp_{t+k}) =α + β*k + u_t \]
Further inspection reveals autocorrelation, heteroscedasticity, and lower trend growth since 1970’s.
Structural break in 1971 corroborated by statistical tests.
Several periods of absolute decline not identified as growth recessions, counter-intuitive interpretation of the 1950’s.
trend added by an additional line within the ggplot
command.
First differences: q-o-q changes (\(y_t - y_{t-1}\))
data$lgdp_d <- diff(data$loggdp)
rather volatile
Seasonal differences
annual growth rates ( \(y_t - y_{t-4}\) )
data$lgdp_sd <- diff(data$loggdp,4)
directly indicate recessions (absolute declines of annual GDP in two quarters in a row)
The linear model does not account for variation in trend growth rate.
Alternative: Filters that extract deviations with “business cycle” frequencies: shorter than 32 quarters/8 years); allow for time-variation of the trend.
The Hodrick-Prescott filter
\[ cycle_t = min \left( \sum_{t=1}^{T} (y_t - \tau_t)^2 + \lambda \sum_{t=2}^{T-1} [ (\tau_{t+1} - \tau_t) - ( \tau_t - \tau_{t-1} ) ]^2 \right) \]
The \(y_t\) is the acutal value of log(GDP), \(\tau_t\) is trend at t
The \(\lambda\) is a smoothing parameter, set to 1600 for quarterly data, 10 for annual data.
The \(\lambda\) has been set more less arbitrarily: authors commented it that the value to derive trend, which students of business cycles would draw into the plot of GDP.
Large values of \(\lambda\) => converge to linear trend. Low values => better fit to original series while larger variation in trend.
library(mFilter)
hp_gdp <- hpfilter(data$lgdp, freq = 1600, type="lambda")
hp_cycle <- hp_gdp$cycle
hp_trend <- hp_gdp$trend
plot(hp_gdp)
Cycles from the HP filter symmetric. 50 % of data below and above the trend.
End sample bias: HP filter is local, with forward-looking terms included in formula => large shock at the end leads to backward revision of the whole trend line.
It arises as a consequence of filter construction.
Alternatives to the HP filter: structural model of potential output, based on full employment benchmark and capacity utilization. OECD, EU-Ecofin, central banks publish their estimates of potential GDP regularly; Hamilton (2018) regression filter.
Implication: Hard to assess the cyclical position of the economy in the real-time. Different methods give different results about the state of the economy. Particularly important during the crisis when it is hard to assess to what extent the decrease of GDP is caused by shift in trend and to what extent it is a consequence of temporary cyclical deviation. Both options have different implications for economic policy.
Stylized facts: simplified presentation of empirical findings - broad generalizations that summarizes complex behavior (essentially true but likely with inaccuracies in details so it’s useful to test whether they still hold or not)
These generalizations help with building of theories. Their implications shall broadly correspond to these stylized facts.
Business cycles: comovement of variables of interest with the real GDP
Derivation of stylized facts:
Take the series in real terms per capita (consistent with the theory), net of seasonal fluctuations, and in logs (the deviation from the trend then in %)
Apply Hodrick-Prescott filter on each series individually.
Derive correlations, cross-correlations, autocorrelation, volatility…
fred_data_m <- pdfetch_FRED(c("GDPC1", "GDPPOT", "POP", "GCEC1", "PCECC96", "GPDIC1", "M2SL", "M1SL", "CPIAUCSL", "CPILFESL", "PPIACO", "FEDFUNDS", "TB3MS", "UNRATE", "CE16OV", "HCOMPBS", "PRS84006023", "ULCBS"))
# Convert data to quarterly frequency
fred_data <- to.period(fred_data_m, period = "quarter", OHLC = FALSE)
# Logs of per capita terms
fred_data$lgdp_h <- log(fred_data$GDPC1/fred_data$POP*1000)
fred_data$consph <- log(fred_data$PCECC96/fred_data$POP*1000)
fred_data$invph <- log(fred_data$GPDIC1/fred_data$POP*1000)
fred_data$gexpph <- log(fred_data$GCEC1/fred_data$POP*1000)
fred_data$emp <- log(fred_data$CE16OV)
fred_data$hours <- log(fred_data$PRS84006023)
fred_data$m2 <- log(fred_data$M2SL)
fred_data$m1 <- log(fred_data$M1SL)
fred_data$prices <- log(fred_data$CPIAUCSL)
# HP filtered series
lgdpph_hp <- hpfilter(fred_data$lgdp_h, freq = 1600, type="lambda")
fred_data$lgdpph_cycle <- lgdpph_hp$cycle
consph_hp <- hpfilter(fred_data$consph, freq = 1600, type="lambda")
fred_data$consph_cycle <- consph_hp$cycle
invph_hp <- hpfilter(fred_data$invph, freq = 1600, type="lambda")
fred_data$invph_cycle <- invph_hp$cycle
gexpph_hp <- hpfilter(fred_data$gexpph, freq = 1600, type="lambda")
fred_data$gexpph_cycle <- gexpph_hp$cycle
emp_hp <- hpfilter(fred_data$emp, freq = 1600, type="lambda")
fred_data$emp_cycle <- emp_hp$cycle
hours_hp <- hpfilter(fred_data$hours, freq = 1600, type="lambda")
fred_data$hours_cycle <- hours_hp$cycle
m2_hp <- hpfilter(fred_data$m2, freq = 1600, type="lambda")
fred_data$m2_cycle <- m2_hp$cycle
m1_hp <- hpfilter(fred_data$m1, freq = 1600, type="lambda")
fred_data$m1_cycle <- m1_hp$cycle
prices_hp <- hpfilter(fred_data$prices, freq = 1600, type="lambda")
fred_data$prices_cycle <- prices_hp$cycle
plot(fred_data$lgdpph_cycle, main = "GDP gap, cycles in consumption and investment")
lines(fred_data$consph_cycle, col="red", lwd=2)
lines(fred_data$invph_cycle, col="blue", lwd=2)
plot(fred_data$lgdpph_cycle, main = "GDP gap, cycles government expenditures")
lines(fred_data$gexpph_cycle, col="green", lwd=2)
plot(fred_data$lgdpph_cycle, main = "GDP gap, cycles in employment and hours")
lines(fred_data$emp_cycle, col="orange", lwd=2)
lines(fred_data$hours_cycle, col="brown", lwd=2)
plot(fred_data$lgdpph_cycle, main = "GDP gap, cycles in monetary aggregates")
lines(fred_data$m1_cycle, col="violet", lwd=2)
lines(fred_data$m2_cycle, col="pink", lwd=2)
plot(fred_data$lgdpph_cycle, main = "GDP gap, cycles in prices")
lines(fred_data$prices_cycle, col="blue", lwd=2)
# To obtain some summary statistics a new object gaps is created
gaps <- (fred_data$lgdpph_cycle)
gaps$consph_cycle <- fred_data$consph_cycle
gaps$invph_cycle <- fred_data$invph_cycle
gaps$gexpph_cycle <- fred_data$gexpph_cycle
gaps$emp_cycle <- fred_data$emp_cycle
gaps$hours_cycle <- fred_data$hours_cycle
gaps$m1_cycle <- fred_data$m1_cycle
gaps$m2_cycle <- fred_data$m2_cycle
# means and quantiles
summary(gaps)
# correlation matrix with p-values
library(Hmisc)
rcorr(gaps)
Correlation with the GDP | Procyclical? | Lead/lag | St.dev. | St.dev. relative to the GDP | Variability | |
---|---|---|---|---|---|---|
Output | 1 | 0.016 | 1 | |||
Consumption | 0.89 | Yes | Coincident | 0.013 | 0.81 | Smaller |
Investment | 0.88 | Yes | Coincident | 0.066 | 4.12 | Larger |
Gov. exp. | -0.03 | - | ? | 0.017 | 1.1 | Similar |
Prices | 0.82 | Yes | ? | 0.013 | 0.81 | Smaller |
Employment | 0.71 | Yes | Coincident | 0.012 | 0.81 | Smaller |
Money supply | -0.03 | - | ? | 0.016 | 1 | Similar |
Components of GDP have strongly correlated cycles, but other variables are more diverse.
Investment are more volatile and consumption less than the output.
Government expenditures: changing pattern. Recently rather countercyclical.
Employment: pro-cyclical, fluctuations similar amplitudes as GDP, average weekly hours much smoother.
Money aggregate M2, CPI: changing patterns.
Evolving dynamics of real GDP fluctuations:
The Great Inflation: late 1960s – end of 1970s.
The Great Moderation: mid 1980s – 2008.
Since 2008 - ?
Driving forces behind these long-run trends remain subject to a debate.
Building a credible business cycle model is uneasy.
Ideal business cycle model shall mimic the main stylized facts, allow for different causes of fluctuations and evolution of the nature of the business cycle over time.
The aim of the RBC theory was exactly that: to provide a credible model that can be used for forecasting and policy analysis.
Building a credible business cycle model is uneasy.
Ideal business cycle model shall mimic the main stylized facts, allow for different causes of fluctuations and evolution of the nature of the business cycle over time.
The aim of the RBC theory was exactly that: to provide a credible model that can be used for forecasting and policy analysis.
Real business cycle models
A quantitative, micro founded model (= set of equations) of business cycle based on optimization of rational agents.
The cyclical deviations appear as optimal response to real (not nominal) shocks, mostly fluctuations in productivity growth.
Dynamics driven by technology shocks and propagated through labour market.
It was postulated that if the model produces simulated variables with stylized facts similar to the real data, the predictions of the model shall be reliable.
Benchmark model (follows Cooley - Prescott, 1995)
Intertemporal utility function
\(U = E_0 \sum_{t=0}^{\infty} \beta^t u(c_t,l_t)\)
Intratemporal substitution of C and L
\(u(c_t,l_t) = log(c_t) + \psi log(l_t)\)
Production function
\(y_t = e^{z_t} k_t^\alpha l_t^{1-\alpha}\)
Stochastic shocks on technology
\(z_t = \rho z_{t-1} + \varepsilon_t\)
Dynamics of capital
\(k_{t+1} = i_t + (1-\delta) k_t\)
Two identities
\(n_t + l_t = 1\)
\(y_t = c_t + i_t\)
Model: just the main features that are believed to be the most relevant
One model for all economies? It is believed that the key structure holds for all countries, so the qualitative predictions should be OK. The quantitative effects might differ because of country-specific features that are reflected mainly by different sets of parameters.
Parameters of RBC’s are usually calibrated rather than estimated.
Calibration = method to set parameters based on information outside of the model (from microeconomic studies, separate regressions etc.). Hence, the parameter values are based on external information, not estimated by the model.
Goal: not estimation, but selection of parameters so that the model provides appropriate quantitative and qualitative predictions in line with stylized facts (i.e., procyclical behavior of aggregates, consumption smoothing…).
Calibrated model is used to simulate the variables.
Moments of simulated variables are compared with the models from the data.
If the moments match the data => calibration is “good” …
… and the model is believed to be suitable for quantitative predictions of policy changes, effects of shocks etc.
Why? It is believed that if the model makes “believable” predictions along some important dimensions (i.e., it matches key moments), then the model is credible and its predictions are believable along other, often novel and innovative dimensions.
\(U = E_0 \sum_{t=0}^{\infty} \beta^t u(c_t,l_t)\)
\(u(c_t,l_t) = log(c_t) + \psi log(l_t)\)
\(y_t = e^{z_t} k_t^\alpha l_t^{1-\alpha}\)
\(z_t = \rho z_{t-1} + \varepsilon_t\)
\(k_{t+1} = i_t + (1-\delta) k_t\)
\(n_t + l_t = 1\)
\(y_t = c_t + i_t\)
Calibration of parameters of utility function:
life-time: the subjective discount factor \(\beta\)
the leisure share of instantaneous utility \(\psi\).
The production side contains the parameters of
the capital share on output \(\alpha\),
the depreciation rate \(\delta\) and
the structure of the technology shocks (Solow residuals) – their AR1 coefficient \(\rho\) and standard error \(\sigma\).
(1-\(\alpha\)) = labour share of output
Compensation of employees/GDP (nominal) – time series with codes “coe” and “gdp” in FRED – is on average 56%.
Additionally, we should add estimated compensation of self-employed: roughly 10% of GDP. In total, (1-\(\alpha\)) = 2/3.
We set α to 0.4 as in Cooley and Prescott.
For the U.S., Hansen and Wright suggest 0.36 and sometimes other calibrations appear in the literature.
For the emerging countries the share of output should be even higher. For example for the CZ the estimates range from 0.35 to 0.52, Dybczak-Flek- Hájková-Hurník (Czech Journal of Economics and Finance, 2004) suggest 0.43 and 0.43 is also the midpoint in estimates of time-varying value of α in Hájková and Hurník (Czech Journal of Economics and Finance, 2007).
\(\beta = 0.99\) ; \(\psi = 1.21\) ; \(\delta= 0.015\) ; \(\alpha = 0.40\) ; \(\rho = 0.77\) ; \(\sigma_\varepsilon = 0.55\)
After setting all parameters, the model is simulated.
Done in Matlab (package dynare, code in Appendix); can be estimated in R too, with R-package gEcon which calls Octave and Dynare, see: https://www.r-bloggers.com/2021/08/gecon-calibration-of-rbc-or-dsge-model-with-irfs/
US Data | Baseline RBC model | |||
---|---|---|---|---|
St.Dev. | Correlation with GDP | St.Dev. | Correlation with GDP | |
GDP | 1.72 | 1.0 | 1.35 | 1.0 |
Consumption | 0.86 | 0.77 | 0.329 | 0.843 |
Investment | 8.24 | 0.91 | 5.954 | 0.992 |
Hours | 1.59 | 0.86 | 0.769 | 0.986 |
Productivity | - | 0.606 | 0.978 |
Since the calibrated model lead to a dynamics somewhat comparable with the real data, we can study the dynamic properties of the model (assuming that they are not far away from the real world).
Conceptual tool: the impulse-response functions.
Assume one-unit shock into one variable and simulate, what happens with the others.
What it tells: how big the impact is, how long it lasts, positive/negative effect of shock
Here: technology shock and effects on C, Y, I, K, L, N.
Technology shock z and effects on C, Y, I, K, L
Response of consumption and labour to technology shock small, K very persistent, GDP rises and then decreases.
Effect of propagation mechanism (labour below 0 after some time) very small
Everything caused by technology shocks. How is that possible?
Technology shocks = innovations in Solow residuals, i.e., At of the production function.
The Solow residuals (\(SR_t\)) are obtained from \(Y\), \(K\) and \(N\) and calibrated value of \(\alpha\):
\[ Y = K_t^\alpha (A_t N_t )^{1-\alpha} \\ log SR_t = log Y_t - \alpha K_t - (1-\alpha) log N_t \] Here, the \(A_t\) is decoposed into linear trend \(log A_t\) and stochastic component z_t:
\[ log SR_t = log A_t + log z_t \\ log A_t = c_1 + c_2.trend \\ z_t = \rho z_{t-1} + \varepsilon_t \]
The stochastic part is the technology shock, which follows the AR(1) process. The estimates lead to autocorrelation 0.99 and standard deviation of shocks 0.8%. Cooley and Prescott on a shorter sample prefer 0.95 and 0.007.
This way, technological shocks represent all shocks hitting the economy.
This plot shows output gap, Solow residuals \(z_t\) and technology shocks \(\varepsilon_t\).
Event line “a” denotes start of Volcker’s disinflationary policies in late 1979. Line “b” points towards 9-11 terrorist attack, and line “c” to the collapse of Lehmann Brothers in 2008. The nature of those shocks is clearly different from changes in technology.
Main advantages of RBC (as seen now):
Simplicity (relatively to other classes of models), natural extension of growth models
“Benchmark model” - pros and cons well known, outcomes of more complicated models are compared to RBC model to study effects of extensions to the simple model (rather than policy simulations).
Although micro-founded, many limitations and drawbacks:
Technology shocks are implausibly large and frequent; they encompass all shocks hitting the economy; as if changes in G, M or financial shocks can be approximated by technology shocks and as if the reaction of the economy to those shocks is the same as to the technology shocks.
Consumption smoothed much more than observed in the data.
Somewhat controversially, the model assumes that money as well as prices are of little importance in business cycles. This assumption is too strong, unrealistic and later it lead to development of more sophisticated models that capture inflation, various rigidities, multiplicity of shocks or shifts in money demand.
Intertemporal substitution of labor: the elasticity of substitution in labor supply usually not significant
Controversial policy implications: low costs of business cycles (the economy is always in optimum) and no involuntary unemployment (business cycles are times of chronical laziness… - Mankiw, 1989)
Log-linear trends and Hodrick-Prescott filter
Derivation of stylized facts + Cyclical variables: namely national accounts, employment.
RBCs: calibration, everything about technology shocks.
Main steps of calibration
Select the model
Use microeconomic studies or economic theory to select appropriate values of all parameters
Solve the model numerically
Compare the moments (standard deviations, correlations …) of the simulated model with those of the actual economy.
If the moments are matched, success! => It is possible to use model for predictions, impulse responses etc. If not, the moments which do not match the data suggest areas for potential model improvement.
Kydland, F. - Prescott, E. (1990): Business cycles: Real facts and a monetary myth.
Hartley, J. (1999): Real myths and a monetary fact. (A critical response to the Kydland’s and Prescott’s article)
Stock, James; Mark Watson (2002). “Has the business cycle changed and why?”. NBER Macroeconomics Annual.
Summers, Peter M (2005). “What caused the Great Moderation? Some cross-country evidence”. Economic Review Federal Reserve Bank of Kansas City 90.
Benati, Luca (2008-01-30). “The”Great Moderation” in the United Kingdom”. Journal of Money, Credit and Banking.
Taylor, John (2011). “The Cycle of Rules and Discretion in Economic Policy”. National Affairs (7).
//A Simple Real Business Cycle Model://
//Dynare Code: Dynare toolbox for Matlab http://www.dynare.org///
//To run it, simply copy code into .mod file, save and run dynare filename.mod in Matlab or octave//
//Definition of variables//
var y c k i l n z;
varexo e;
//Parameters and its calibrated values//
parameters beta phi delta alpha rho sigma;
beta = 0.99;
phi = 2;
delta = 0.012;
alpha = 0.4;
rho = 0.95;
sigma = 0.007;
//FOCs of the model//
model;
c=l/phi*(1-alpha)*exp(z)*k^alpha*n^(-alpha);
1/c=beta/c(+1)*(1+alpha*exp(z(+1))*k(+1)^(alpha-1)*n(+1)^(1-alpha)-delta);
y=exp(z)*k^alpha*n^(1-alpha);
y=c+i;
k=i(-1)+(1-delta)*k(-1);
1=n+l;
z=rho*z(-1)+e;
end;
//Initial values//
//Not far from deterministic steady state//
initval;
y = 10;
k = 40;
c = 0.7;
i = 0.3;
n = 0.5;
l = 0.5;
z = 0;
e = 0;
end;
//Adding stochastic shocks and simulation of the model//
shocks;
var e;
stderr sigma;
end;
steady;
stoch_simul(hp_filter = 1600, order = 1);
//Some results//
statistic1 = 100*sqrt(diag(oo_.var(1:6,1:6)))./oo_.mean(1:6);
dyntable('Relative standard deviations in %',strvcat('VARIABLE','REL. S.D.'),M_.endo_names(1:6,:),statistic1,10,8,4);
The Great Moderation refers to a reduction in the volatility of business cycle fluctuations starting in the mid-1980s, believed to have been caused by institutional and structural changes in developed nations in the later part of the twentieth century.
Around the mid-1980s, major economic variables began to decline in volatility.
Causes – good luck, structural change or good policy? Open question.
Improved government economic stabilization policy (particularly monetary policy with inflation targeting and central bank independence allowing the Fed and other central banks to achieve stable inflation, Summers, 2005, Taylor, 2011 and others)
Good luck: Favourable productivity and commodity price shocks – Benati, 2007.
Changes in fiscal policy and international trade (etc.)
Perhaps the Great Moderation was brought till the end in 2008 giving more prominence to the “good luck hypothesis”.
No. They differ by duration, amplitudes… and causes.
What causes differences in severity of recessions? No clear consensus, but there’s some evidence that financial crises lead to more severe recessions.
After severe recessions the real GDP might not necessarily arrive to original trend.
Laurence Ball (2014, Long-term damage from the Great Recession in OECD countries; NBER) compares estimates of potential outputs of 2014 with predictions from 2007. The impact very diverse, from “almost nothing” up to 30% in Greece, Hungary and Ireland. Average: 8.4%. Evidence for a strong hysteresis.
Ollivaud and Turner (2015, OECD Journal: Economic Studies) are somewhat more optimistic, their estimates are up to 10% of potential output loss and median equal to 5.25%.
The reasons for this discrepancies still subject to debate. Blanchard and Leigh (2013, AER) attribute to much of the decrease in growth forecasts to fiscal adjustments, however their results are related to economic growth as such, not to potential output.
RBC models developed in the early 1980’s as response to systems of behavioral equations models that were used frequently in the 1960’s and 1970’s. These models were deemed as “unsuccessful” in predictions of the effects of inflation and policy measures adopted in the 1970’s when stagflation occurred.
“Old” models: The Cowles Commission Approach; systems of simultaneous equations with a priori determined exogenous and endogenous variables and economic relationships such as IS curve or Phillips curve. It was believed that the key failure of the Cowles Commission Approach was caused by inconsistency with optimizing behavior of agents, because the construction of the models was rather ad hoc selection of equations representing particular sector of the economy, these equations were not linked by unified methodology or framework.
Lucas (1976) stated the problem as follows: since behavior of optimizing agents changes with changes in the environment, it follows that any change in policy shall systematically alter the structure of economic models. Hence, coefficients in models with ad hoc policy equations must change too and derived predictions under the assumption of fixed coefficients in those models is no longer adequate.
Failure of these models stimulated large research concentrated in development of rational expectations models based on microfoundations and optimizing agents. RBC’s are perhaps the most prominent example of this research stream in the late 1970’s and early 1980’s, the other includes equilibrium monetary model of business cycle by Robert Lucas and others.