[PYTHON] [Einführung in das Modell für Infektionskrankheiten] Betrachten des logarithmischen Diagramms. .. .. Eine Woche ab "Es ist die zweite Welle"!

Es ist eine weitere Woche seit dem letzten Artikel vergangen, aber ich möchte die Trends seitdem zusammenfassen. Dieses Mal würde ich gerne die zukünftige Situation mit MACD sehen, das für die Aktienkursprognose verwendet wird. Betrachtet man zunächst die aktuelle Situation in einem gewöhnlichen logarithmischen Diagramm, so sind Tokio und das ganze Land wie folgt. Tokio hat den Maximalwert der ersten Welle bereits überschritten und steigt immer noch exponentiell an. Obwohl es letzte Woche von Sonntag bis Mittwoch einen leichten Abwärtstrend zeigte, hat es keinen Einfluss auf die Haltung. Auch heute ist Sonntag mit 206 Menschen, aber die Anzahl der Infektionen ist fast gleich. original_data_東京_531_old.png Andererseits wächst auch das ganze Land exponentiell. Im ganzen Land gab es von Sonntag bis Mittwoch einen Rückgang. Die Zahl der Infektionen im ganzen Land entspricht fast 371 heute. original_data_合計_531_old.png

MACD anwenden

Erstens gilt dies für den Wechsel der ersten Welle von Ende März bis Ende April. Die Logik wird unten kurz beschrieben

MACD = 12-Tage-EMA-26-Tage-EMA
Signal = MACD 9-Tage-EMA
Histogramm = Signal-MACD

Hier wird EMA (Exponential Moving Average) nach der folgenden schrittweisen Formel berechnet.

{S_{{t}}=\alpha \times Y_{{t-1}}+(1-\alpha )\times S_{{t-1}}
}

Hier ist $ Y_ {{t-1}} $ der beobachtete Wert bei t-1 und $ S_ {{t-1}} $ ist die vorherige EMA. $ \ Alpha = {2 \ über {N + 1}} $, N = 9 ist ein Wert von ungefähr 0,2, und $ S_ {{t}} $ wird größer ausgewertet und näher am aktuellen Beobachtungspunkt gemittelt. Eingebaut in. Daher kann die Bewegung während der ersten Welle wie folgt berechnet werden. Wie unten gezeigt, ist der Abwärtstrend in Tokio nach dem 17. April deutlich zu erkennen, aber es gibt viel Lärm. ema_df_decompose_%5K%25D_tokyo_trendold2020-06-01.png Das ganze Land ist wie folgt und fast genauso wie in Tokio ist nach dem 17. April ein rückläufiger Trend zu beobachten. ema_df_decompose_%5K%25D_total_japan_trendold2020-06-01.png Wenn Sie sich das Obige ansehen, sind die täglichen Schwankungen immer noch groß. Ähnlich wie im Artikel über Systre, führen Sie hier Decompose ein und verwenden Sie die Trendkurve für dieselbe Verarbeitung. b08616a841be25d29817) wird angezeigt. Tokio ist wie folgt, und es ist zu sehen, dass es sich nach dem Höhepunkt am 15. April eindeutig einem rückläufigen Trend zugewandt hat. ema_decompose_%5K%25D_tokyo_trendold2020-06-01.png Das ganze Land ist wie folgt. Dies erreichte ebenfalls am 16. April seinen Höhepunkt und hat sich einem rückläufigen Trend zugewandt. ema_decompose_%5K%25D_total_japan_trendold2020-06-01.png Daher scheint es, dass diese Analysemethode verwendet werden kann, um die maximale Anzahl von Infektionen auch in der Zeitreihe der Anzahl von Infektionen in Corona zu sehen.

Auf die zweite Welle anwenden

