時系列予測Prophetを使って年末の日銀のETF保有額を予測する

昨年から日経平均株価はうなぎのぼりで失われた20年を取り戻したとか言われています。
この価格上昇の一部は日銀による株の買い支えのおかげであるということを投資家は当然分かっていることかと思います。
しかし、昨今の世界的な株高と好景気そして失業率の低下などを背景として各国の中央銀行が金融引き締めに動きつつある中、日銀もそろそろ金融緩和を止めてしまうのではないかという噂が囁かれつつあり、若干の不安を持たれている方も多いのではないでしょうか。

ここで私が言いたいのは、日銀だけは金融緩和を継続することを公言しているわけで、当然ETF買い入れも維持することになっているのだからそうなんだろうということです。
まさか日銀様ともあろうものが嘘をつくはずがないのです。信じるものは救われるのです。
そこでこの路線が維持された場合に来年末の日銀のETF保有額はいかほどになっているのか、という期待を明らかにするべく、日銀のETF保有金額を時系列予測Prophetによって予測し可視化することにします。
見えることで信心の心は増々増加するかと思われます。
さあ皆でこの数字を期待しましょう。The show must go on.

またこれは次の予測のための布石であることを前もって報告しておきます。

(追記)
次の予測

【分析データ(日銀ETF保有金額)】

まずGoogleで『日銀 ETF 残高』で検索したら二番に出てきた日銀のETF買い入れ – トレードメモに日銀によるdailyの買い入れ実績金額があったため、このデータを使わせていただくことにします。
神Hadleyが作り給うたウェブスクレイピングライブラリrvestを使って必要なデータをテーブルにします。

#R
library(rvest)
library(dplyr)
library(stringr)
library(lubridate)
nichigin_etf <- read_html("https://tradememo.biz/pub/etf") %>%
   html_table(fill = TRUE) %>% .[[4]] %>%
   mutate(
      date = str_sub(日付, end = 10) %>% ymd(),
      etf_buy = str_sub(ETF買い入れ額, end = -3) %>% as.integer()
   ) %>%
   select(date, etf_buy) %>%
   right_join(tibble(date = seq(seq(ymd(20101215), ymd(20171231), by = 1), by = "date") %>%
   mutate(etf_buy = coalesce(etf_buy, 0L)) %>%
   mutate(etf_holding = cumsum(etf_buy))

nichigin_etf %>% head(20)
## A tibble: 20 x 3
#         date etf_buy etf_holding
#       <date>   <int>       <int>
# 1 2010-12-15     142         142
# 2 2010-12-16       0         142
# 3 2010-12-17       0         142
# 4 2010-12-18       0         142
# 5 2010-12-19       0         142
# 6 2010-12-20       0         142
# 7 2010-12-21       0         142
# 8 2010-12-22       0         142
# 9 2010-12-23       0         142
#10 2010-12-24       0         142
#11 2010-12-25       0         142
#12 2010-12-26       0         142
#13 2010-12-27       0         142
#14 2010-12-28       0         142
#15 2010-12-29       0         142
#16 2010-12-30     142         284
#17 2010-12-31       0         284
#18 2011-01-01       0         284
#19 2011-01-02       0         284
#20 2011-01-03       0         284

library(ggplot2)
nichigin_etf %>% ggplot(aes(date, etf_holdings)) + geom_line()
日銀ETF保有金額の推移。単位は億円

2010年年末に142億円の買い入れから始まった日銀によるETF買い入れは積もり積もって現在17兆2千億円になっています。
保有金額を時価換算すると20兆円を上回っていると言われていますが、ここでは買い入れ金額の累積をターゲットにしています。

せっかくなのでここにも上げておきます。ご自由に使ってください。
nichigin_etf

【日銀ETF保有金額の予測(現状維持シナリオ)】

このデータを学習データとし、Prophetを使って来年末までの金額を埋めます。
もちろんこの予測の前提は現状のトレンド、すなわちETF買い入れ金額が現状維持される、という前提に基づいています。

#R
library(prophet)
m <- nichigin_etf %>%
  select(ds = date, y = etf_holdings) %>%
  prophet(daily.seasonality = FALSE)
future <- make_future_dataframe(m, periods = 365, include_history = FALSE)
fcst <- predict(m, future)

fcst %>% select(ds, yhat) %>% tail
#             ds     yhat
#2934 2018-12-26 225970.4
#2935 2018-12-27 226149.4
#2936 2018-12-28 226341.1
#2937 2018-12-29 226427.2
#2938 2018-12-30 226511.1
#2939 2018-12-31 226691.8

plot(m, fcst)
日銀ETF保有金額の予測。単位は億円

これで完成です。prophet予測は少し手続きを覚えるだけで元データが変わってもある程度細かい調整など考えずに定形ルーチンで作業できます。
nichigin_fcst

日銀が公開している買い入れ予定額『年間約6兆円』を信じて月割りで計算すれば似たような結果は得られます。
しかしこのやり方は、

  • 何も考えずに
  • 簡単に
  • 日次データ

が得られますので、近似的にでもいいので日別の数値が欲しい場合に使えます。

参考サイト

関連記事

コメントを残す