货币增长、房价上升与通货膨胀

货币增长、房价上升与通货膨胀

暑假的时候模仿泽平宏观里面的图绘制的两幅图,简单整理一下。

从长期来看,房价增速与货币增速高度相关。以美国为例,1988到2016年美国房价指数增速和广义货币增速趋势相同。

图1: 美国房价指数增速与广义货币增速之间的关系

具体来看,M2增速基本领先房价增速两年。也就是说,在M2增速快速扩大两年之后,通常伴随着房价的快速上涨。此外,虽然时代和国别不同,但历次房地产泡沫堆积无一列外受到流动性过剩和低利率的刺激,而历次房地产泡沫崩溃则都跟货币收紧和加息有关。(任泽平)

而另一方面,货币超发往往伴随通胀高企:

图2: 各国M2平均增速与通货膨胀率的关系(1961-2014)

附注:
图1绘图代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
cpd /
* 美国M2
import fred MYAGM2USM052N, clear
* 把月度数据变成年度数据
gen month = month(daten)
gen year = year(daten)
keep if month == 12
keep year MYAGM2USM052N
ren MYAGM2USM052N m2
gen m2rate = 100*(m2[_n]-m2[_n-1])/m2[_n]
drop in 1
drop m2
save m2, replace

* S&P/Case-Shiller美国房价指数
import fred CSUSHPINSA, clear
* 把月度数据变成年度数据
gen month = month(daten)
gen year = year(daten)
keep if month == 12
ren CSUSHPINSA house
gen houserate = 100 * (house[_n] - house[_n-1])/house[_n-1]
drop in 1/13
keep year houserate
save house, replace

* 美国住房CPI
import fred USACPIHOUMINMEI, clear
* 把月度数据变成年度数据
gen month = month(daten)
gen year = year(daten)
keep if month == 12
gen cpirate = 100 * (USACPIHOUMINMEI[_n] - USACPIHOUMINMEI[_n-1])/USACPIHOUMINMEI[_n-1]
keep cpirate year
drop in 1
merge 1:1 year using house
keep if _m == 3
drop _m
merge 1:1 year using m2
keep if _m == 3
drop _m
tw line m2rate houserate cpirate year, ///
lp(solid solid solid) ///
lc(dkorange blue*0.6 green*0.6) ///
xla(1988(4)2016) yla(-15(3)15) ///
xti(年份) yti(增速(%)) ///
leg(order(1 "M2增速" 2 "S&P/Case-Shiller美国房价指数增速" 3 "住房CPI增速") pos(8) ring(0)) ///
ti(图:美国房价指数增速与广义货币增速之间的关系) ///
note("数据来源:FRED", size(small))
gre 美国房价指数增速与广义货币增速之间的关系

图2绘图数据(从世界银行下载的):
GDP平减指数数据:GDPDefator.csv
M2数据:M2.csv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import delimited M2.csv, encoding(utf8) clear
drop in 1/2
tostring _all, replace force
foreach i of varlist _all{
replace `i' = "m" + `i' in 1
}
nrow 1
ren v1 name
compress
drop v3 v4 m1959
drop m2015 m2016 m2017 m_
destring, replace
reshape long m, i(name) j(j)
ren j year
ren m m2
ren v2 code
save World_M2, replace

import delimited GDPDefator.csv, encoding(utf8) clear
drop in 1/2
tostring _all, replace force
foreach i of varlist _all{
replace `i' = "m" + `i' in 1
}
nrow 1
ren v1 name
ren v2 code
drop v3 v4 m_
destring, replace
reshape long m, i(name) j(j)
ren j year
ren m gdpdeflator
merge 1:1 year code using World_M2
drop _m
gsort name year
* keep if inlist(name, "智利", "印度尼西亚", "阿根廷", "印度", "巴西") | inlist(name, "土耳其", "墨西哥", "菲律宾", "泰国", "南非") | inlist(name, "美国", "日本", "加拿大", "澳大利亚", "英国") | inlist(name, "德国", "瑞士", "挪威", "新西兰", "比利时")
gsort year name
keep if gdpdeflator != . & m2 != .
gsort name year
bysort name: gen m2rate = 100*((m2[_N]/m2[1])^(1/(year[_N] - year[1]))-1)
bysort name: gen gdpdeflatorrate = 100*((gdpdeflator[_N]/gdpdeflator[1])^(1/(year[_N] - year[1]))-1)
duplicates drop name, force
tw sc gdpdeflatorrate m2rate ///
if gdpdeflator > -50 & m2rate < 100, leg(off) || ///
pcarrowi -10 50 -.7483293 13.74348, ///
lc(red*0.6) mc(red*0.6) mfc(red*0.6) ///
text(-11 55 "中国") ///
ti(图:各国M2平均增速与通货膨胀率的关系(1961-2014)) ///
xti(M2平均增速(%)) yti(GDP平减指数增速(%)) ///
note(数据来源:世界银行)
gre 各国M2平均增速与通货膨胀率的关系

# Stata

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×