Die Ergebnisse für Tokio sind wie folgt. Erstens eine Analyse für keine Behandlung, ein exponentieller Anstieg ist auch in dieser Analyse erkennbar, und es ist wahrscheinlich, dass die Anzahl der Infektionen in 10 Tagen bis 2 Wochen das Niveau von 500 erreichen wird. ema_df_decompose_%5K%25D_tokyo_trendnew2020-06-01.png Zerlegen und analysieren Sie die Trendkurve, es gibt keine Anzeichen für einen weiteren Rückgang in dieser Grafik, und es wird erwartet, dass sich dieser Trend vorerst fortsetzt. Mit anderen Worten, die MACD-Kurve und die Signalkurve sind nach unten konvex, was darauf hindeutet, dass die Differenz vorerst zunimmt. Bei den Aktienkursen kann der Ort, an dem diese Differenz negativ wird, als Signal für einen Rückgang angesehen werden, aber diese Zahl zeigt dies nicht. ema_decompose_%5K%25D_tokyo_trendnew2020-06-01.png Die landesweite Analyse lautet wie folgt und die Kurve ist fast dieselbe wie in Tokio. ema_df_decompose_%5K%25D_total_japan_trendnew2020-06-01.png Zerlegen und analysieren Sie die Trendkurve auf ähnliche Weise wie folgt ema_decompose_%5K%25D_total_japan_trendnew2020-06-01.png

Eine kleine Hintergrundanalyse

Der landesweite Trend ähnelt dem von Tokio. Da die Zahlen in der Metropolregion groß sind, scheint es natürlich, dass die gleiche Tendenz auftreten wird, aber der Beginn der zweiten Welle ist diesmal der 22. Juni aufgrund der Neigung des blauen Diagramms und des Anstiegs des Balkendiagramms von Signal-MACD. Es ist herum. Überlegen wir uns also, was diesen Auslöser verursacht. Die Triggerkandidaten sind die folgenden zwei. ① Die Notfallerklärung wird am 25. Mai storniert. ② Die Stornierung der Tokio-Benachrichtigung erfolgt am 11. Juni Wenn man diese vergleicht, wird angenommen, dass es ungefähr 10 Tage von der Infektion bis zur Erkennung durch Inspektion dauert, so dass es vernünftig erscheint zu glauben, dass die Löschung des Tokio-Alarms der Auslöser für den Anstieg ist. Umgekehrt kann gesagt werden, dass Tokyo Alert einen gewissen Effekt hatte.

Besorgnis über die Zunahme der Anzahl von Infektionen in der Zukunft

Wenn Sie sich das rote Diagramm der Anzahl der Infektionen in Tokio ansehen, das in der ersten Grafik dargestellt ist, ist es zunächst bereits auf etwa 1200 gestiegen, und es scheint, dass es in Zukunft um denselben Index zunehmen wird. Mit anderen Worten, 3000 Betten werden wahrscheinlich in weniger als 10 Tagen gefüllt. Es wird berichtet, dass die übliche Dauer des Krankenhausaufenthalts etwa 10 Tage beträgt, so dass 3000 Betten in weniger als 10 Tagen eine etwas beängstigende Zahl sind. Als nächstes kommt die Zunahme kritisch kranker Patienten. Die Zunahme schwerkranker Patienten hat sich verzögert und scheint abzunehmen, da sich die erste Welle schwerer Verletzungen jetzt erholt. Dies hat jedoch 7 bis 10 Tage später in der ersten Welle begonnen, und es besteht die Sorge, dass es in Zukunft auftreten wird. Und jetzt höre ich, dass 70-80% der jungen Menschen sind, so dass der Effekt die Verschlimmerung unterdrückt. Mit zunehmender Anzahl von Infektionen steigt jedoch auch die absolute Anzahl älterer Menschen, und die Zunahme der absoluten Anzahl von Verschlimmerungen kann nicht verhindert werden. Und schließlich, 40 Tage nach der Aufnahme, wenn die medizinische Versorgung enger wird, nehmen die Todesfälle zu.

Bei dieser Rate gibt es keine Anzeichen dafür, dass die Ausbreitung von Infektionen nicht nur in Tokio, sondern im ganzen Land aufhören wird, und schließlich wird eine begrenzte Notfallerklärung abgegeben, und Maßnahmen wie Bewegungsbeschränkungen aus Tokio und Arbeitsbeschränkungen in bestimmten Gebieten werden ergriffen, um eine Infektion von Jugendlichen so weit wie möglich zu verhindern. Wir halten es für notwendig, Maßnahmen zu ergreifen, um eine Infektion von Personen mit hohem Risiko zu verhindern. Es wird davon ausgegangen, dass die Erweiterung so weit wie möglich nicht unterdrückt werden kann, wenn sie nicht mit der gleichen starken treibenden Kraft wie Tokyo Alert implementiert wird.

