Estoy intentando hacer un análisis de series temporales y soy nuevo en este campo. Tengo el recuento diario de un evento de 2006-2009 y quiero ajustar un modelo de serie temporal a él. 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 este Correo electrónico: :
ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal
y en la de Rob J Hyndman 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)
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 los datos de las series temporales diarias? Este página sugiere que debería mirar tanto los patrones semanales como los anuales, pero el enfoque no está claro para mí.
-
No sé cómo proceder una vez que tenga las parcelas ACF y PACF.
-
¿Puedo utilizar simplemente la función auto.arima?
fit <- arima(myts, order=c(p, d, q)
*****Resultados actualizados de Auto.Arima******
Cuando cambio la frecuencia de los datos a 7 según los comentarios de Rob Hyndman aquí auto.arima selecciona un modelo ARIMA estacional y los resultados:
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
******Comprobación de estacionalidad actualizada******
Cuando compruebo la estacionalidad con la 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 que
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
devoluciones:
False
0 votos
Qué salida tiene
str(x)
¿Rendir?0 votos
Da como resultado num [1:1460] 17 12 12 17 13 14 14 5 12 21 ...
0 votos
¿Podría publicar los datos?
0 votos
Por desgracia, no puedo.
3 votos
De acuerdo, yo me basaría en la inspección visual y en el conocimiento del dominio además de las pruebas estadísticas para detectar la estacionalidad. En cuanto a tu pregunta sobre si arima puede manejar la estacionalidad múltiple, claro que ARIMA puede manejar cualquier tipo de estacionalidad,
R
simple no tiene la capacidad de manejarlo. Yo buscaría soluciones comerciales si hay un alto costo de inventario/fabricación para el producto que está tratando de pronosticar.R
tiene graves limitaciones para una tarea de previsión como la suya. Mira las preguntas sobre la previsión diaria en otro lugar de este sitio.0 votos
Escale los datos (es decir, divida todos los valores por 0,471) y ahora tiene una nueva serie temporal que puede publicar. El modelo, en esencia, será idéntico para ambos conjuntos de datos, aparte del mismo cambio de escala en los coeficientes.
0 votos
@forecaster: ¡Muchas gracias! Sí, he mirado el enlace sugerido por IrishStat más abajo. También he comprobado el documento de AT&T.
0 votos
@TomReilly : Desgraciadamente, no puedo publicar los datos ni siquiera después de escalarlos. Sin embargo, gracias por la sugerencia.