Is the Fed new-Keynesian? (2024)

(Update: This post turned in to "inflation past present and future")

I realize that the title of my last post, Is the Fed Fisherian?was not as clear as it could be. The model I used to understand the Fed's forecast was, in fact, completely standard new-Keyenesian. The new-Keynesian model has the Fisherian property -- a permanent interest rate rise raises inflation, at least eventually -- but that is not its core feature. A clearer description is, is the Fed new-Keynesian -- and thereby, only incidentally, Fisherian.

Beyond clearing that up, today I want to add unemployment. In part, I am motivated by a new working paper by Alex Domash and Larry Summers, warning that the Fed will have to raise interest rates to stop this inflation, and doing so will cause a recession. They also point out that scenario in the past, most notably 1980.

So what model can account for the Fed's rosy employment scenario? It turns out that the little new-Keynesian model from the last post accounts for its unemployment views as well. And that the same model accounts for its inflation, unemployment, and funds rate forecasts together makes it more credible that this is a reasonable model of how the Fed thinks.

The Fed, it seems is new-Keyensian. That makes some sense; their models are new-Keynesian. We shall see if those models are right.

Is the Fed new-Keynesian? (1)

I start today by plotting again the Fed's projections, this time including unemployment. As well as inflation going away on its own without a period of high interest rates, you see inflation gently converge to the Fed's view of a long-run 4% natural rate. Is there a model behind this rosy scenario? Yes.

The model is the same as in my last post, \begin{align} x_t &= -\sigma ( i_t -r - \pi^e_t) \\ \pi_t &= \pi^e_t + \kappa x_t \end{align} There are two variants: the traditional adaptive expectations \[\pi^e_t = \pi_{t-1}\] and new-Keyensian rational expectations \[\pi^e_t = E_t \pi_{t+1}.\] I translate the output gap \(x_t\) of the model to an unemployment rate using Okun's law -- each 1 percentage point rise in output is a 0.5% decline in unemployment relative to the 4% natural rate, \( u_t = 4 - x_t/2\)

The model's equilibrium condition is\[\pi_{t}=-\sigma\kappa ( i_{t}-r)+\left( 1+\sigma\kappa\right) \pi_{t}^{e}.\] With adaptive expectations \(\pi_{t}^{e}=\pi_{t-1},\)the equilibrium condition is\[\pi_{t}=(1+\sigma\kappa)\pi_{t-1}-\sigma\kappa( i_{t}-r).\] With rational expectations, the equilibrium condition is\[E_{t}\pi_{t+1}=\frac{1}{1+\sigma\kappa}\pi_{t}+\frac{\sigma\kappa}{1+\sigma\kappa}(i_{t}-r).\] Now, fire up each model, start out at \(i_1=0.33%\), \(\pi_1=5.5%\), put in the Fed's interest rate path, and let's see what inflation and unemployment comes out. (Starting at the observed inflation is the key here. Impulse responses, fiscal theory vs. new Keynesian, active vs. passive, etc. come down to which initial inflation do you pick after a shock. By using the data to pick the initial inflation, we don't have to worry about any of those issues.)

Is the Fed new-Keynesian? (2)

Is the Fed new-Keynesian? (3)

These two graphs plot the model response to the Fed's interest rate forecast using each variant of the model. I use \(\kappa=0.5\) \(\sigma=1\).

The traditional adaptive expectations model predicts an explosive inflation spiral, as before, and now also an explosive unemployment decline as well. Linear Okun's law is obviously going to break down past a zero unemployment rate, but the Fed is going to give in and sharply raise rates before that happens, as Domash and Summers predict.

The new-Keynesian model, by contrast, fits the Fed's unemployment forecast quite well, as it fits the inflation forecast. For such an incredibly simple model, with parameter values picked out of thin air, that's a pretty good fit. The Fed is new-Keynesian.

Rather than feed in the Fed's rate forecast and see if the model produces the Fed's unemployment and inflation forecast, let us again find the interest rate path needed to exactly hit the Fed's inflation forecast. Now we also look at the unemployment rate that interest rate path will produce.

