Markets & Python & ...

機関投資家の卵がPythonのコードと共に金融マーケットについて浅くつぶやきます

コロナショック後の東証REIT指数と各銘柄の相関[Systematic risk-非市場リスク-]

今回はマーケット全体とそれを構成する個別銘柄の関係性の話です

今日は、東証REIT指数とそれを構成している主な銘柄が、コロナショック後どのように相関しているかを調べる。 構成している銘柄が東証REIT指数にある程度相関するのは当たり前なのだが、一部で銘柄固有の動きをすることもあるわけで、それがどのような銘柄に起こっているのかを検証する。 時期をコロナショック後に限定しているのは、コロナヴァイラスがREIT市場にクラッシュを起こしそれまでの「US国債10年利回りとの相関」が崩壊し、Equityとして動くようになったからだ。

大変面倒で申し訳ないが、今回は情報は自分で収集してcsvファイルを用意してほしい。 日本の銘柄データを無料で日本語で取得できる数少ないweb serviceの中で自分が推奨しているのはこちら → https://jp.investing.com/
ここからデータを取得し、こういうcsvファイルを用意する。
検証する銘柄は別に何でも良いのだが、今回はREITをタイプ別に分類した時に各タイプを代表する(東証REIT指数への寄与度が高い)順に選別した。なお、ホテル型といえばジャパン・ホテル・リート投資法人が代表格だが、あえてホテル型に関しては特殊な動きをしていることを期待してインヴィンシブル投資法人をチョイスしてみた。

f:id:hiroshimaeasy:20200619215140p:plain
こういうcsvファイルを用意する

import pandas as pd
import numpy as np
import pprint
import datetime
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import linear_model
import statsmodels.api as sm
clf = linear_model.LinearRegression()
  

# 用意したcsvファイルを読み込む
prices = pd.read_csv('reit.csv')  
  
# データ型の調整  
# 日付をdatetime型に
dates=[]
for d in prices[prices.columns[0]].values:
   dates.append(datetime.datetime.strptime(d, '%Y/%m/%d'))
prices.date = dates  
  
# 東証REIT指数をfloat型に
Treit = []
for tr in prices[prices.columns[1]].values: 
   Treit.append(float(tr.replace(',', '')))
prices.TREIT_index = Treit  
  
# その他個別銘柄をint型に
lis = [[] for i in range(6)]
for rs in range(len(prices.columns)-2):
   for r in prices[prices.columns[rs+2]]:
       lis[rs].append(int(r.replace(',', '')))
   prices[prices.columns[rs+2]]= lis[rs]  
  
# indexに日付を指定
prices.index = prices.date  
prices = prices.drop('date', axis=1)

ここまでで元データが完成。 時系列データの相関を求めるので、元データではなく変化率のdataframeを作る。

# 変化率のdataframe
pct_chg = prices.pct_change().dropna()   
  
# いったんプロットしてみる  
fig = plt.figure(figsize=(5,4), dpi=150)
plt.plot(pct_chg, alpha=0.7)
plt.show()
plt.rcParams["font.size"] = 4<200b>

f:id:hiroshimaeasy:20200619215717p:plain

これは何だかさっぱりわからないぞ.....

# seabornで単回帰分析
sns.lmplot(x="TREIT_index", y="R_8951", data=pct_chg,
          scatter_kws={'color':'indianred'},
          line_kws={'color':'indianred'})  

# 決定係数だけほしいけどsummary全てを取得できるmethodを作っておく
def get_summary(tick1, tick2):
   model = sm.OLS(tick1, tick2) 
   r = model.fit()      
   print(r.summary2())
   
# 東証REIT指数と日本ビルファンド投資法人(オフィス系)の相関サマリを表示する
get_summary(pct_chg.TREIT_index,pct_chg.R_8951) 

f:id:hiroshimaeasy:20200619215816p:plain
東証REIT指数日本ビルファンド投資法人(オフィス型)の相関関係

                        Results: Ordinary least squares
================================================================================
Model:                  OLS              Adj. R-squared (uncentered): 0.712     
Dependent Variable:     TREIT_index      AIC:                         -309.6259 
Date:                   2020-06-18 21:59 BIC:                         -307.5316 
No. Observations:       60               Log-Likelihood:              155.81    
Df Model:               1                F-statistic:                 149.7     
Df Residuals:           59               Prob (F-statistic):          7.95e-18  
R-squared (uncentered): 0.717            Scale:                       0.00033052
-------------------------------------------------------------------------------------
               Coef.       Std.Err.         t         P>|t|       [0.025      0.975]