Zusammenfassung

・ Ich habe versucht, MACD anzuwenden, um die Anzahl der Infektionen vorherzusagen ・ Exponentielle kontinuierliche Zunahme wurde vorgeschlagen ・ Auf jeden Fall ist die erste Maßnahme (obwohl sie sich zu verzögern scheint) wichtig, daher sollten Maßnahmen zur Eindämmung von Infektionen der Tokyo Alert-Klasse angekündigt werden.

・ Es ist wichtig, welche Art von Gegenmaßnahme die oben genannte Warnung sein sollte, wenn sich die Wirtschaft dreht. Ich möchte daher, dass Sie einen Vorschlag machen und ihn so bald wie möglich umsetzen.

Bonus (Code vorerst)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import datetime as dt
from pandas_datareader import data
import statsmodels.api as sm
from statsmodels.tsa.seasonal import STL

#Lesen Sie CSV-Daten mit Pandas. C.:\Users\user\simulation\COVID-19\csse_covid_19_data\japan\test
data = pd.read_csv('data/covid19/test_confirmed.csv',encoding="cp932")
data_r = pd.read_csv('data/covid19/test_recovered.csv',encoding="cp932")
data_d = pd.read_csv('data/covid19/test_deaths.csv',encoding="cp932")
#data = pd.read_csv('data/test_confirmed_.csv',encoding="cp932")
#data_r = pd.read_csv('data/test_recovered_.csv',encoding="cp932")
#data_d = pd.read_csv('data/test_deaths_.csv',encoding="cp932")

confirmed = [0] * (len(data.columns) - 1)
day_confirmed = [0] * (len(data.columns) - 1)
confirmed_r = [0] * (len(data_r.columns) - 1)
day_confirmed_r = [0] * (len(data.columns) - 1)
confirmed_d = [0] * (len(data_d.columns) - 1)
diff_confirmed = [0] * (len(data.columns) - 1)
days_from_1_Jun_20 = np.arange(0, len(data.columns) - 1, 1)
beta_ = [0] * (len(data_r.columns) - 1)
gamma_ = [0] * (len(data_d.columns) - 1)
daystamp = "531"

#city,city0 = "Tokio","tokyo"
city,city0 = "gesamt","total_japan"

skd=1
#Prozessdaten
t_cases = 0
t_recover = 0
t_deaths = 0
for i in range(0, len(data_r), 1):
    if (data_r.iloc[i][0] == city): #for country/region
        print(str(data_r.iloc[i][0]))
        for day in range(1, len(data.columns), 1):            
            confirmed_r[day - 1] += data_r.iloc[i][day]
            if day < 1+skd:
                day_confirmed_r[day-1] += data_r.iloc[i][day]
            else:
                day_confirmed_r[day-1] += (data_r.iloc[i][day] - data_r.iloc[i][day-skd])/(skd)
        t_recover += data_r.iloc[i][day]        
for i in range(0, len(data_d), 1):
    if (data_d.iloc[i][0] == city): #for country/region
        print(str(data_d.iloc[i][0]) )
        for day in range(1, len(data.columns), 1):
            confirmed_d[day - 1] += float(data_d.iloc[i][day]) #fro drawings
        t_deaths += float(data_d.iloc[i][day])        
for i in range(0, len(data), 1):
    if (data.iloc[i][0] == city): #for country/region
        print(str(data.iloc[i][0]))
        for day in range(1, len(data.columns), 1):
            confirmed[day - 1] += data.iloc[i][day] -  confirmed_r[day - 1] -confirmed_d[day-1]
            if day == 1:
                day_confirmed[day-1] += data.iloc[i][day]
            else:
                day_confirmed[day-1] += data.iloc[i][day] - data.iloc[i][day-1]

def EMA1(x, n):
    a= 2/(n+1)
    return pd.Series(x).ewm(alpha=a).mean()                
                
