Séries temporais binárias

8

Eu tenho uma série temporal binária: temos 2160 dados (0 = não aconteceu, 1 = aconteceu) por um período de uma hora em 90 dias.

insira a descrição da imagem aqui

Quero prever depois desses 90 dias, onde o próximo 1 acontecerá, e também Estender essa provisão para o próximo mês.

amin abdolahnejad
fonte
1
Você poderia descrever seus dados com mais detalhes? Que tipo de eventos ele descreve? O que se sabe sobre o processo que gerou os dados (por exemplo, podemos esperar algum tipo de sazonalidade ou padrões)? Você poderia postar seus dados como um exemplo?
Tim
Eu tenho uma pesquisa sobre os acusados ​​em um lugar específico.
Amin abdolahnejad 17/02/16
2
Você está dizendo que deseja prever quanto tempo levará até o próximo acidente ou deseja prever como a probabilidade de um acidente mudará / não mudará no próximo período de tempo?
gung - Restabelece Monica
Você precisa nos contar mais sobre os dados e as suposições que deseja fazer. Qual é o processo subjacente? Está mudando lentamente ao longo do tempo? É estacionário? Possui memória finita?
Memming
temos um período de hora em hora, em 90 dias, para os dados de 2160.Quero prever um período de 2161 a 2880, que significou os próximos 30 dias. Quero prever quando o próximo acidente acontecerá e que nos preparamos para isso .
Amin abdolahnejad 17/02/16

Respostas:

6

XtBernoulli(pt)ptΦ1(Yt)YN(μ,Σ)Yvariável e, em seguida, use técnicas padrão de séries temporais para prever observações futuras (por exemplo, Holt-Winters). Deve ser possível codificar algo assim no Stan ou no JAGS, mas você pode não obter grandes previsões, dada a visão "sombria" que o processo de Bernoulli fornece sobre o estado latente.

Dalton Hance
fonte
1

O modelo mais simples seria regressão linear. Você pode plotar seus dados usando o 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 é o modelo mais simples, existem outros modelos não lineares que podem ajustar melhor seus dados. Além disso, lembre-se de que talvez você precise usar o registro de data para obter melhor ajuste. Em regressões não lineares, como a regressão polinomial, você pode ler muito aqui

Agora, isso exigiria análises adicionais, mas é essencial estabelecer se seus eventos são independentes. É possível que exista algum tipo de variável confusa que você talvez não considere. Convém examinar a regressão linear bayesiana (desde que você obtenha mais dimensões do que apenas tempo e valores sim / não) aqui

Zakkery
fonte
tnx para sua resposta. primeiro, quero prever hora a hora no dia seguinte, hora a hora na próxima semana e hor a hora no próximo mês.
Amin abdolahnejad 17/02/16
não pode ser linear reg.we tem código binário e modelo polinomial até grau de 7 não pode nos dar um bom ajuste. devemos nos concentrar no modelo binário.que sobre o modelo de markov? modelo de markov oculto? se tivermos a probabilidade de acidente a cada hora no próximo mês, pode ser útil.
Amin abdolahnejad 17/02/16
3
A variável de resposta é binomial. A regressão linear assume erros normais. A regressão linear também não trata de autocorrelação potencial em uma série temporal. Embora talvez seja uma aproximação útil de primeira ordem, essa não é a melhor abordagem.
Dalton Hance 17/02
1
Essa é uma boa observação. Que tal então tomar essa série cronológica, agrupar dados por hora do dia (por exemplo) e, em seguida, calcular a média? Considerando que é uma variável aleatória distribuída de forma idêntica, não devemos obter o valor esperado devido ao CLT? Não tenho certeza se isso pode ser usado como um preditor, mas certamente daria uma boa estimativa da probabilidade de um acidente ocorrer em determinada hora.
Zakkery
1
Xt=
1

Dados de acidentes? Eu começaria assumindo que há sazonalidade horária e sazonalidade diária. Sem saber o tipo de acidente, pode ser que você considere o pool de hora em hora de segunda a sexta-feira e trabalhe de hora em hora para sábado e domingo separadamente, para ter 3 pools de horas, 24 (segunda a sexta), 24 (sábado) e 24 (dom).

Pode ser possível reduzir ainda mais os dados, mas assumindo que não, basta fazer as médias. Por exemplo, a média para o domingo às 15h pode ser 0,3 (chance de 30% de um acidente). A média das 16h pode ser 0,2 e assim por diante.

A probabilidade de nenhum acidente ocorrer às 15:00 ou 16:00 seria (1-.3) (1-.2) = .56, portanto, a probabilidade de ocorrer um acidente nessas duas horas seria de 0,44 e assim por diante.

Este parece ser um bom lugar simples para começar.

zbicyclist
fonte