top of page
  • 執筆者の写真bookloveru2

コロナCOVID-19と株式市場(ビットコイン含む)の相関係数と調べてみた。

更新日:2021年1月2日

目次


 

皆さん、こんにちは。


今回は恐ろしい新型肺炎コロナと株式市場に相関があるのかどうか、

検証してみました。


少し、不謹慎かもしれない。

とも、思ったのですが、連日コロナ感染者と世界的な株価は

高騰を続けています。


何か関係があるのでは!??

と考え、調べてみることにしました。


 

❶コロナCOVID-19と株式市場の検証期間

なお、検証期間は「2020年1月11日~2020年8月1日」です。


グラフはpythonで描画。

※記事の最後にコードを記載しております。


縦軸:各国のコロナの感染者数 (WHOから引用)

横軸:各国の主要株価指数+ビットコイン(yahooFinanceより引用)


結果:①各国株価指数とコロナ新規感染者数は無相関もしくは若干の逆相関の模様。

    ※対角成分(左上から右下までの斜めの軸が、ほぼゼロか、微妙にマイナス。。。

   ②最も関係性が高いのはブラジルの感染者とBTC。(相関0.47)

    Why?(-"-)

③感染者数が増えると、法定通貨(フィアット)の不安から、ビットコインが値上 

    がりする!?

以上から、新型肺炎コロナと株式市場にはあまり関係性は無かったと言える

のかもしれません。(´;ω;`)ウッ…労力が。。。。


なお、このデータの、

コロナ新規感染者数は日々の新規感染者数。

各国の株価は標準化後の累積積をパーセント表記でプロットしております。




 

❷pythonによるコード

※ご自身の環境で、お試しする場合は、

 下記のローデータ(csv)をダウンロードして、ご自身の

 GoogleDriveの保存してください。


COVID19
.csv
Download CSV • 22KB



その後、下記pythonコードを実行してください。

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/COVID19.csv',index_col="Date")

#WHOのコロナ新規感染者数。コロナの欠損値は0ゼロとする。.fillna(0) 感染者0人。
covid19 = data.iloc[:,0:8].fillna(0)

#株価。株価は欠損値を気にしない。実際に非営業日の為、値が変動しない為。
stock = data.iloc[:,9:17]

#株価の欠損値を行ごとの最頻値で置換
stockmode = stock.fillna(stock.mode().iloc[0])

#covid19とstockmodeの相関係数をヒートマップ表示#pd.DataFrameをnumpy.ndarrayに変換
ndf1=covid19.T.values
ndf2=stockmode.T.values
res=(1 - cdist(ndf1, ndf2, metric='correlation'))
res=pd.DataFrame(res, index=covid19.columns, columns=stockmode.columns)
print(res.head())
sns.set_context("talk")
fig = plt.subplots(figsize=(1012))
sns.heatmap(res, annot=True,fmt='.2f',cmap='binary',square=True)



今回のコードは、下記の書を参考に致しました。

 

❸参考にした本

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (日本語) 単行本(ソフトカバー) – 2017/6/3

Al Sweigart (著), 相川 愛三 (翻訳)






Twitterのフォローも宜しくお願い致します。https://twitter.com/bookloveru2



閲覧数:175回0件のコメント
bottom of page