[PYTHON] Zeitreihenanalyse Teil 4 VAR

1. Übersicht

2. Was ist ein VAR-Modell?

3. Granger-Kausalität

Definition

Prüfung

Analysebeispiel

Daten

Vorverarbeitung
#Daten lesen.
data = pd.read_csv('Train_Dst_Auction_DecPre_CF_1.txt', header=None, delim_whitespace=True)
#Die ersten 4 Zeilen sind die besten Fragen/Dies sind die Preis- und Mengenangaben für das Gebot.
#Darüber hinaus sind die ersten 3900 Spalten die Daten für die erste Ausgabe.
pr = data.iloc[:4,:3900].T
pr.columns = ['ask_p','ask_v','bid_p','bid_v']
#Berechnen Sie den mittleren Preis aus der besten ASK und dem besten BID.
pr['mid_p'] = (pr['ask_p'] + pr['bid_p']) / 2
#Berechnen Sie die Änderungsrate des mittleren Preises.
pr['p_chg'] = pr['mid_p'].pct_change()
#Berechnen Sie den Grad des Ungleichgewichts zwischen ASK- und BID-Mengen.
pr['v_imb'] = (pr['ask_v'] / pr['bid_v']).apply(np.log)
pr = pr.dropna()
#Fälle, in denen es zum vorherigen Zeitpunkt mehr Verkäufer gibt
print('sell > buy ', pr.loc[pr['v_imb'].shift(-1)>1, 'p_chg'].sum())
#Fälle, in denen es zum vorherigen Zeitpunkt mehr Käufer gibt
print('sell < buy ', pr.loc[pr['v_imb'].shift(-1)<1, 'p_chg'].sum())
# sell > buy  -0.0060484707428217765
# sell < buy  0.027729879129729684

Wenn es viele Verkäufe gibt, fällt der mittlere Preis im Durchschnitt, und wenn es viele Käufe gibt, steigt der mittlere Preis.

Granger-Kausaltest

#Laden Sie zuerst die Bibliothek und geben Sie die Daten ein.
from statsmodels.tsa.vector_ar.var_model import VAR
model = VAR(pr[['v_imb','p_chg']].values)
model.select_order(10).summary()
AIC BIC FPE HQIC
0 -15.49 -15.48 1.880e-07 -15.49
1 -16.29 -16.28 8.405e-08 -16.29
2 -16.31 -16.30 8.217e-08 -16.31
3 -16.32 -16.30 8.173e-08 -16.31
4 -16.33* -16.30* 8.101e-08* -16.32*
5 -16.33 -16.29 8.103e-08 -16.32
6 -16.33 -16.29 8.108e-08 -16.31
7 -16.33 -16.28 8.112e-08 -16.31
8 -16.33 -16.27 8.116e-08 -16.31
9 -16.33 -16.27 8.111e-08 -16.31
10 -16.33 -16.26 8.120e-08 -16.30
#Erstellen Sie ein Modell mit einer Reihenfolge von 4.
var_model = model.fit(4)
#Granger-Kausaltest. verursachen verursachen=0('v_imb')Von gebraucht=1('p_chg')Test auf Kausalität zu.
Granger = var_model.test_causality(causing=0, caused=1)
Granger.summary()
Test statistic Critical value p-value df
9.531 2.373 0.000 (4, 7772)
Granger = var_model.test_causality(causing=1, caused=0)
Granger.summary()
Test statistic Critical value p-value df
0.9424 2.373 0.438 (4, 7772)

4. Impulsantwortfunktion

Nicht orthogonale Impulsantwortfunktion

Orthogonale Impulsantwortfunktion

Analysebeispiel

#Erstellen Sie ein Modell mit einer Reihenfolge von 4.
var_model = model.fit(4)
# k=Berechnen Sie Impulsantworten bis zu 10.
IRF = var_model.irf(10)
#Zeichnen Sie die Ergebnisse. orth=Falsch bedeutet nicht orthogonal.
IRF.plot(orth=False)
plt.show()

save.png

5. Verteilte Zersetzung

