Markets & Python & ...

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

第2波への警戒どころか第1波が抑えられずむしろ加速している現状

COVID-19の感染拡大が止まらない

f:id:hiroshimaeasy:20200628003709p:plain
世界の新規感染者数(7日移動平均)

世界の新規感染者数の7日移動平均グラフをPlotlyにあげようと思ったら、ファイルサイズがいっぱいで怒られてしまった。 そのくらい全世界で感染が広がっているし、日数が長引いている。

やむなくmatplotlibで描画したらlegend(凡例)が長すぎて上図のような不格好な感じになってしまった。

恐ろしいのは、これが累計患者数のグラフではなく新規感染者数のグラフであるということだ。新しく感染した人が、昨日よりも今日、今日よりも明日の方が多い状況が続いている。
世間では「感染拡大第2波」を恐れながらいかに経済活動を再開していくかが模索されているようだが、実際には第1波を抑えることができていないどころか、増加ペースが加速してきている。

今回は先にコードスニペットを掲載する

今回は自分でデータを収集・加工する必要がないシリーズです。

import pandas as pd
import numpy as np
import datetime
import matplotlib.pyplot as plt


# 元データの取得
row_data = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')
droped_df = row_data.drop(
              ['iso_code', 'continent', 'total_cases', 'total_deaths','total_cases_per_million',
               'new_cases_per_million', 'total_deaths_per_million',
               'new_deaths_per_million', 'total_tests', 'new_tests',
               'total_tests_per_thousand', 'new_tests_per_thousand',
               'new_tests_smoothed', 'new_tests_smoothed_per_thousand', 'tests_units',
               'stringency_index', 'population', 'population_density', 'median_age',
               'aged_65_older', 'aged_70_older', 'gdp_per_capita', 'extreme_poverty',
               'cvd_death_rate', 'diabetes_prevalence', 'female_smokers',
               'male_smokers', 'handwashing_facilities', 'hospital_beds_per_thousand'], axis=1)

# locationごとにグループ分けしたdf
newdf = droped_df.groupby('location')
dflist = []
for n, df in newdf:
    pd.DataFrame(df)
    dflist.append(df)

# dateとnew_casesのみ抜き出す
merged_df = pd.merge(dflist[10][['date', 'new_cases']], dflist[0][['date', 'new_cases']], on='date', how='left')
for c in range(1, len(dflist)):
    merged_df = pd.merge(merged_df, dflist[c][['date', 'new_cases']], on='date', how='left')

# column名の割当
countrylist = [list(set(dflist[i]['location'])) for i in range(len(dflist))]
countries = [country for c in countrylist for country in c]
countries[0:0] = ['date', 'dummy_Aus']

# 新規感染者数のdataframe
merged_df.columns = countries
cases_df = merged_df.drop('dummy_Aus', axis=1)
cases_df = cases_df.drop('World', axis=1)

# 欠損値補完
cases_df = cases_df.fillna(0)

# 7日移動平均のdataframeを用意
day_cas_rol = cases_df.rolling(7).mean().dropna()
day_cas_rol.where(day_cas_rol > 0, 0, inplace=True)

# matplotlibで描画
fig, ax = plt.subplots(figsize=(4.2,3), dpi=270)
day_cas_rol.set_index(cases_df.date[6:]).plot.area(
    ax=ax,
    alpha=0.75,
    lw=0.5,
    stacked=True)
plt.xticks(fontsize=4)
plt.yticks(fontsize=4)
plt.legend(loc='upper left',
           bbox_to_anchor=(1, 1))
plt.rc('legend', fontsize=0.1)
plt.show()

ヒートアップするUS

感染の中心地はブラジル・チリなどの南米やインド・ロシアなどの新興国に移った。
というイメージはもう古くなってしまった。
この1週間の動きは、北京市場でのクラスター発生、ドイツの食肉処理工場での1500人規模のクラスター発生、US、韓国やフランスなどでも感染再拡大の確認など、「感染拡大&抑制のパイオニア」達の経済活動再開後の再活性化である。
そして中でも特に顕著なのは、トップが「検査体制拡充の結果だ」と胸を張るUSだ。

f:id:hiroshimaeasy:20200628010430p:plain
アメリカ州ごとの新規感染者数の推移

hiroshimaeasygogo.hatenadiary.com

※前の記事に掲載したコードをもう一回実行すればこのグラフがまた出現します。

州ごとに政策が異なり違う動きをしているのだが、US全体で見ると感染拡大ペースがピーク時に近い傾きになってきている。
physical distancing・マスク着用を遵守できない国民性や、デモで人が密集していることも関係しているのでしょう。

一方、自国民からは批判の嵐なのにも関わらず、他国からはコロナ対策を高く評価されている我が国では...

f:id:hiroshimaeasy:20200628011340p:plain
都内の新規感染者数とトレンドライン

緊急事態宣言解除から約1ヶ月が経過した頃、国内での新規感染者数のうち半数以上を占めているという東京都ではそのリーダーを選び直す選挙を7/5に控え、現職の小池百合子都知事も完全にそのモードに入ったと思われる。
都内の多くの事業者が経済的に致死量に到達するような壊滅的なダメージを受けた為、「自粛から自衛へ」とシフトチェンジを迫られた。
おそらく選挙が決着するまでは、一旦緩めた感染抑制モードを元に戻すことはできないだろう。
しかし目の敵にされてしまっている「夜の街」を徹底検査した結果、都内の新規感染者数は一定のペースで増加してきている。このペースが継続すれば、都知事選が行われ開票される7/5頃には、緊急事態宣言が発令された4/7の1週間前程度の水準まで新規感染者数が増加する見込みである。
ちなみにいわゆる「3密」の条件が揃っていて、なおかつ「夜の街」以上に関わる人が多いであろう「一般のオフィス」でのクラスター発生も先日確認された。

hiroshimaeasygogo.hatenadiary.com

※このグラフも、前の記事のコードをもう一回実行したら出現します

来週はイベントが盛り沢山

6/30(tue) 中国 製造業PMI(6月)
6/30(tue) US 消費者信頼感指数(6月)
7/01(wed) 日本 日銀短観
7/01(wed) US ADP雇用者数(6月)
7/01(wed) US ISM製造業指数(6月)
7/02(thu) US 失業保険申請件数
7/02(thu) US 雇用統計

それから、週末が独立記念日で米国市場が休場。
ボルトン暴露本や人種差別デモの大統領選への影響、米中貿易合意が本当に"over"ではないのか、またUSの新規感染者数の増加傾向やゴールド市場が沸騰しているのも気持ち悪いし、株高(っぽい)・債券安(っぽい)のも不穏なムードを漂わせている。
前回奇妙な結果だった雇用統計の行方も気になる。

なんとなくデンジャラスなムードの高まりを感じつつ、来週のマーケットを迎えましょう。