Quantitative methods in energy market modelling - Exam.pdf

Quantitative methods in energy market modelling - Exam
Quantitative methods in energy market modelling - Exam Aufgabe 1) Differentialgleichungen modellieren dynamische Prozesse wie Nachfrage, Angebot, Preisentwicklung und Ressourcenverbrauch in der Energiewirtschaft. Solche Modelle sind insbesondere für die Simulation von Lastprofilen oder die Spotpreismodellierung relevant. Betrachten wir zwei spezifische Beispiele: Erstes Beispiel: Die Preisentwickl...

© StudySmarter 2024, all rights reserved.

Quantitative methods in energy market modelling - Exam

Aufgabe 1)

Differentialgleichungen modellieren dynamische Prozesse wie Nachfrage, Angebot, Preisentwicklung und Ressourcenverbrauch in der Energiewirtschaft. Solche Modelle sind insbesondere für die Simulation von Lastprofilen oder die Spotpreismodellierung relevant.

Betrachten wir zwei spezifische Beispiele:

  • Erstes Beispiel: Die Preisentwicklung über die Zeit wird durch die Formel \(\frac{dP(t)}{dt} = f(P, D, O)\) beschrieben, wobei \(P\) der Preis, \(D\) die Nachfrage und \(O\) das Angebot ist.
  • Zweites Beispiel: Der Diffusionsprozess von Innovationen kann durch die Formel \(\frac{dI(t)}{dt} = g(I, t)\) modelliert werden, wobei \(I\) die Innovation und \(t\) die Zeit ist.
  • Diese Gleichungen können von erster Ordnung (lineare/nichtlineare) oder höherer Ordnung sein, abhängig von der Komplexität des Systems.
  • Zur Lösung dieser Gleichungen sind numerische Methoden erforderlich.

a)

A) Modellierung der Preisentwicklung: Gegeben sei das Modell der Preisentwicklung über die Zeit

\[\frac{dP(t)}{dt} = k \times (D(t) - O(t))\]

  • Berechne den Preis \(P(t)\), wenn \(D(t) = D_0 e^{\beta t} \) und \(O(t) = O_0 e^{\theta t}\) sind. Setze die Anfangsbedingungen \(P(0) = P_0\).

Lösung:

Modellierung der Preisentwicklung: Gegeben sei das Modell der Preisentwicklung über die Zeit

\[\frac{dP(t)}{dt} = k \times (D(t) - O(t))\]

  • Berechne den Preis \(P(t)\), wenn \(D(t) = D_0 e^{\beta t} \) und \(O(t) = O_0 e^{\theta t}\) sind. Setze die Anfangsbedingungen \(P(0) = P_0\).

Lösungsschritte:

  1. Zu Beginn setzen wir die gegebenen Funktionen für Nachfrage \(D(t)\) und Angebot \(O(t)\) in die Differentialgleichung ein:

\[\frac{dP(t)}{dt} = k \times (D_0 e^{\beta t} - O_0 e^{\theta t})\]

  1. Integriere beide Seiten der Gleichung, um den Preis \(P(t)\) zu finden:

\[\int \frac{dP}{dt} dt = \int k \times (D_0 e^{\beta t} - O_0 e^{\theta t}) dt\]

\[ P(t) = k \int (D_0 e^{\beta t} - O_0 e^{\theta t}) dt\]

  1. Berechne die Integrale für beide Terme:

\[P(t) = k \left[ \int D_0 e^{\beta t} dt - \int O_0 e^{\theta t} dt \right]\]

Die Integrale sind:

\[\int D_0 e^{\beta t} dt = \frac{D_0}{\beta} e^{\beta t}\]

und

\[\int O_0 e^{\theta t} dt = \frac{O_0}{\theta} e^{\theta t}\]

  1. Setze die berechneten Integrale zurück in die Gleichung für \(P(t)\):

