Sto cercando di fare analisi delle serie storiche e sono nuovo in questo campo. Ho un conteggio giornaliero di un evento dal 2006 al 2009 e voglio adattarlo ad un modello di serie storica. Ecco i progressi che ho fatto:
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
plot.ts(timeSeriesObj)
La trama risultante che ottengo è:
Al fine di verificare se vi è stagionalità e tendenza nei dati o meno, seguo i passaggi indicati in questo post :
ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal
e nel blog di Rob J Hyndman :
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)
Entrambi i casi indicano che non c'è stagionalità.
Quando traccio ACF e PACF della serie, ecco cosa ottengo:
Le mie domande sono:
È questo il modo di gestire i dati delle serie temporali quotidiane? Questa pagina suggerisce che dovrei esaminare i modelli settimanali e annuali, ma l'approccio non mi è chiaro.
Non so come procedere una volta che ho i grafici ACF e PACF.
Posso semplicemente usare la funzione auto.arima?
fit <- arima (myts, order = c (p, d, q)
***** Risultati Auto.Arima aggiornati ******
Quando cambio la frequenza dei dati su 7 secondo i commenti di Rob Hyndman qui , auto.arima seleziona un modello ARIMA stagionale e produce:
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
****** Controllo della stagionalità aggiornato ******
Quando provo la stagionalità con la frequenza 7, produce True ma con la stagionalità 365,25, produce false. È abbastanza per concludere una mancanza di stagionalità annuale?
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=7)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
ritorna:
True
mentre
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
ritorna:
False
R
semplice non ha la capacità di gestirla. Vorrei cercare soluzioni commerciali in caso di costi di inventario / produzione elevati per il prodotto che si sta tentando di prevedere. R
presenta gravi limitazioni per le attività di previsione come la tua. Guarda le domande sulle previsioni giornaliere dove in questo sito.
str(x)
produce?