day_confirmed[0]=0                
df = pd.DataFrame()                
date = pd.date_range("20200531", periods=len(day_confirmed))
df = pd.DataFrame(df,index = date)
df['Close'] = day_confirmed
df.to_csv('data/day_comfirmed_new_{}.csv'.format(city0))
date_df=df['Close'].index.tolist() #Das ist der Punkt
print(date_df[0:30])
series = df['Close'].values.tolist()
stock0 = city0
stock = stock0
start = dt.date(2020,6,1)
end = dt.date(2020,7,12)

bunseki = "trend" #series" #cycle" #trend
cycle, trend = sm.tsa.filters.hpfilter(series, 144)
series2 = trend

y12 = EMA1(series2, 12)
y26 = EMA1(series2, 26)
MACD = y12 -y26
signal = EMA1(MACD, 9)
hist_=MACD-signal

ind3=date_df[:]
print(len(series),len(ind3))

fig, (ax1,ax2) = plt.subplots(2,1,figsize=(1.6180 * 8, 4*2),dpi=200)
ax1.bar(ind3,series,label="series")
ax1.plot(ind3,series2, "o-", color="blue",label="series2")
ax1.plot(ind3,y12, ".-", color="red",label="y12")
ax1.plot(ind3,y26, ".-", color="green",label="y26")
ax2.plot(ind3,MACD,label="MACD")
ax2.plot(ind3,signal,label="signal")
ax2.bar(ind3,hist_)
ax1.legend()
ax2.legend()
ax1.set_ylim(10,1000)
#ax2.set_ylim(10,1000)
ax1.set_yscale('log')
#ax2.set_yscale('log')
ax1.grid()
ax2.grid()
plt.savefig("./fig/{}/ema_decompose_%5K%25D_{}_{}new{}.png ".format(stock0,stock,bunseki,start))
plt.pause(1)
plt.close()

df['Close']=series  #series" #cycle" #trend
df['series2']=series2
df['y12'] = EMA1(df['Close'], 12)
df['y26'] =  EMA1(df['Close'], 26)
df['MACD'] = df['y12'] -df['y26']
df['signal'] = EMA1(df['MACD'], 9)
df['hist_']=df['MACD']-df['signal']
date_df=df['Close'].index.tolist()
print(df[0:30])

fig, (ax1,ax2) = plt.subplots(2,1,figsize=(1.6180 * 8, 4*2),dpi=200)
ax1.bar(ind3,series, label="series")
ax1.plot(df['series2'],"o-", color="blue",label="series2")
ax1.plot(df['y12'],".-", color="red",label="y12")
ax1.plot(df['y26'],".-", color="green",label="y26")
ax2.plot(df['MACD'],label="MACD")
ax2.plot(df['signal'],label="signal")
ax2.bar(date_df,df['hist_'])
ax1.legend()
ax2.legend()
ax1.set_ylim(10,1000)
ax1.set_yscale('log')
ax1.grid()
ax2.grid()
plt.savefig("./fig/{}/ema_df_decompose_%5K%25D_{}_{}new{}.png ".format(stock0,stock,bunseki,start))
plt.pause(1)
plt.close()

Recommended Posts

[Einführung in das Modell für Infektionskrankheiten] Betrachten des logarithmischen Diagramms. .. .. Eine Woche ab "Es ist die zweite Welle"!
[Einführung in das Modell für Infektionskrankheiten] Betrachten des logarithmischen Diagramms. .. .. Es ist die zweite Welle! ??
[Einführung in das logarithmische Diagramm] Prognostizieren Sie die Endzeit jedes Landes anhand des logarithmischen Diagramms der Infektionszahldaten ♬
[Einführung in das Modell der Infektionskrankheiten] Ich habe versucht, zu passen und zu spielen ♬
[Einführung in das Modell der Infektionskrankheiten] Alle Teile Japans enden ... ♬
[Einführung in das Modell für Infektionskrankheiten] Globaler Infektionsstatus aus Sicht von MACD ♬
[Einführung in das Modell für Infektionskrankheiten] Was ist der Unterschied zwischen der April-Epidemie und dieser Epidemie? .. .. ‼