\[P(t) = k \left( \frac{D_0}{\beta} e^{\beta t} - \frac{O_0}{\theta} e^{\theta t} \right) + C\]

  1. Bestimme die Konstante \(C\) anhand der Anfangsbedingungen \(P(0) = P_0\):
  2. Wenn \(t = 0\), dann

\[P(0) = k \left( \frac{D_0}{\beta} - \frac{O_0}{\theta} \right) + C = P_0\]

  1. Löse nach \(C\):

\[ \ C = P_0 - k \left( \frac{D_0}{\beta} - \frac{O_0}{\theta} \right)\]

  1. Setze \(C\) in die allgemeine Lösung für \(P(t)\) zurück:

\[P(t) = k \left( \frac{D_0}{\beta} e^{\beta t} - \frac{O_0}{\theta} e^{\theta t} \right) + P_0 - k \left( \frac{D_0}{\beta} - \frac{O_0}{\theta} \right)\]

Schließlich:

\[P(t) = P_0 + k \left( \frac{D_0}{\beta} (e^{\beta t} - 1) - \frac{O_0}{\theta} (e^{\theta t} - 1) \right)\]

So, die Lösung für den Preis \(P(t)\) ist gefunden.

b)

B) Diffusionsprozess von Innovationen: Betrachte das Modell der Diffusion von Innovationen

\[\frac{dI(t)}{dt} = \rho \times (I_{max} - I(t))\]

  • Löse diese Differentialgleichung für \(I(t)\) mit den Anfangsbedingungen \(I(0) = I_0\). Was passiert mit \(I(t)\), wenn \(t \to \text{unendlich}\)?

Lösung:

Diffusionsprozess von Innovationen: Betrachte das Modell der Diffusion von Innovationen

\[\frac{dI(t)}{dt} = \rho \times (I_{max} - I(t))\]

  • Löse diese Differentialgleichung für \(I(t)\) mit den Anfangsbedingungen \(I(0) = I_0\). Was passiert mit \(I(t)\), wenn \(t \to \text{unendlich}\)?

Lösungsschritte:

  1. Zuerst bringen wir die Differentialgleichung in eine Form, die wir durch Trennung der Variablen lösen können:

\[\frac{dI(t)}{dt} = \rho (I_{max} - I(t))\]

  1. Trenne die Variablen \(I\) und \(t\):

\[\frac{1}{I_{max} - I(t)} \frac{dI(t)}{dt} = \rho\]

  1. Integriere beide Seiten der Gleichung:

\[\int \frac{1}{I_{max} - I(t)} dI(t) = \int \rho dt\]

Der linke Term wird mittels Substitution integriert. Setze \(u = I_{max} - I(t)\), dann ist \(du = -dI(t)\).

\[\int -\frac{1}{u} du = \int \rho dt\]

\[-\ln|u| = \rho t + C_1\]

Ersetze \(u\) zurück:

\[-\ln|I_{max} - I(t)| = \rho t + C_1\]

  1. Löse nach \(I(t)\):

\[\ln|I_{max} - I(t)| = -\rho t - C_1\]

Beide Seiten exponenzieren:

\[|I_{max} - I(t)| = e^{-\rho t - C_1}\]

Wir schreiben die Konstante \(e^{-C_1}\) als \(C_2\), dann erhalten wir:

\[I_{max} - I(t) = C_2 e^{-\rho t}\]

\[I(t) = I_{max} - C_2 e^{-\rho t}\]

  1. Bestimme die Konstante \(C_2\) anhand der Anfangsbedingung \(I(0) = I_0\):

\[I(0) = I_{max} - C_2 = I_0\]

\[C_2 = I_{max} - I_0\]

  1. Setze \(C_2\) zurück in die Lösung ein:

\[I(t) = I_{max} - (I_{max} - I_0) e^{-\rho t}\]

\[I(t) = I_{max} - (I_{max} - I_0) e^{-\rho t}\]

Wenn \(t \to \text{unendlich}\):

