Estoy tratando de hacer análisis de series de tiempo y soy nuevo en este campo. Tengo un recuento diario de un evento del 2006 al 2009 y quiero ajustarle un modelo de serie temporal. Aquí está el progreso que he hecho:
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
plot.ts(timeSeriesObj)
La trama resultante que obtengo es:
Para verificar si hay estacionalidad y tendencia en los datos o no, sigo los pasos mencionados en esta publicación :
ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal
y en el blog de 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)
Ambos casos indican que no hay estacionalidad.
Cuando trazo el ACF y el PACF de la serie, esto es lo que obtengo:
Mis preguntas son:
¿Es esta la forma de manejar datos diarios de series temporales? Esta página sugiere que debería mirar tanto los patrones semanales como los anuales, pero el enfoque no me resulta claro.
No sé cómo proceder una vez que tengo las parcelas ACF y PACF.
¿Puedo simplemente usar la función auto.arima?
ajuste <- arima (myts, orden = c (p, d, q)
***** Resultados de Auto.Arima actualizados ******
Cuando cambio la frecuencia de los datos a 7 de acuerdo con los comentarios de Rob Hyndman aquí , auto.arima selecciona un modelo ARIMA estacional y genera:
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
****** Actualización de estacionalidad ******
Cuando pruebo la estacionalidad con frecuencia 7, da como resultado True pero con la estacionalidad 365.25, da como resultado false. ¿Es esto suficiente para concluir la falta de estacionalidad anual?
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=7)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
devoluciones:
True
mientras
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
devoluciones:
False
R
simple no tiene la capacidad de manejarlo. Buscaría soluciones comerciales si hay un alto costo de inventario / fabricación involucrado para el producto que está tratando de pronosticar. R
tiene limitaciones severas para pronosticar tareas como la suya. Mire las preguntas sobre el pronóstico diario en otro lugar de este sitio.
str(x)
produce?