Tuesday, February 23, 2010

Juicing the Housing Market

JUICING THE HOUSING MARKET WITH HOUSE PRICING VELOCITY, part 1

I’ve been working with Steve Keen's multisector computer model. I have set up a simulation for a housing sector along with the rest of the economy, ie, a 2 sector model. Using it, I believe I have discovered a simple way to create a housing bubble by merely juicing the housing price velocity.

The figure shown represents housing demand for a ‘natural market’ ie no stimulus, as well as new housing demand for a stimulated market.



Letting c = H/L, where c is the percentage of homes (and homeowners),H is the number of homes, L is the number of employed households. c is also the percentage of potential sellers, and 1-c is the percentage of potential house buyers. S= c*(1-c) is the number of possible sales transactions. S is a maximum at c = 0.5. D = dS/dc = 1-2c is the demand for new houses,
D > 0 for c < 0.5, more buyers than sellers. When c moves beyond 0.5 there is selling pressure, D < 0

For a stimulated market D = 1-2c+stimH. For stimH = 0.3, D = 1.3 -2c and demand is in equilibrium at c = 0.65. In a stimulated market like this, there are 65% potential sellers and 35% potential buyers at equilibrium, which is to say there is a built-in oversupply of houses.


JUICING THE HOUSING MARKET WITH HOUSE PRICING VELOCITY, part 2

Empirical backing for part 1 is seen in the figure, reproduced for the above link. In the US market before 1944, there was a natural market for housing. The curve shows that the market had stabilized a c = 0.47 or 47% before 1944. In 1944, returning GIs took advantage of a housing stimulus known as VA loans which helped them to buy affordable housing. This program increased homeownership to 65% by 1980 or so. After that various FHA stimulus increased c to as high as 69%



JUICING THE HOUSING MARKET WITH HOUSE PRICING VELOCITY, part 3

I modified the single sector model with a parallel housing sector. To get housing prices different from the general price level I wrote

dPH/dt = -1/tauPH(PH-FDH/tauS*(1-c)/H)

where FDH is the housing sector account, (1-c) is the buyer's percentage, H the number of houses and 1/tauPH is the house pricing velocity;

dH/dt= -CF/tauQ(H*exp(.691/70)-(FDH/tauS)/PH)

where CF = (1-2c + stimH) is the demand metric explained in part 1, tauQ is the housing supply lag (inverse velocity). The exponential term is included for depreciation. I assumed that the half life of a house was 70 years.

dLH/dt= -1/tauLH(LH - H/aH) is the employed households in the housing sector. To get the entire number of employed households LH is added to L, the employed households in the rest of the economy, to give LH+L=LT. aH is the housing sector productivity, the number of housing units/ per worker year.

I also included rents for the housing sector

dR/dt = -1/tauP(R-FDH/tauS*(1-c)/LT)

dKH/dt=-1/tauP(FDH/tauS- .01*KH) is investment.

tauP = 1 throughout except for the pricing equation where I multiplied by 1, 3, or 5 to increase the pricing velocity for tauP= 1, 0.33 and 0.2 respectively.

I assumed that housing was 20% of worker consumption. I defined HV = 0.2*26 = 5.2. For the housing sector, consumption lag was 1/HV and for the rest of the economy 1/tauW was
1/(26-HV). This took care of intersectoral demand.

In running the simulation, I couldn't get much of a housing bubble for the normal tauPH=1. So, like any good number cruncher, I started fiddling with the parameters. I discovered that I got a good bubble by choosing tauPH = 0.33 and I got a really good bubble using tauPH = 0.2

In thinking of how to justify this fiddling, a light bulb came on. I realized that is how the banksters did it! The securitized mortgages was how they boosted pricing velocity. The local banks cleaned up their liabilities by passing the debts on to the pension funds so that they could keep writing liars loans to any and all comers! The sheer velocity of the lending drove the prices up.



The first attachment, entitled tauPH=.33, stimH=0 shows a good bubble which lasts for about 90 years. The bubble comes to an end when c= 0.5, the equilibrium H/LT. The bubble lasts so long because house prices are so high. The second attachment,


stimH=0 ,tauPH=0.33 shows the rent ratio and the real house prices, ie the house prices divided by the wage level.

After the housing bubble, the housing cost is mostly rents and a small amount of new housing and converges to about 0.25w, which was slightly above the initial assumption of 0.2w This is to be compared with the attachment
stimH=0.3, tauP=0.33 which shows that the effect of the stimulus is to depress both the rent ratio and the real house price.