\[e^{-\rho t} \to 0\]

\[I(t) \to I_{max}\]

Die Lösung für \(I(t)\) ist:

\[I(t) = I_{max} - (I_{max} - I_0) e^{-\rho t}\]

Und für \(t \to \text{unendlich}\), nähert sich \(I(t)\) dem maximalen Wert \(I_{max}\).

c)

C) Numerische Methoden: Implementiere eine numerische Methode zur Lösung der ersten Differentialgleichung aus Teil A. Nutze die Methode des Euler-Verfahrens.

'import numpy as npimport matplotlib.pyplot as pltdef euler_method(dP_dt, P0, t, dt):    P = np.zeros_like(t)    P[0] = P0    for i in range(1, len(t)):        P[i] = P[i-1] + dt * dP_dt(P[i-1], t[i-1])    return Pdef dP_dt(P, t):    D0, beta, O0, theta, k = 100, 0.02, 80, 0.015, 0.5    D = D0 * np.exp(beta * t)    O = O0 * np.exp(theta * t)    return k * (D - O)P0 = 50t = np.linspace(0, 10, 100)dt = t[1] - t[0]P = euler_method(dP_dt, P0, t, dt)plt.plot(t, P)plt.xlabel('Time t')plt.ylabel('Price P(t)')plt.title('Price Evolution using Euler Method')plt.show()'

Lösung:

Numerische Methoden: Implementiere eine numerische Methode zur Lösung der ersten Differentialgleichung aus Teil A. Nutze die Methode des Euler-Verfahrens.

import numpy as npimport matplotlib.pyplot as pltdef euler_method(dP_dt, P0, t, dt):    P = np.zeros_like(t)    P[0] = P0    for i in range(1, len(t)):        P[i] = P[i-1] + dt * dP_dt(P[i-1], t[i-1])    return Pdef dP_dt(P, t):    D0, beta, O0, theta, k = 100, 0.02, 80, 0.015, 0.5    D = D0 * np.exp(beta * t)    O = O0 * np.exp(theta * t)    return k * (D - O)P0 = 50t = np.linspace(0, 10, 100)dt = t[1] - t[0]P = euler_method(dP_dt, P0, t, dt)plt.plot(t, P)plt.xlabel('Time t')plt.ylabel('Price P(t)')plt.title('Price Evolution using Euler Method')plt.show()

Aufgabe 2)

Stochastische Modellierung in EnergiemärktenAngenommen Du arbeitest in einem Energieunternehmen, das die Preise von Strom mit stochastischen Methoden modelliert, um die Unternehmensentscheidungen zu unterstützen. Dein Team verwendet vor allem Zeitreihenmodelle wie ARMA und GARCH, um Preistrends und das Preisrisiko vorherzusagen. Auf Basis historischer Preisdaten wird das Modell kalibriert, um die genauesten Vorhersagen über zukünftige Preisentwicklungen zu liefern. Gegeben der historischen Preisdaten p(t), könnt ihr ein ARMA(1,1)-Modell verwenden, das wie folgt beschrieben wird: p(t) = c + φp(t-1) + θε(t-1) + ε(t), wobei

  • p(t) der Preis zum Zeitpunkt t ist,
  • c eine Konstante ist,
  • φ der autoregressive Parameter ist,
  • θ der moving-average Parameter ist,
  • und ε(t) eine weiße Rauschenkomponente ist.

a)

c) Diskutiere, wie das GARCH-Modell verwendet werden könnte, um volatile Strompreise zu modellieren. Benutze folgende GARCH(1,1)-Modellnotierung: σ²(t) = α₀ + α₁ε²(t-1) + β₁σ²(t-1). Beschreibe die Hauptvorteile der Verwendung eines GARCH-Modells im Vergleich zum ARMA-Modell.

Lösung:

c) Diskutiere, wie das GARCH-Modell verwendet werden könnte, um volatile Strompreise zu modellieren.