To make this calculation, I again solve the equilibrium condition for the interest rate\[i_t = r+\frac{1+\sigma\kappa}{\sigma\kappa}\pi^e_t - \frac{1}{\sigma\kappa}\pi_t.\] Then use the Fed's inflation forecast for \(\pi_t\) and \(pi^e_t\), either one period ahead or one period behind.

Is the Fed new-Keynesian? (4)

Is the Fed new-Keynesian? (5)

In the traditional adaptive expectations version of the model, we need sharply higher, Taylor-rule style interest rates, now. Those higher nominal rates create higher real rates, which bring inflation down. They also cause a recession -- notice unemployment rising over the 4% natural rate. It's not so bad, because the simulation starts at last year'sPCE inflation, 5.5%, not last month's CPI inflation, 8%, and not (perhaps) this summer's 10% inflation, and because the model is incredibly simplified, and I chose a fairly mild price-stickiness parameter. Serious models can easily deliver a much worse recession.

By contrast, the new-Keynesian model says that in order to hit the Fed's inflation forecast, interest rates can stay low, and indeed a bit lower than the Fed projects. And that path is perfectly consistent with unemployment slowly reverting to the natural rate.

In the new-Keyensian model, the output gap and unemployment are related to inflation relative to future inflation. If inflation is high today relative to what people expect in the future, there will be lots of employment and little unemployment. Output is high and unemployment low when inflation is high but expected to decline. In the adaptive expectations model, output and unemployment are related to inflation relative to past inflation. Output is high and unemployment is low when inflation is high and rising. You would think this would be easy to tell apart in the data, but it isn't.

That is, however, the key element to understanding these radically different views of inflation dynamics.

In sum, the Fed's forecasts, now extended to unemployment, are not necessarily nutty, rosy scenario, etc. There is a model that produces them, and it is the standard new-Keynesian model. Now debate if that model is right, or right in this instance.

To reiterate, my best guess at the right answer is an expanded version of the new-Keynesian model with a short run negative effect that the Fed could exploit, and somewhat slower dynamics. That makes sense of the 2010s. For this to be an experiment, alas, we need a period with no additional shocks, but additional shocks are likely to happen.

Update: some more thoughts on Fed psychology in the next post

Code

Note, I don't include the data files. If you get then from Fred, replace the - with , in dates (1-1-2020 should be 1, 1, 2020) and it will work.

clear all

close all

%Fed data from https://www.federalreserve.gov/monetarypolicy/fomcprojtable20220316.htm

years = [2017 2018 2019 2020 2021 2022 2023 2024 2030]';

actual = [1.9 2.0 1.5 1.2 5.5 NaN NaN NaN NaN ]';

UpperRange = [ NaN NaN NaN NaN 5.5 5.5 3.5 3.0 2.0]';

UpperCentral =[ NaN NaN NaN NaN 5.5 4.7 3.0 2.4 2.0]';

MedianForecast =[NaN NaN NaN NaN 5.5 4.3 2.7 2.3 2.0]';

LowerCentral= [NaN NaN NaN NaN 5.5 4.1 2.3 2.1 2.0]';

LowerRange =[ NaN NaN NaN NaN 5.5 3.7 2.2 2.0 2.0]';

% I added last actual to the forecasts

fedfunds = [ NaN NaN NaN NaN NaN 1.9 2.8 2.8 2.4 ]';

unemp = [ NaN NaN NaN NaN 4.2 3.5 3.5 3.6 4.0 ]';

unempactual = [ 4.2 3.8 3.6 6.8 4.2 NaN NaN NaN NaN ]';

x = load('pcectpi.csv');

x = x(x(:,2)==10,:); % use 4th quarter for year

pceyr = x(:,1);

pce = x(:,4);

x = load('fedfunds.csv');

x = x(x(:,2)==12,:); % use 4th quarter for year

ffyr = x(:,1);

ff = x(:,4);

fedfunds(5) = ff(end);

rate_years = years;

mean_rate_forecast = fedfunds;

figure;

hold on;

plot(years, actual, '-r','linewidth',2);

plot(pceyr,pce,'-r','linewidth',2)

plot(years, MedianForecast, '-ro','linewidth',2);

plot(rate_years,mean_rate_forecast,'-bo','linewidth',2);

plot(ffyr,ff,'-b','linewidth',2)

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

plot([2010 2030],[0 0],'-k')

axis([2017 2030 -1 6])

text(2018,5.5,'Actual \leftarrow','fontsize',20)

text(2022,5.5,'\rightarrow Forecast','fontsize',20);

text(2022,1,'Fed Funds','color','b','fontsize',20);

text(2022.5,4,'Inflation','color','r','fontsize',20);

ylabel('Percent')

print -dpng actual_and_forecast.png

figure;

hold on;

plot(years, actual, '-r','linewidth',2);

plot(pceyr,pce,'-r','linewidth',2)

plot(years, MedianForecast, '-ro','linewidth',2);

plot(rate_years,mean_rate_forecast,'-bo','linewidth',2);

plot(ffyr,ff,'-b','linewidth',2)

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

plot([2010 2030],[0 0],'-k')

axis([2017 2030 -0.5 7])

%text(2018,5.5,'Actual \leftarrow','fontsize',20)

text(2022,6.5,'\rightarrow Forecast','fontsize',20);

text(2025,3,'Fed Funds','color','b','fontsize',20);

text(2025,2,'Inflation','color','r','fontsize',20);

text(2025,4.2,'Unemployment','color','k','fontsize',20);

ylabel('Percent')

plot(years, unempactual,'-k','linewidth',2);

plot(years, unemp,'-vk','linewidth',2)

print -dpng actual_forecast_unemp.png

% Theory

kap = 0.5;

sig = 0.5/kap;

r = 0.5;

T = 11;

tim = (1:T)';

it = 0*tim;

it(1:5) = mean_rate_forecast(end-4:end);

it(6:end) = it(5);

pita = it*0;

pitr = it*0;

xta = it*0;

xtr = it*0;

pita(1) = 5.5;

pitr(1)= 5.5;

xta(1) = 4.2;

xtr(1) = 4.2;

for t = 2:T

pita(t) = (1+sig*kap)*pita(t-1) - sig*kap*(it(t)-r);

pitr(t) = 1/(1+sig*kap)*pitr(t-1)+sig*kap/(1+sig*kap)*(it(t-1)-r);

end;

for t = 2:T

xta(t) = 4+sig*(it(t)-r-pita(t-1))/2;

if t < T;

% xtr(t) = 4+sig*(it(t)-r-pitr(t+1))/2;%check same result

xtr(t) = 4-(pitr(t)-pitr(t+1))/(2*kap);

else;

xtr(t) = NaN;

end;

end;

figure;

hold on

plot(tim+2020,it,'-b','Linewidth',2);

plot(tim+2020,pita,'-r','Linewidth',2);

plot(tim+2020,pitr,'-vr','Linewidth',2);

plot([tim(1:4)+2020; 2030],MedianForecast(end-4:end),'--r','linewidth',2);

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

axis([2020 2030 0 10])

text(2022.5,8,'Inflation, adaptive E','color','r','fontsize',20)

text(2026,1.7,'Inflation, rational E','color','r','fontsize',20)

text(2022,4.5,'--Inflation, Fed forecast','color','r','fontsize',20)

text(2021.8,1,'Fed funds, Fed forecast','color','b','fontsize',20)

ylabel('Percent')

print -dpng inflation_forecast.png

figure;

hold on

text(2020.5,-1,'Fed funds','color','b','fontsize',20)

plot(tim+2020,xta,'-k','Linewidth',2);

plot([tim(1:4)+2020; 2030],unemp(end-4:end),'--k','linewidth',2);

plot(tim+2020,it,'-b','Linewidth',2);

plot(tim+2020,pita,'-r','Linewidth',2);

plot([tim(1:4)+2020; 2030],MedianForecast(end-4:end),'--r','linewidth',2);