The attachment tauP=0.33, stimH=0.3 when compared with its no-stimulus companion shows that the stimulus causes the bubble to be much shorter lived.



JUICING THE HOUSING MARKET WITH HOUSE PRICING VELOCITY, part 4

The attachments in this part are to be compared with the attachments of part 3. This part shows the extreme limits of juicing through pricing velocity.

tauP=0.2, stimH=0 is a natural market with a perpetual housing boom. The extreme pricing velocity makes the prices very high. The boom never ends because the equilibrium point of c=0.5 is never reached. Indeed, houses are owned by less than 1% of the employed households.






stimH=0, tauP=0.2 shows the rent ratio and real house prices for the same assumptions. House prices are around 100 times rent and real house prices cost 40 years of wages.

Of course, all that is needed to maintain such a scenario is an infinite supply of pension funds to keep buying the colossal mortgages.



tauP=0.2, stimH=0.3 shows that after about 65 years of high government boosting the housing boom can finally be brought to an end, which is to say, that after 65 years of committing the entire national budget to house buying that 65% of the employed households will own homes. The only problem is -



tauP=0.2, stimH=0.3 - that after paying 20-25 years worth of real wages for a home during the boom, the homeowner will find that his house is worth only a small fraction, in real terms, ie. yearly wages, of what he paid for it. Apartment rents will be very cheap.

Finally, let us turn to some simulations of the way things ought to be, where the house pricing velocity is in line with the housing supply velocity.


tauP=1, stimH=0 This attachment shows a natural housing sector with no juicing of the house pricing. There is a small housing boom that lasts for 25 years or so, after which half the employed households own homes. After the housing boom, house prices increase in line with the growth of the economy. Owning a house is a good inflation hedge. Those who bought early in the boom paid too much, but there are always a few that pay too much.


stimH=0, tauP=1 In this attachment we see that after the housing boom that real housing cost settles down to the 20-30% of worker income that was assumed from the start. The rent ratio is probably too low, but this is a report on a work in progress. With further refinement of the parameters the model can be brought into line with empirical data.

tauP=1, stimH=0.3 This simulation shows a stimulated housing sector in a high unemployment startup economy. The stimulus causes housing prices to escalate way beyond affordability. Indeed, the early housing has to be abandoned or burned down. The housing stimulus consumes so much of the fragile economy that it is thrown into depression. After the crash, housing prices fall to a small multiple of rent but housing continues to be built for 130 years or so until 65% of the employed households own homes.

stimH=0.3, tauP=1 After a small housing boom, real house prices crash to ridiculously low levels, finally recovering to slightly less ridiculously low levels. Rents are practically free.

Concluding remarks

The preceding demonstration is but a rough cartoon sketch of the simulations that Steve Keen's model is capable of. Steve's combination of double entry bookkeeping with the scientific method can produce models of incredible suppleness.

Sooner or later, the inexorable soundness of this model will grind Steve's opponents to dust. Unfortunately, Steve has a heavy teaching load and is unable to devote the research time which his ingenious method deserves.

There are roughly 30,000 very bright readers of this blog. If only 7 or 8 people would take the time to learn how to program the model using Scilab or some other program, and help refine the parameters, the model could be advanced to the point where all the hidden mysteries of the empirical data can be revealed.

It's not good to let our man Keen have to climb mountains to pay off silly bets.






I include the current code which can be pasted into a Scilab file.

clf()
z0=[100;100;0;0;1;1;1;300;0;0;0;100;20;20;1;1;1;1;2;1];
t=0:1:150;

function dx = keeninterm(t,x)

rL=.05
rD=.03
s=.3

v=5;
HV=5.2

tauS=.25
tauW=1/(26-HV)

tau_Q=1; tau_L=1
tau_pi=1; tau_piH=1

tau_HQ=1;tau_HL=1;
sH=0.3;tausH=.25;tauWH=1/HV;

if t> 100 then
fac=.67;
else fac=1;
end
if t>120 then
fac=1
end

tauL=7*fac
tauR=1/fac
tauM=20/fac
tauMH=10/fac

tauB=1.25;tauBH=5
tauP=1

alpha=.015; alphaH=.015;
bta=.01
gma=.01;gmaH=.01

stimH=.3*x(15)/x(6)
stimH=.3

//FL=x(1); FD=x(2); WD=x(3);BI=x(4);P=x(5);wages=x(6);a=x(7);N=x(8);BR=x(9);K=x(10);
//Q=x(11); L=x(12)
//HL=x(13);HD=x(14); PH=x(15); aH=x(16); KH=x(17); H=x(18); LH=x(19); R=x(20)