Das GARCH-Modell (Generalized Autoregressive Conditional Heteroskedasticity) ist besonders nützlich, um die Volatilität von Zeitreihen zu modellieren, wie es bei Strompreisen der Fall ist. Das GARCH(1,1)-Modell wird oft verwendet, da es eine gute Balance zwischen Modellkomplexität und Genauigkeit bietet. Es wird wie folgt beschrieben:

\begin{equation} \sigma^2(t) = \alpha_0 + \alpha_1\epsilon^2(t-1) + \beta_1\sigma^2(t-1) \end{equation}

Hierbei sind:

  • σ²(t): Bedingte Varianz zum Zeitpunkt t
  • α₀: Konstanter Basiswert der Varianz
  • α₁: Gewichtungsfaktor für den Einfluss der quadratischen Innovation der Vorperiode ε²(t-1)
  • β₁: Gewichtungsfaktor für den Einfluss der bedingten Varianz der Vorperiode σ²(t-1)

Der entscheidende Aspekt des GARCH-Modells ist seine Fähigkeit, die bedingte Heteroskedastizität zu modellieren. Das bedeutet, dass es Schwankungen in der Varianz über die Zeit erfassen kann, was bei volatilen Daten wie Strompreisen essenziell ist.

Hauptvorteile des GARCH-Modells im Vergleich zum ARMA-Modell:

  • Erfassung der Volatilitätsclustering: Das GARCH-Modell ist besonders gut geeignet, um Volatilitätsclustering zu erfassen, also Perioden hoher und niedriger Volatilität, die häufig in Finanz- und Energiemärkten auftreten.
  • Berücksichtigung der Heteroskedastizität: Im Gegensatz zum ARMA-Modell, das konstante Varianz annimmt, berücksichtigt das GARCH-Modell Schwankungen in der Varianz. Dies ermöglicht realistischere Prognosen in Märkten mit ungleichmäßiger Volatilität.
  • Besseres Risiko-Management: Durch die Modellierung der Varianz können Unternehmen besser auf volatilen Märkten agieren und ein effizienteres Risiko-Management betreiben.
  • Anpassungsfähigkeit: Das GARCH-Modell kann leichter an neue Daten angepasst werden, da es die Änderungen in der Varianz zeitnah widerspiegelt.

Zusammenfassend lässt sich sagen, dass das GARCH-Modell eine wichtige Ergänzung zu ARMA-Modellen darstellt, insbesondere wenn es um die Modellierung von volatilen und unsicheren Märkten wie den Energiemärkten geht.

Aufgabe 3)

Angenommen, Du hast Zugriff auf eine umfangreiche Zeitreihe monatlicher Elektrizitätspreise in Deutschland über einen Zeitraum von zehn Jahren. Diese Daten sollen analysiert werden, um Muster und Trends zu identifizieren und Vorhersagen für die zukünftigen Preise zu erstellen. Gehe davon aus, dass die Zeitreihe Nicht-Stationarität aufweist und saisonale Komponenten enthält.

a)

Teilaufgabe 1: Überprüfe die Stationarität der Zeitreihe mit dem Augmented-Dickey-Fuller-Test (ADF-Test). Bestimme, ob die Zeitreihe eine unit root enthält. Verwende eine Signifikanzniveau von 5%. Dokumentiere die Schritte und Ergebnisse. Erkläre kurz, was der ADF-Test misst und wie die Ergebnisse interpretiert werden.

Lösung:

Teilaufgabe 1: Überprüfe die Stationarität der Zeitreihe mit dem Augmented-Dickey-Fuller-Test (ADF-Test). Bestimme, ob die Zeitreihe eine unit root enthält. Verwende ein Signifikanzniveau von 5%. Dokumentiere die Schritte und Ergebnisse. Erkläre kurz, was der ADF-Test misst und wie die Ergebnisse interpretiert werden.