plot([2021.5 2021.5],[-2 12],'-k','linewidth',2);

plot(tim+2020,0*tim,'-k')

axis([2020 2030 -2 12])

title('Adaptive Expecations','fontsize',16);

text(2022.5,8,'Inflation','color','r','fontsize',20)

%text(2022,4.5,'Inflation forecast','color','r','fontsize',20)

text(2025, -1, 'Unemployment','color','k','fontsize',20);

ylabel('Percent')

legend('Model','Fed Forecast','fontsize',20);

print -dpng unemp_adaptive.png

figure;

hold on

plot(tim+2020,xtr,'-k','Linewidth',2);

plot([tim(1:4)+2020; 2030],unemp(end-4:end),'--k','linewidth',2);

plot(tim+2020,it,'-b','Linewidth',2);

plot(tim+2020,pitr,'-r','Linewidth',2);

plot([tim(1:4)+2020; 2030],MedianForecast(end-4:end),'--r','linewidth',2);

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

axis([2020 2030 0 6])

text(2026,1.7,'Inflation','color','r','fontsize',20)

text(2026,3.5,'Unemployment','color','k','fontsize',20)

text(2021.8,1,'Fed funds','color','b','fontsize',20)

legend('Model','Fed Forecast','fontsize',20);

title('New-Keynesian','fontsize',16);

ylabel('Percent')

print -dpng unemp_rational.png

% plot needed interest rate

tim = (1:12)';

it = 0*tim;

pit = [MedianForecast(end-4:end);MedianForecast(end)*ones(7,1)];

ita = it*0;

itr = it*0;

for t = 2:size(tim,1)-1

ita(t) = r+ (1+sig*kap)/(sig*kap)*pit(t-1) - 1/(sig*kap)*(pit(t));

itr(t) = r+ (1+sig*kap)/(sig*kap)*pit(t+1) - 1/(sig*kap)*(pit(t));

end;

ita(1) = NaN;

itr(1) = NaN;

xta = it*0;

xtr = it*0;

for t = 2:size(tim,1)-1

%xta(t) = 4+sig*(ita(t)-r-pit(t-1))/2;

xta(t) = 4-(pit(t)-pit(t-1))/(2*kap);

if t < T;

%xtr(t) = 4+sig*(itr(t)-r-pit(t+1))/2;%check same result

xtr(t) = 4-(pit(t)-pit(t+1))/(2*kap);

else;

xtr(t) = NaN;

end;

end;

xta(1) = NaN;

xtr(1) = NaN;

figure;

hold on

plot(tim+2020,pit,'-r','Linewidth',2);

plot(tim+2020,ita,'-b','Linewidth',2);

plot(tim+2020,itr,'-vb','Linewidth',2);

plot(tim+2020,0*tim,'-k');

plot(rate_years,mean_rate_forecast,'--bo','linewidth',2);

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

axis([2020 2030 -0.5 9])

text(2023.5,8,'Needed rate, adaptive E','color','b','fontsize',20)

text(2022.5,0.5,'Needed rate, rational E','color','b','fontsize',20)

text(2026,1.5,'Inflation, Fed forecast','color','r','fontsize',20)

text(2026,4,'--Rate, Fed forecast','color','b','fontsize',20)

ylabel('Percent')

print -dpng needed_rate.png

figure;

hold on

plot(tim+2020,xta,'-k','linewidth',2)

plot(tim+2020,pit,'-r','Linewidth',2);

plot(tim+2020,ita,'-b','Linewidth',2);

plot(tim+2020,0*tim,'-k');

plot(rate_years,mean_rate_forecast,'--bo','linewidth',2);

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

axis([2020 2030 -0.5 9])

title('Adaptive Expectations','fontsize',16)

text(2023.5,8,'Needed rate','color','b','fontsize',20)

text(2026,1.5,'Inflation','color','r','fontsize',20)

text(2022,1,'--Fed rate','color','b','fontsize',20)

text(2026,5,'Unemployment','color','k','fontsize',20)

