bookloveru2
『新型コロナ感染者数』と『株式市場』は擬似相関。
更新日:2021年1月3日
今回は、以前にアップした記事👇の修正版をアップしていきます。
https://www.bookloveru2.com/post/covid19
前回同様、新型肺炎コロナと株式市場に相関があるのかどうか、
検証してみました。
連日、コロナ感染者と世界的な株価は高騰を続けています。
何か関係があるのでは!??
と考え、調べてみることにしました。
目次
❶現状
❷pythonコード
❶現状
検証期間は「2020年1月11日~2020年9月3日」です。
上段は、
縦軸左は、アメリカの新規コロナ感染者数。
縦軸右は、アメリカのダウ株価指数。
下段は、同様に日本です。

以下、上段:イギリス。下段:インド。

以下、上段:中国。下段:ブラジル です。

そして、各国の相関係数です。
縦軸:各国のコロナの感染者数 (WHOから引用)
横軸:各国の主要株価指数+ビットコイン(yahooFinanceより引用)

グラフはpythonで描画。
※記事の最後にコードを記載しております。
結果からの考察
①中国は感染者数が他国と比較して増加してないが、中国株価は高騰
している。
そのため、高騰する中国株価と各国の増加するコロナ感染者が、
擬似相関(※)した。ビットコも同様。
②イギリスは、WHOが7/3に新規感染者数を▲29,726人計上した為か、
あまり役に立たない相関係数がでた模様。
③今回の検証は結果的に何も分からなかったというのが、妥当と思料します。
※本当に意味がある指標は、各国中央銀行の追加緩和額(マネタリーベース)と
各国の株価指数を比較するべきでした。
下記、oandaの記事がかなり参考になりましたので、置いておきますね(*^-^*) https://www.oanda.jp/lab-education/blog_column/centralbank_balancesheet/
※擬似相関については、いつものヨビノリたくみ先生が素晴らしい動画をアップしていますので、ご紹介致します。
❷pythonコード
※ご自身の環境で、お試しする場合は、
下記のローデータ(csv)をダウンロードして、ご自身の
GoogleDriveの保存後、Google colabにて実行してください。
その後、下記pythonコードを実行してください。
まず、グーグルドライブのCSVファイルにアクセスする。
from google.colab import drive
drive.mount('/content/drive/')
!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
# check auth
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
そして、相関係数のヒートマップを作図する。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.spatial.distance import cdist
plt.style.use('seaborn')
font = {'family' : 'meiryo'}
plt.rc('font', **font)
data= pd.read_csv('drive/My Drive/COVID19A.csv',index_col="Date")
#株価。株価は欠損値を気にしない。実際に非営業日の為、値が変動しない為。
stock = data.iloc[:,9:17]
#株価の欠損値を前の行の値で置換。(df.fillna(method='ffill'))
stockmode = stock.fillna(method='ffill')
#株価(欠損値置換後)の変動率=c
c=((1+stockmode.pct_change()).cumprod()).dropna(how='all')
#WHOのコロナ新規感染者数。コロナの欠損値は0ゼロとする。.fillna(0) 感染者0人。
covid19 = data.iloc[:,0:8].fillna(0)
#covid19の累積和
covid = covid19.cumsum()
#covid19の累積和の変動率=b
b=((1+covid.pct_change()).cumprod()).dropna(how='all')
#相関係数をヒートマップ表示。
ndf3=b.T.values
ndf4=c.T.values
res=(1 - cdist(ndf3, ndf4, metric='correlation'))
res=pd.DataFrame(res, index=b.columns, columns=c.columns)
print(res.head())
sns.set_context("talk")
fig = plt.subplots(figsize=(10, 12))
sns.heatmap(res, annot=True,fmt='.2f',cmap='Purples',square=True)
以上が、コードです。
( ,,`・ω・´)ンンン?
結局なんだったんだろうか!?
という記事ですが、
まとめると、ヨビノリたくみ先生の言ってた、擬似相関ってこういうことか~みたいなことが実感できます。というお話でした。
最後、まとめをヨビノリ様に押し付けてすいませんでした(´・ω・`)
お詫び申し上げます。
では。また。