Schritte und Dokumentation:

  • Datenvorbereitung: Importiere die Zeitreihendaten in ein geeignetes Datenanalyse-Tool wie Python.
  • ADF-Test durchführen: Verwende die adfuller-Funktion aus der Bibliothek statsmodels, um den ADF-Test auf die Zeitreihe anzuwenden.
  • Ergebnisse interpretieren: Bestimme, ob die Zeitreihe stationär ist, indem Du die ADF-Teststatistik mit den kritischen Werten vergleichst.

ADF-Test Erklärung:

  • Der Augmented-Dickey-Fuller-Test (ADF-Test) misst, ob eine gegebene Zeitreihe stationär ist oder eine unit root enthält. Eine time series is stationär, wenn die statischen Eigenschaften wie Mittelwert und Varianz über die Zeit konstant bleiben.
  • Das Vorhandensein einer unit root impliziert, dass die Zeitreihe einen stochastischen Trend aufweist und nicht stationär ist.
  • Der Test enthält die Nullhypothese, dass die Zeitreihe eine unit root enthält (d.h. nicht stationär ist). Wird die Nullhypothese abgelehnt, kann die Zeitreihe als stationär betrachtet werden.

Ergebnisse interpretieren:

  • Führe den ADF-Test auf die Zeitreihe durch und erhalte die Teststatistik sowie die p-Werte und kritischen Werte.
  • Vergleiche die Teststatistik mit den kritischen Werten bei einem Signifikanzniveau von 5%.
  • Wenn die Teststatistik kleiner (d.h. negativer) als der kritische Wert ist und der p-Wert kleiner als 0,05 ist, kann die Nullhypothese abgelehnt werden, und die Zeitreihe wird als stationär betrachtet.

Python-Code-Beispiel:

 import pandas as pd  from statsmodels.tsa.stattools import adfuller   # Laden der Zeitreihendaten  data = pd.read_csv('elektrizitätspreise.csv', index_col='Datum', parse_dates=True)   # ADF-Test durchführen  result = adfuller(data['Preis'])   # Ergebnisse ausdrucken  print('ADF Teststatistik: %f' % result[0])  print('p-Wert: %f' % result[1])  print('Kritische Werte:')  for key, value in result[4].items():  print('\t%s: %.3f' % (key, value))  

Beispielhafte Ergebnisse:

  • ADF Teststatistik: -3.456789
  • p-Wert: 0.012345
  • Kritische Werte: 1%: -3.500, 5%: -2.890, 10%: -2.580

Da die ADF Teststatistik (-3.456789) kleiner ist als der kritische Wert bei 5% (-2.890) und der p-Wert (0.012345) kleiner als 0.05 ist, lehnen wir die Nullhypothese ab. Dies bedeutet, dass die Zeitreihe stationär ist und keine unit root enthält.

b)

Teilaufgabe 2: Angenommen, die Zeitreihe ist nicht stationär. Wandle die Zeitreihe in eine stationäre Zeitreihe um, indem Du geeignete Differenzierungen durchführst. Beschreibe den Prozess der Differenzierung und demonstriere die Ergebnisse grafisch.

Lösung:

Teilaufgabe 2: Angenommen, die Zeitreihe ist nicht stationär. Wandle die Zeitreihe in eine stationäre Zeitreihe um, indem Du geeignete Differenzierungen durchführst. Beschreibe den Prozess der Differenzierung und demonstriere die Ergebnisse grafisch.

Schritte und Dokumentation:

  • Datenvorbereitung: Importiere die Zeitreihendaten in ein geeignetes Datenanalyse-Tool wie Python.
  • Erste Differenzierung: Führe eine einfache Differenzierung der Zeitreihe durch, um Trends zu entfernen.
  • Weitere Differenzierungen: Wenn saisonale Komponenten vorhanden sind, führe eine saisonale Differenzierung durch.
  • Stationarität überprüfen: Verwende den ADF-Test, um die Stationarität der differenzierten Zeitreihe zu überprüfen.
  • Grafische Darstellung: Erstelle Plots der Originalzeitreihe und der differenzierten Zeitreihe, um die Ergebnisse visuell darzustellen.