Definition

Analysebeispiel

#Erstellen Sie ein Modell mit einer Reihenfolge von 4.
var_model = model.fit(4)
# k=Berechnen Sie den Dispersionsbeitragssatz bis zu 10.
FEVD = var_model.fevd(10)
#Zeichnen Sie die Ergebnisse.
FEVD.plot()
plt.show()

save.png

FEVD.summary()
FEVD for v_imb v_imb p_chg
0 1.000000 0.000000
1 0.999994 0.000006
2 0.999969 0.000031
3 0.999971 0.000029
4 0.999572 0.000428
5 0.999511 0.000489
6 0.999478 0.000522
7 0.999452 0.000548
8 0.999418 0.000582
9 0.999397 0.000603
FEVD for p_chg v_imb p_chg
0 0.012342 0.987658
1 0.018310 0.981690
2 0.018871 0.981129
3 0.019158 0.980842
4 0.019791 0.980209
5 0.020477 0.979523
6 0.020889 0.979111
7 0.021208 0.978792
8 0.021472 0.978528
9 0.021678 0.978322

Recommended Posts

Zeitreihenanalyse Teil 4 VAR
Zeitreihenanalyse Teil 3 Prognose
Zeitreihenanalyse Teil 1 Autokorrelation
Python: Zeitreihenanalyse
Zeitreihenanalyse Teil 2 AR / MA / ARMA
RNN_LSTM1 Zeitreihenanalyse
Zeitreihenanalyse 1 Grundlagen
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Umsatzprognose für die Zeitreihenanalyse
Zeitreihenanalyse 3 Vorverarbeitung von Zeitreihendaten
Zeitreihenanalyse 2 Stabilität, ARMA / ARIMA-Modell
Ich habe versucht, Zeitreihen zu analysieren! (AR-Modell)
Zeitreihenzerlegung
Zeitreihenanalyse 4 Konstruktion des SARIMA-Modells
Zeitreihenanalyse Nr. 6 Gefälschte Rückkehr und republikanischer Teil
Pandas Serie Teil 1
Python: Zeitreihenanalyse: Erstellen eines SARIMA-Modells
Python: Zeitreihenanalyse: Konstanz, ARMA / ARIMA-Modell
Kaggle ~ Gehäuseanalyse Part ~ Teil1
Python-Zeitreihenfrage
TOPIX-Zeitreihen anzeigen
Zeitreihendiagramm / Matplotlib
Python 3.4 Windows7-64bit-Umgebung erstellen (für die Analyse finanzieller Zeitreihen)
Python-Anwendung: Pandas Teil 2: Serie
Herausforderung für die zukünftige Umsatzprognose: ② Zeitreihenanalyse mit PyFlux
Eine Lernmethode für Anfänger zum Erlernen der Zeitreihenanalyse
[Python] Zeichnen Sie Zeitreihendaten
Wrap-Analyse Teil1 (Datenaufbereitung)
Herausforderung für die zukünftige Umsatzprognose: ⑤ Zeitreihenanalyse von Prophet
Herausforderung für die zukünftige Umsatzprognose: ① Was ist Zeitreihenanalyse?
[Statistik] [Zeitreihenanalyse] Zeichnen Sie das ARMA-Modell und erfassen Sie die Tendenz.
Einfache Vorhersage von Zeitreihen mit Prophet
Zeitreihenplot gestartet ~ Python Edition ~
Über Zeitreihendaten und Übertraining
Japanische Analyseverarbeitung mit Janome Teil1
Differenzierung von Zeitreihendaten (diskret)
Bewegungsstatistik zur Vorhersage von Zeitreihen
LSTM (1) zur Zeitreihenvorhersage (für Anfänger)
Mehrdimensionale Datenanalysebibliothek xarray Teil 2
Leistungsfähigkeit von Vorhersagemethoden in der Zeitreihendatenanalyse Halboptimierung (SARIMA) [Memo]
Veranschaulichen Sie sofort die vorherrschende Periode in Zeitreihendaten mithilfe der Spektralanalyse