ylabel('Percent')

print -dpng needed_unemp_ok.png

figure;

hold on

plot(tim+2020,xtr,'-k','linewidth',2)

plot(tim+2020,pit,'-r','Linewidth',2);

plot(tim+2020,itr,'-b','Linewidth',2);

plot(tim+2020,0*tim,'-k');

plot(rate_years,mean_rate_forecast,'--bo','linewidth',2);

plot([2021.5 2021.5],[-1 10],'-k','linewidth',2);

axis([2020 2030 -0.5 6])

title('New-Keynesian','fontsize',16);

text(2022.5,0.5,'Needed rate','color','b','fontsize',20)

text(2026,1.5,'Inflation','color','r','fontsize',20)

text(2026,3,'--Fed rate','color','b','fontsize',20)

text(2026,4.2,'Unemployment','color','k','fontsize',20);

ylabel('Percent')

print -dpng needed_unemp_nk.png

Is the Fed new-Keynesian? (2024)
Top Articles
Master Code to Unlock Any Android Phone: 100% Working Guide
3 Ultra-Safe Dividend Stocks for Retirees to Buy and Hold | The Motley Fool
English Bulldog Puppies For Sale Under 1000 In Florida
Katie Pavlich Bikini Photos
Gamevault Agent
Pieology Nutrition Calculator Mobile
Hocus Pocus Showtimes Near Harkins Theatres Yuma Palms 14
Hendersonville (Tennessee) – Travel guide at Wikivoyage
Compare the Samsung Galaxy S24 - 256GB - Cobalt Violet vs Apple iPhone 16 Pro - 128GB - Desert Titanium | AT&T
Vardis Olive Garden (Georgioupolis, Kreta) ✈️ inkl. Flug buchen
Craigslist Dog Kennels For Sale
Things To Do In Atlanta Tomorrow Night
Non Sequitur
Crossword Nexus Solver
How To Cut Eelgrass Grounded
Pac Man Deviantart
Alexander Funeral Home Gallatin Obituaries
Energy Healing Conference Utah
Geometry Review Quiz 5 Answer Key
Hobby Stores Near Me Now
Icivics The Electoral Process Answer Key
Allybearloves
Bible Gateway passage: Revelation 3 - New Living Translation
Yisd Home Access Center
Pearson Correlation Coefficient
Home
Shadbase Get Out Of Jail
Gina Wilson Angle Addition Postulate
Celina Powell Lil Meech Video: A Controversial Encounter Shakes Social Media - Video Reddit Trend
Walmart Pharmacy Near Me Open
Marquette Gas Prices
A Christmas Horse - Alison Senxation
Ou Football Brainiacs
Access a Shared Resource | Computing for Arts + Sciences
Vera Bradley Factory Outlet Sunbury Products
Pixel Combat Unblocked
Movies - EPIC Theatres
Cvs Sport Physicals
Mercedes W204 Belt Diagram
Mia Malkova Bio, Net Worth, Age & More - Magzica
'Conan Exiles' 3.0 Guide: How To Unlock Spells And Sorcery
Teenbeautyfitness
Where Can I Cash A Huntington National Bank Check
Topos De Bolos Engraçados
Sand Castle Parents Guide
Gregory (Five Nights at Freddy's)
Grand Valley State University Library Hours
Hello – Cornerstone Chapel
Stoughton Commuter Rail Schedule
Nfsd Web Portal
Selly Medaline
Latest Posts
Article information

Author: Neely Ledner

Last Updated:

Views: 6033

Rating: 4.1 / 5 (62 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Neely Ledner

Birthday: 1998-06-09

Address: 443 Barrows Terrace, New Jodyberg, CO 57462-5329

Phone: +2433516856029

Job: Central Legal Facilitator

Hobby: Backpacking, Jogging, Magic, Driving, Macrame, Embroidery, Foraging

Introduction: My name is Neely Ledner, I am a bright, determined, beautiful, adventurous, adventurous, spotless, calm person who loves writing and wants to share my knowledge and understanding with you.