Prozess der Differenzierung:

  • Einfache Differenzierung: Subtrahiere den vorherigen Wert von jedem Wert der Zeitreihe, um die ersten Differenzen zu erhalten.
  • Saisonale Differenzierung: Subtrahiere den Wert der Zeitreihe vom Wert der gleichen Periode im vorherigen Jahr oder vorherigen Saisonzeitraum, um saisonale Schwankungen zu entfernen.

Python-Code-Beispiel:

import pandas as pdimport matplotlib.pyplot as pltfrom statsmodels.tsa.stattools import adfuller# Laden der Zeitreihendatendata = pd.read_csv('elektrizitätspreise.csv', index_col='Datum', parse_dates=True)# Originalzeitreihe plottenplt.figure(figsize=(12,6))plt.plot(data, label='Originalzeitreihe')plt.title('Originalzeitreihe')plt.legend()plt.show()# Einfache Differenzierungdiff_data = data.diff().dropna()# Unterschied geplottete Zeitreiheplt.figure(figsize=(12,6))plt.plot(diff_data, label='Differenzierte Zeitreihe (1. Ordnung)')plt.title('Differenzierte Zeitreihe (1. Ordnung)')plt.legend()plt.show()# ADF-Test für einfach differenzierte Zeitreiheresult_diff = adfuller(diff_data)print('ADF Teststatistik: %f' % result_diff[0])print('p-Wert: %f' % result_diff[1])print('Kritische Werte:')for key, value in result_diff[4].items():    print('\t%s: %.3f' % (key, value))# Saisonale Differenzierung (z.B. für monatliche Daten mit saisonaler Periode von 12)seasonal_diff_data = diff_data.diff(12).dropna()# Saisonal differenzierte Zeitreihe plottenplt.figure(figsize=(12,6))plt.plot(seasonal_diff_data, label='Saisonal differenzierte Zeitreihe (1. Ordnung + Saison)')plt.title('Saisonal differenzierte Zeitreihe (1. Ordnung + Saison)')plt.legend()plt.show()# ADF-Test für saisonal differenzierte Zeitreiheresult_seasonal_diff = adfuller(seasonal_diff_data)print('ADF Teststatistik: %f' % result_seasonal_diff[0])print('p-Wert: %f' % result_seasonal_diff[1])print('Kritische Werte:')for key, value in result_seasonal_diff[4].items():    print('\t%s: %.3f' % (key, value))

Erklärung der Ergebnisse:

  • Originalzeitreihe: Zeigt die ungefilterte Zeitreihe der Elektrizitätspreise.
  • Differenzierte Zeitreihe (1. Ordnung): Zeigt die Zeitreihe nach einfacher Differenzierung, um den Trend zu entfernen.
  • Saisonal differenzierte Zeitreihe: Zeigt die Zeitreihe nach zusätzlicher saisonaler Differenzierung, um saisonale Schwankungen zu entfernen.
  • ADF-Test: Die ADF-Teststatistik und p-Werte für die differenzierten Zeitreihen helfen zu bestimmen, ob die Zeitreihe stationär geworden ist. Wenn die ADF-Teststatistik kleiner als der kritische Wert und der p-Wert kleiner als 0,05 ist, ist die Zeitreihe stationär.

c)

Teilaufgabe 3: Modelliere die stationäre Zeitreihe mithilfe eines ARIMA-Modells. Bestimme die optimalen Parameter (p, d, q) und die Performance des Modells hinsichtlich AIC und BIC. Schaue Dir die Autokorrelations- und Partialautokorrelationsfunktionen (ACF und PACF) an, um die optimalen AR und MA-Ordnung zu bestimmen. Erkläre, wie Du zu den gewählten Werten gelangt bist.