A=rL*x(1); B=A; C=rD*x(2);D=(1-s)/tauS*x(2);E=rD*x(3);F=x(3)/tauW;G=x(4)/tauB;
H=x(1)/tauL;
I=x(9)*x(2)/((x(2)+x(14))*tauR);
J=x(2)/tauM;

HA=rL*x(13);HB=HA;HC=rD*x(14);HD=(1-sH)/tausH*x(14);HF=x(3)/tauWH;HH=x(13)/tauL;HI=x(9)*x(14)/((x(2)+x(14))*tauR);HJ=x(14)/tauMH
HG=x(4)/tauBH;LT=x(12)+x(19);c=x(18)/LT;DH=HV*x(3);DHR=x(3)*HV; HK=x(14)/tausH
CF=1-2*c+stimH

function GE=genexp(x,xv,yv,s,m)
GE=(yv-m)*exp(s/(yv-m)*(x-xv))
endfunction

lamda=(x(12)+x(19))./x(8)
Ph=genexp(lamda,.96,0,1,-.04)

dx(1)=A-B-H+I+J
dx(2)=-B+C-D+F+G-H+I+J
dx(3)=D+E-F+HD-HF
dx(4)=B-C-E-G+HB-HC-HG
dx(5)=-1/tauP*(x(5)-x(6)./((1-s)*x(7)))
dx(6)=Ph*x(6)
dx(7)=alpha*x(7)
dx(8)=bta*x(8)
dx(9)=H-I-HI+HH

dx(10)=x(2)/tau_pi-gma*x(10)
dx(11)=-1/tau_Q*(x(11)-x(10)/(v*x(5)))
dx(12)=-1/tau_L*(x(12)-x(11)/x(7))

Profit=x(5)*x(11)-x(6)*x(12)-A+C
ProfitH=x(15)*x(18)-x(6)*x(19)-HA+HC

dx(13)=HA-HB-HH+HI+HJ// dx(13) is dFHL/dt
dx(14)=-HB+HC-HD+HF+HG-HH+HI+HJ// dx(14) is dFHD/dt

dx(15)=-3/tauP*(x(15)-HK*(1-c)/x(18)) // dx(15) is dPH/dt
dx(16)=x(16)*alphaH
dx(17)=x(14)/tau_piH-gma*x(17)// dx(17) is dKH/dt, gma is depreciation

dx(18)=-1*CF/tau_Q*(x(18)*exp(.691/70)-HK/(x(15))) //dx(18) is dH/dt,

dx(19)=-1/tau_L*(x(19)-x(18)/x(16))//dx(19) is dLH/dt

dx(20)=-1/tauP*(x(20)-HK*(1-c)/LT)//dx(20) is dR/dt

endfunction


z=ode(z0,0,t,keeninterm);
c=z(18,:)./(z(19,:)+z(12,:));
Profit=z(5,:).*z(11,:)-z(6,:).*z(12,:)+.03*z(2,:)-.05*z(1,:);
lamda=(z(12,:)+z(19,:))./z(8,:);
unemp=1-lamda;
u=z(1:12,:);
uu=z(13:20,:);
plot2d(t',u',[1 2 3 4 5 6 7 -1 -2 -3 -4 -5 ],logflag="nl",rect=[0,.01,150,10^7]);
legends(['LoanF';'DepositF';'WD';'BD';'Price';'Wages';'a=prod.';'N';'BReserves';'K';'Q';'L'],[1 2 3 4 5 6 7 -1 -2 -3 -4 -5],"ul");
halt
plot2d(t',[Profit;unemp]',logflag="nl");
legends(['Profit';'Unemployment'],[1 2],"ur");
halt
clf()
plot2d(t',uu',[1 2 3 4 5 6 7 -1],logflag="nl",rect=[0,.01,150,10^7])
legends(['HLoan';'HFirm';'H Price';'aH';'KH';'QH';'LH';'Rent'],[1 2 3 4 5 6 7 -1],"ul");
halt
rentratio=z(15,:)./z(20,:);
clf()
plot2d(t',[rentratio;z(15,:)./z(6,:)]',style=[2 1],logflag="nl")
legends(['rent ratio';'real house prices'],[2 1],"ur");
********************************************************************************************************************************






overall economy, tauPH=1, stim H=0

overall economy, tauPH=1, stimH = 0.3

overall economy tauPH=0.33, stimH=0
overall economy, tauPH=0.33, stimH=0.3




overall economy, tauPH=0.2, stimH=0

overall economy tauPH=0.2 stimH=0.3

0 comments: