Soy bastante nuevo en R. He intentado leer sobre análisis de series de tiempo y ya he terminado
- Análisis de series de tiempo de Shumway y Stoffer y sus aplicaciones 3ra Edición ,
- Excelente pronóstico de Hyndman : principios y práctica
- El uso de R de Avril Coghlan para el análisis de series temporales
- A. Ian McLeod et al Análisis de series de tiempo con R
- Análisis de series de tiempo aplicadas del Dr. Marcel Dettling
Editar: no estoy seguro de cómo manejar esto, pero encontré un recurso útil fuera de Cross Validated. Quería incluirlo aquí en caso de que alguien se tope con esta pregunta.
Tengo una serie temporal univariada de la cantidad de artículos consumidos (datos de conteo) medidos diariamente durante 7 años. Se aplicó una intervención a la población de estudio aproximadamente a la mitad de la serie temporal. No se espera que esta intervención produzca un efecto inmediato y el momento del inicio del efecto es esencialmente incognoscible.
Usando el forecast
paquete de Hyndman, he ajustado un modelo ARIMA a los datos previos a la intervención auto.arima()
. Pero no estoy seguro de cómo usar este ajuste para responder si ha habido un cambio estadísticamente significativo en la tendencia y cuantificar la cantidad.
# for simplification I will aggregate to monthly counts
# I can later generalize any teachings the community supplies
count <- c(2464, 2683, 2426, 2258, 1950, 1548, 1108, 991, 1616, 1809, 1688, 2168, 2226, 2379, 2211, 1925, 1998, 1740, 1305, 924, 1487, 1792, 1485, 1701, 1962, 2896, 2862, 2051, 1776, 1358, 1110, 939, 1446, 1550, 1809, 2370, 2401, 2641, 2301, 1902, 2056, 1798, 1198, 994, 1507, 1604, 1761, 2080, 2069, 2279, 2290, 1758, 1850, 1598, 1032, 916, 1428, 1708, 2067, 2626, 2194, 2046, 1905, 1712, 1672, 1473, 1052, 874, 1358, 1694, 1875, 2220, 2141, 2129, 1920, 1595, 1445, 1308, 1039, 828, 1724, 2045, 1715, 1840)
# for explanatory purposes
# month <- rep(month.name, 7)
# year <- 1999:2005
ts <- ts(count, start(1999, 1))
train_month <- window(ts, start=c(1999,1), end = c(2001,1))
require(forecast)
arima_train <- auto.arima(train_month)
fit_month <- Arima(train_month, order = c(2,0,0), seasonal = c(1,1,0), lambda = 0)
plot(forecast(fit_month, 36)); lines(ts, col="red")
¿Hay algún recurso que se ocupe específicamente del análisis de series temporales interrumpidas en R? Encontré esto relacionado con ITS en SPSS pero no he podido traducir esto a R.
fuente
Respuestas:
Esto se conoce como análisis de punto de cambio. El paquete R
changepoint
puede hacer esto por usted: consulte la documentación aquí (incluidas las referencias a la literatura): http://www.lancs.ac.uk/~killick/Pub/KillickEckley2011.pdffuente
Sugeriría un modelo jerárquico de medidas repetidas. Este método debería proporcionar resultados sólidos, ya que cada individuo actuará como su propio control. Intente revisar este enlace de UCLA.
fuente
Para un enfoque bayesiano, puede usar
mcp
para ajustar un modelo de Poisson o Binomial (porque tiene recuentos de períodos de intervalo fijo) con autorregresión aplicada a los residuos (en el espacio logarítmico). Luego compare un modelo de dos segmentos con un modelo de un segmento utilizando validación cruzada.Antes de comenzar, tenga en cuenta que para este conjunto de datos, este modelo no se ajusta bien y la validación cruzada parece inestable. Por lo tanto, me abstendría de usar lo siguiente en escenarios de alto riesgo, pero ilustra un enfoque general:
Para el presente conjunto de datos, esto da como resultado
Es decir, una
elpd_diff/se_diff
relación de alrededor de 7 a favor del modelo nulo (sin cambios). Las posibles mejoras incluyen:sin()
ocos()
.prior = list(cp_1 = dnorm(1999.8, 0.5)
.Obtenga más información sobre el modelado de autorregresión, la comparación de modelos y la configuración previa del
mcp
sitio web . Divulgación: soy el desarrollador demcp
.fuente