Series de tiempo binario

8

Tengo una serie temporal binaria: tenemos 2160 datos (0 = no sucedió, 1 = sucedió) por un período de una hora en 90 días.

ingrese la descripción de la imagen aquí

Quiero pronosticar después de estos 90 días, dónde ocurrirá el próximo 1, y también extender esta disposición para el próximo mes.

amin abdolahnejad
fuente
1
¿Podría describir sus datos con mayor detalle? ¿Qué tipo de eventos describe? ¿Qué se sabe sobre el proceso que generó los datos (por ejemplo, podríamos esperar algún tipo de estacionalidad o patrones)? ¿Podría publicar sus datos como ejemplo?
Tim
Tengo una investigación sobre los participantes en un lugar específico. 1 es que tenemos un accidente en un intervalo de una hora y 0 en caso contrario. Queremos predecir los próximos accidentes.
amin abdolahnejad
2
¿Está diciendo que desea pronosticar cuánto tiempo pasará hasta el próximo accidente, o desea pronosticar cómo cambiará / no cambiará la probabilidad de un accidente durante el próximo período de tiempo?
gung - Restablece a Monica
Debe contarnos más sobre los datos y las suposiciones que está dispuesto a hacer. ¿Cuál es el proceso subyacente? ¿Está cambiando lentamente con el tiempo? ¿Es estacionario? ¿Tiene memoria finita?
Memming
tenemos un período de hora por hora en 90 días que data de 2160. Quiero predecir el período de 2161 a 2880 hora por hora que significó los próximos 30 días. Quiero pronosticar cuándo ocurrirá el próximo accidente que nos hemos preparado para ello. .
amin abdolahnejad

Respuestas:

6

Un enfoque podría ser suponer que la secuencia de Bernoulli puede describirse mediante una variable aleatoria normal latente utilizando la transformación Probit. Esa es su donde e . De esta manera, puede colocar cualquier estructura de series de tiempo (por ejemplo, ARIMA) que desee en su variable y luego usar técnicas estándar de series de tiempo para predecir observaciones futuras (por ejemplo, Holt-Winters). Debería ser posible codificar algo como esto en Stan o JAGS, pero es posible que no obtenga grandes predicciones dada la visión "oscura del vidrio" que el proceso de Bernoulli le brinda sobre el estado latente.XtBernoulli(pt)ptΦ1(Yt)YN(μ,Σ)Y

Dalton Hance
fuente
1

El modelo más simple sería una regresión lineal. Puede trazar sus datos usando ggplot:

#for reproducing
set.seed(200)
#simple example. Assume your data is simple binomial variable with probability 0.3
data <- data.frame(time = 1:200, val=sample(c(0,1), size = 200, replace = T, prob = c(0.3, 0.7)))

#plot using ggplot and add linear regression and confidence interval
ggplot(data, aes(x = time, y=val)) + geom_smooth(method=lm) +geom_point()

#Now we can try to create linear regression
y = data$time
    x = data$val
fitData <- lm(x ~ y)
predict(fitData, newdata = data.frame(y=201:224), interval="confidence")

Este es el modelo más simple, hay otros modelos no lineales que podrían ajustarse mejor a sus datos. Además, tenga en cuenta que es posible que tenga que usar el registro de fecha para estar mejor en forma. En regresiones no lineales como la regresión polinómica, puede leer mucho aquí

Ahora, requeriría un análisis adicional, pero es esencial establecer si sus eventos son independientes. Es posible que exista algún tipo de variable de confusión que no tenga en cuenta. Es posible que desee analizar la regresión lineal bayesiana (dado que obtiene más dimensiones que solo el tiempo y los valores sí / no) aquí

Zakkery
fuente
TNX para su respuesta. Primero quiero predecir hora por hora para el día siguiente, hora por hora para la próxima semana y hor por hora para el próximo mes.
amin abdolahnejad
no puede ser un registro lineal. tenemos un código binario y un modelo polinómico hasta que el grado de 7 no puede darnos un buen ajuste. Deberíamos centrarnos en el modelo binario. ¿Qué pasa con el modelo de Markov? ¿El modelo de Markov oculto? en el próximo mes, puede ser útil.
amin abdolahnejad
3
La variable de respuesta es binomial. La regresión lineal supone errores normales. La regresión lineal tampoco aborda la autocorrelación potencial en una serie de tiempo. Aunque quizás sea una aproximación útil de primer orden, este no es el mejor enfoque.
Dalton Hance
1
Ese es un buen comentario. ¿Qué tal si tomamos esa serie de tiempo, agrupamos los datos por hora del día (por ejemplo) y luego tomamos el promedio? Teniendo en cuenta que es una variable aleatoria distribuida de forma idéntica, ¿no deberíamos obtener el valor esperado, debido a CLT? No estoy seguro de si eso puede usarse como un predictor, pero ciertamente daría una buena estimación de la probabilidad de que ocurra un accidente a una hora en particular.
Zakkery
1
Supongo que si cree que hay un patrón periódico en los datos que se describe por hora del día, entonces ese enfoque podría funcionar. Por ejemplo, si los datos son algo así como 1 si estoy (desayuno, almuerzo o cena), y 0 en caso contrario. Pero eso no parece ser el caso de la trama. No hay mucha evidencia de periodicidad, sino que hay largos tramos de 1 seguidos de 1 (bloques de azul) y largos tramos de 0 seguidos de 0. Xt=
Dalton Hance
1

Datos de accidentes? Comenzaría asumiendo que hay estacionalidad horaria y estacionalidad diaria. Sin saber el tipo de accidente, es posible que pueda ver la agrupación por hora de lunes a viernes y manejar por hora los sábados y domingos por separado, por lo que tiene 3 grupos de horas, 24 (lunes a viernes), 24 (sábado) y 24 (sol).

Podría ser posible una mayor reducción de datos, pero suponiendo que no, solo tome los promedios. Por ejemplo, el promedio para el domingo a las 3 p.m. podría ser .3 (30% de probabilidad de un accidente). El promedio para las 4pm puede ser .2, y así sucesivamente.

La probabilidad de que no ocurra un accidente en 3pm o 4pm sería (1-.3) (1-.2) = .56, por lo que la probabilidad de tener un accidente en estas dos horas sería de .44, y así sucesivamente.

Este parece ser un buen y simple lugar para comenzar.

zbicyclist
fuente