Ich versuche eine Zeitreihenanalyse durchzuführen und bin neu in diesem Bereich. Ich habe eine tägliche Zählung eines Ereignisses von 2006-2009 und möchte ein Zeitreihenmodell dazu passen. Hier sind die Fortschritte, die ich gemacht habe:
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
plot.ts(timeSeriesObj)
Das resultierende Diagramm, das ich erhalte, ist:
Um zu überprüfen, ob Saisonalität und Trend in den Daten vorhanden sind oder nicht, folge ich den in diesem Beitrag genannten Schritten :
ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal
und in Rob J Hyndmans Blog :
library(fma)
fit1 <- ets(x)
fit2 <- ets(x,model="ANN")
deviance <- 2*c(logLik(fit1) - logLik(fit2))
df <- attributes(logLik(fit1))$df - attributes(logLik(fit2))$df
#P value
1-pchisq(deviance,df)
Beide Fälle weisen darauf hin, dass es keine Saisonalität gibt.
Wenn ich die ACF & PACF der Serie zeichne, bekomme ich Folgendes:
Meine Fragen sind:
Ist dies die Art und Weise, mit täglichen Zeitreihendaten umzugehen? Diese Seite schlägt vor, dass ich sowohl die wöchentlichen als auch die jährlichen Muster betrachten sollte, aber der Ansatz ist mir nicht klar.
Ich weiß nicht, wie ich vorgehen soll, wenn ich die ACF- und PACF-Diagramme habe.
Kann ich einfach die auto.arima Funktion benutzen?
fit <- arima (myts, order = c (p, d, q)
***** Aktualisiert Auto.Arima Ergebnisse ******
Wenn ich die Häufigkeit der Daten gemäß Rob Hyndmans Kommentaren hier auf 7 ändere, wählt auto.arima ein saisonales ARIMA-Modell aus und gibt Folgendes aus:
Series: timeSeriesObj
ARIMA(1,1,2)(1,0,1)[7]
Coefficients:
ar1 ma1 ma2 sar1 sma1
0.89 -1.7877 0.7892 0.9870 -0.9278
s.e. NaN NaN NaN 0.0061 0.0162
sigma^2 estimated as 21.72: log likelihood=-4319.23
AIC=8650.46 AICc=8650.52 BIC=8682.18
****** Saisonalitätsprüfung aktualisiert ******
Wenn ich die Saisonalität mit der Frequenz 7 teste, wird True ausgegeben, aber mit der Saisonalität 365.25 wird false ausgegeben. Reicht dies aus, um auf einen Mangel an Jahreszeitlichkeit zu schließen?
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=7)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
kehrt zurück:
True
während
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
kehrt zurück:
False
R
simple nicht. Ich würde nach kommerziellen Lösungen suchen, wenn für das Produkt, das Sie prognostizieren möchten, hohe Lager- / Herstellungskosten anfallen. R
hat schwerwiegende Einschränkungen für Prognoseaufgaben wie Ihre. Fragen zur täglichen Vorhersage finden Sie auf dieser Website.
str(x)
?