library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.5.3
## -- Attaching packages ------------------------------------------------ tidyverse 1.2.1 --
## √ ggplot2 3.2.1 √ purrr 0.2.5
## √ tibble 2.1.3 √ dplyr 0.8.4
## √ tidyr 1.0.2.9000 √ stringr 1.3.1
## √ readr 1.1.1 √ forcats 0.3.0
## Warning: package 'ggplot2' was built under R version 3.5.3
## Warning: package 'tibble' was built under R version 3.5.3
## -- Conflicts --------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(xts)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
##
## first, last
library(dygraphs)
data0 <- read.csv(file="DI-20200306.csv")
head(data0)
## year month le co lg
## 1 1980 1 54.5 83.3 83.3
## 2 1980 2 54.5 88.9 94.4
## 3 1980 3 45.5 88.9 88.9
## 4 1980 4 40.9 94.4 77.8
## 5 1980 5 36.4 27.8 55.6
## 6 1980 6 45.5 33.3 83.3
先行指数、一致指数、遅行指数をとり出す。
le <- data0[,"le"]
co <- data0[,"co"]
lg <- data0[,"lg"]
length(le); length(co); length(lg)
## [1] 481
## [1] 481
## [1] 481
日付をつけてts型にする。
le <- ts(le, freq=12, start=c(1980,1))
co <- ts(co, freq=12, start=c(1980,1))
lg <- ts(lg, freq=12, start=c(1980,1))
累積DI指数は指数水準50との差を累積和を計算し、第1成分をゼロに基準化することで得られる。
le.sum <- cumsum(le-50)
co.sum <- cumsum(co-50)
lg.sum <- cumsum(lg-50)
le.sum <- le.sum - le.sum[1]
co.sum <- co.sum - co.sum[1]
lg.sum <- lg.sum - lg.sum[1]
le.sum <- ts(le.sum, freq=12, start=c(1980,1))
co.sum <- ts(co.sum, freq=12, start=c(1980,1))
lg.sum <- ts(lg.sum, freq=12, start=c(1980,1))
clg.sum <- cbind(le.sum, co.sum, lg.sum)
累積DI3指数をプロットする。
plot(clg.sum, plot.type="single", lty=c(2,1,3), col=c(2,1,3))
legend("topleft",
leg=c("le", "co", "lg"),
lty=c(2,1,3),
col=c(2,1,3))
次に、パッケージ“dygraphs”でプロットする。
dygraph(clg.sum) %>%
dyShading(from = "2012-3-1", to = "2012-11-30", color = "#FFE6E6") %>%
dyShading(from = "2008-2-1", to = "2009-3-31", color = "#FFE6E6") %>%
dyShading(from = "2000-11-1", to = "2002-1-31", color = "#FFE6E6") %>%
dyShading(from = "1997-5-1", to = "1999-1-31", color = "#FFE6E6") %>%
dyShading(from = "1991-2-1", to = "1993-10-31", color = "#FFE6E6") %>%
dyShading(from = "1985-6-1", to = "1986-11-30", color = "#FFE6E6") %>%
dyRangeSelector(height = 20, strokeColor = "red") %>%
dyEvent(x = "2011-3-11", "東日本大震災", labelLoc = "bottom")
上の図の累積一致指数(co.sum)の動きに基づけば、今回の景気の山は2018年11月前後にあったことは明瞭だと思われる。他方、累積遅行指数の低下は3月に公表された本年1月分までのデータを視る限りまだ認められない。累積先行指数は2018年1月にピークアウトしている。これらを総合すると、今回の景気拡大はおそらく2018年の年末から2019年初めにかけて景気の山を迎え、景気後退局面に入っていたのではないかと感じられる。
とすれば、実態経済の平均的な景気後退期間は1年半程度である点を考慮すれば、本年半ば前後に景気は底打ちし、秋にかけて次の拡大局面に入る、そんな変動プロセスになっていたのではないかと憶測される。
昨年秋の時点でNY株式市場のバフェット指数は148の水準に達していたと評されていたこともあり、高すぎる株価の調整は予想されていたことである。
今回の新型コロナウイルスの感染拡大は、循環的な景気変動をより激化させる方向に働いている。景気後退期間はより長く、更により深くなるかもしれない。
とはいえ、感染拡大に向けて政策上のミスがなければ、経済の実態は本年後半にかけて次の拡大サイクルに入るステージにあるのではないかと思われる。
備考:
公式の景気基準日付は『景気動向指数研究会での議論を踏まえて,内閣府経済社会総合研究所長が設定する』ことになっています。どうなるか?甚だ楽しみな所です。