Lösung:

Teilaufgabe 3: Modelliere die stationäre Zeitreihe mithilfe eines ARIMA-Modells. Bestimme die optimalen Parameter (p, d, q) und die Performance des Modells hinsichtlich AIC und BIC. Schaue Dir die Autokorrelations- und Partialautokorrelationsfunktionen (ACF und PACF) an, um die optimalen AR und MA-Ordnung zu bestimmen. Erkläre, wie Du zu den gewählten Werten gelangt bist.

Schritte und Dokumentation:

  • Datenvorbereitung: Verwende die stationäre Zeitreihe.
  • ACF und PACF plotten: Analysiere die Autokorrelations- und Partialautokorrelationsfunktionen, um Kandidaten für die Parameter p und q zu identifizieren.
  • Optimale Parameter (p,d,q) bestimmen: Wähle die Werte für AR, Differenzierung, und MA-Ordnung und baue das ARIMA-Modell auf.
  • Modellperformance bewerten: Verwende AIC und BIC, um die Güte des Modells zu bewerten.

ACF und PACF Analyse:

  • Autokorrelationsfunktion (ACF): Zeigt die Korrelation zwischen den Werten in der Zeitreihe und ihren Lagged Werten. Nutze die ACF, um die Anzahl der MA-Terms (q) zu bestimmen.
  • Partialautokorrelationsfunktion (PACF): Zeigt die Korrelation zwischen den Werten in der Zeitreihe und ihren Lagged Werten, nachdem die Effekte von Zwischenlagen entfernt wurden. Nutze die PACF, um die Anzahl der AR-Terms (p) zu bestimmen.

Python-Code-Beispiel:

import pandas as pdimport matplotlib.pyplot as pltimport statsmodels.api as smfrom statsmodels.tsa.arima.model import ARIMAfrom statsmodels.graphics.tsaplots import plot_acf, plot_pacf# Laden der stationären Zeitreihen-Datendata_stationary = pd.read_csv('stationary_elektrizitätspreise.csv', index_col='Datum', parse_dates=True)# ACF und PACF plottenfig, ax = plt.subplots(2, 1, figsize=(12, 8))plot_acf(data_stationary, lags=40, ax=ax[0])plot_pacf(data_stationary, lags=40, ax=ax[1])plt.show()# Bestimmung der Parameter (p, d, q) durch Analyse der Plots# In diesem Beispiel gehen wir von folgenden Werten aus:p = 1d = 0  # Die Zeitreihe ist bereits stationärq = 1# ARIMA-Modell erstellenmodel = ARIMA(data_stationary, order=(p, d, q))model_fit = model.fit()# Modellzusammenfassung ausgebenprint(model_fit.summary())# AIC und BIC Werte anzeigenprint('AIC:', model_fit.aic)print('BIC:', model_fit.bic)

Erklärung der Werte:

  • p (AR-Ordnung): Wird durch die Zahl der signifikanten Lags in der PACF bestimmt, bevor die Werte gegen Null tendieren.
  • d (Differenzierung): Für stationäre Daten wird d auf 0 gesetzt.
  • q (MA-Ordnung): Wird durch die Zahl der signifikanten Lags in der ACF bestimmt, bevor die Werte gegen Null tendieren.
  • AIC (Akaike Informationskriterium): Bewertet die Güte des Modells; je niedriger der Wert, desto besser.
  • BIC (Bayesian Informationskriterium): Ähnlich wie AIC, berücksichtigt jedoch die Modellkomplexität stärker; ebenfalls je niedriger, desto besser.

Indem wir die Autokorrelations- und Partialautokorrelationsgrafiken analysieren, wählen wir die Werte p und q, die die signifikanten Lagged-Werteeffekte anzeigen. Ein niedriges AIC und BIC zeigt an, dass das Modell gut zur Beschreibung der Zeitreihe geeignet ist.

Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden