Big Data Analytics - Zeitreihenanalyse
Zeitreihen sind eine Folge von Beobachtungen kategorialer oder numerischer Variablen, die durch ein Datum oder einen Zeitstempel indiziert sind. Ein klares Beispiel für Zeitreihendaten ist die Zeitreihe eines Aktienkurses. In der folgenden Tabelle sehen wir die Grundstruktur von Zeitreihendaten. In diesem Fall werden die Beobachtungen stündlich aufgezeichnet.
Zeitstempel | Standard Preis |
---|---|
2015-10-11 09:00:00 | 100 |
2015-10-11 10:00:00 | 110 |
2015-10-11 11:00:00 | 105 |
2015-10-11 12:00:00 | 90 |
2015-10-11 13:00:00 | 120 |
Normalerweise besteht der erste Schritt bei der Zeitreihenanalyse darin, die Reihen zu zeichnen. Dies erfolgt normalerweise mit einem Liniendiagramm.
Die häufigste Anwendung der Zeitreihenanalyse ist die Vorhersage zukünftiger Werte eines numerischen Werts unter Verwendung der zeitlichen Struktur der Daten. Dies bedeutet, dass die verfügbaren Beobachtungen verwendet werden, um Werte aus der Zukunft vorherzusagen.
Die zeitliche Reihenfolge der Daten impliziert, dass herkömmliche Regressionsmethoden nicht nützlich sind. Um eine robuste Prognose zu erstellen, benötigen wir Modelle, die die zeitliche Reihenfolge der Daten berücksichtigen.
Das am weitesten verbreitete Modell für die Zeitreihenanalyse heißt Autoregressive Moving Average(ARMA). Das Modell besteht aus zwei Teilen, einemautoregressive (AR) Teil und a moving average(MA) Teil. Das Modell wird dann üblicherweise als ARMA (p, q) -Modell bezeichnet, wobei p die Reihenfolge des autoregressiven Teils und q die Reihenfolge des gleitenden Durchschnittsteils ist.
Autoregressives Modell
Der AR (p) wird als autoregressives Modell der Ordnung p gelesen. Mathematisch ist es geschrieben als -
$$ X_t = c + \ sum_ {i = 1} ^ {P} \ phi_i X_ {t - i} + \ varepsilon_ {t} $$
wobei {φ 1 ,…, φ p } zu schätzende Parameter sind, c eine Konstante ist und die Zufallsvariable ε t das weiße Rauschen darstellt. Für die Werte der Parameter sind einige Einschränkungen erforderlich, damit das Modell stationär bleibt.
Gleitender Durchschnitt
Die Notation MA (q) bezieht sich auf das gleitende Durchschnittsmodell der Ordnung q -
$$ X_t = \ mu + \ varepsilon_t + \ sum_ {i = 1} ^ {q} \ theta_i \ varepsilon_ {t - i} $$
wobei θ 1 , ..., θ q die Parameter des Modells sind, μ die Erwartung von X t ist und ε t , ε t - 1 , ... weiße Rauschfehlerterme sind.
Autoregressiver gleitender Durchschnitt
Das ARMA (p, q) -Modell kombiniert p autoregressive Terme und q Terme des gleitenden Durchschnitts. Mathematisch wird das Modell mit der folgenden Formel ausgedrückt:
$$ X_t = c + \ varepsilon_t + \ sum_ {i = 1} ^ {P} \ phi_iX_ {t - 1} + \ sum_ {i = 1} ^ {q} \ theta_i \ varepsilon_ {ti} $$
Wir können sehen, dass das ARMA (p, q) -Modell eine Kombination von AR (p) - und MA (q) -Modellen ist.
Um eine gewisse Intuition des Modells zu vermitteln, ist zu berücksichtigen, dass der AR-Teil der Gleichung versucht, Parameter für X t - i- Beobachtungen von zu schätzen , um den Wert der Variablen in X t vorherzusagen . Es ist am Ende ein gewichteter Durchschnitt der vergangenen Werte. Der MA-Abschnitt verwendet den gleichen Ansatz, jedoch mit dem Fehler früherer Beobachtungen, ε t - i . Am Ende ist das Ergebnis des Modells also ein gewichteter Durchschnitt.
Das folgende Codefragment zeigt, wie ein ARMA (p, q) in R implementiert wird .
# install.packages("forecast")
library("forecast")
# Read the data
data = scan('fancy.dat')
ts_data <- ts(data, frequency = 12, start = c(1987,1))
ts_data
plot.ts(ts_data)
Das Zeichnen der Daten ist normalerweise der erste Schritt, um herauszufinden, ob die Daten eine zeitliche Struktur aufweisen. Wir können der Handlung entnehmen, dass es am Ende eines jeden Jahres starke Spitzen gibt.
Der folgende Code passt ein ARMA-Modell an die Daten an. Es werden mehrere Modellkombinationen ausgeführt und diejenige ausgewählt, die weniger Fehler aufweist.
# Fit the ARMA model
fit = auto.arima(ts_data)
summary(fit)
# Series: ts_data
# ARIMA(1,1,1)(0,1,1)[12]
# Coefficients:
# ar1 ma1 sma1
# 0.2401 -0.9013 0.7499
# s.e. 0.1427 0.0709 0.1790
#
# sigma^2 estimated as 15464184: log likelihood = -693.69
# AIC = 1395.38 AICc = 1395.98 BIC = 1404.43
# Training set error measures:
# ME RMSE MAE MPE MAPE MASE ACF1
# Training set 328.301 3615.374 2171.002 -2.481166 15.97302 0.4905797 -0.02521172