-------------------------------------------------------------------------------------
R_8951          0.7855        0.0642      12.2338      0.0000      0.6570      0.9139
--------------------------------------------------------------------------------
Omnibus:                    4.890             Durbin-Watson:               1.857
Prob(Omnibus):              0.087             Jarque-Bera (JB):            4.234
Skew:                       -0.423            Prob(JB):                    0.120
Kurtosis:                   3.990             Condition No.:               1    
================================================================================

summaryの見るべき箇所は、左の中央あたりの R-squared (uncentered): 0.717という部分。これがいわゆる「決定係数」あるいは「R2」と呼ばれるもので、相関係数を2乗したものになる。

マーケットモデルによれば、
総リスク = 市場リスク(unsystematic risk) + 非市場リスク(systematic risk)
これを変形すると、
1 = R^2(決定係数) + σei/σi(個別銘柄の標準偏差/マーケットの標準偏差)
となるので、

この検証に当てはめてみれば、日本ビルファンド投資法人(8951)の非市場リスク(systematic risk)、つまり「分散効果が効かない固有のリスク」は、 1 - 0.717 = 0.283 ということになる。

では他の銘柄も検証してみましょう。

# 日本プロロジスリート投資法人(物流系)
sns.lmplot(x="TREIT_index", y="R_3283", data=pct_chg,
          scatter_kws={'color':'indianred'},
          line_kws={'color':'indianred'})  
get_summary(pct_chg.TREIT_index,pct_chg.R_3283)  
   
# アドバンス・レジデンス投資法人(住居系)  
sns.lmplot(x="TREIT_index", y="R_3269", data=pct_chg,
          scatter_kws={'color':'indianred'},
          line_kws={'color':'indianred'}) 
get_summary(pct_chg.TREIT_index,pct_chg.R_3269)  

# 日本リテール投資法人(商業系)
sns.lmplot(x="TREIT_index", y="R_8953", data=pct_chg,
          scatter_kws={'color':'indianred'},
          line_kws={'color':'indianred'})  
get_summary(pct_chg.TREIT_index,pct_chg.R_8953)  
  
# インヴィンシブル投資法人(ホテル系)
sns.lmplot(x="TREIT_index", y="R_8963", data=pct_chg,
          scatter_kws={'color':'indianred'},
          line_kws={'color':'indianred'})  
get_summary(pct_chg.TREIT_index,pct_chg.R_8963)  
  
# 野村不動産マスターファンド投資法人(総合系)
sns.lmplot(x="TREIT_index", y="R_3462", data=pct_chg,
          scatter_kws={'color':'indianred'},
          line_kws={'color':'indianred'})  
get_summary(pct_chg.TREIT_index,pct_chg.R_3462)  

f:id:hiroshimaeasy:20200619220233p:plainf:id:hiroshimaeasy:20200619220255p:plainf:id:hiroshimaeasy:20200619220314p:plainf:id:hiroshimaeasy:20200619220334p:plainf:id:hiroshimaeasy:20200619220340p:plain
プロロジ、アドレジ、リテール、インヴィンシブル、野村

# 省略して必要なところだけ記載しています

# 日本プロロジスリート投資法人(物流系)  
R-squared (uncentered): 0.268  
# アドバンス・レジデンス投資法人(住居系)  
R-squared (uncentered): 0.522  
# 日本リテール投資法人(商業系)
R-squared (uncentered): 0.645  
# インヴィンシブル投資法人(ホテル系)  
R-squared (uncentered): 0.389  
# 野村不動産マスターファンド投資法人(総合系)  
R-squared (uncentered): 0.749

調査結果

・コロナの影響に強いはずの物流銘柄のプロロジが、意外にもsystematic riskが高かった。(むしろ指数を大幅に上回るパフォーマンスなのかもしれない)
・インヴィンシブルはホテル系に分類しているが実は物件の半数近くを住居が占めている。にも関わらず、「ケイマン諸島にリゾートホテルを有している」「単価が低い」「分配金が高い」「所有しているホテルがマイステイズなどリーズナブルなホテルが多い」など特徴的で個人投資家からの人気が高かった。しかしコロナの影響を受け賃料減免の決断を全REITに先駆けて発表し、分配金も今期はほぼゼロに決定した。これによりさらにボラティリティが高まった結果、systematic riskが高まったのでしょう。
・ガチガチオフィス系の筆頭、ビルファンドはコロナショックで懸念が高まるオフィス需要の中で、さすが優良物件(優良借主)を有しているだけあって、systematic riskが比較的低い方だった。最大規模のREITということもあり指数への寄与度がそもそも高いということも、影響しているかもしれない。
・野村はバランスよくかつ数多くポートフォリオを組んでいるおかげなのか、決定係数が高い(分散が図られている)。

これをもとに、好きな銘柄を検証してみると面白いでしょう。