Séries chronologiques binaires

8

J'ai une série chronologique binaire: nous avons 2160 données (0 = ne s'est pas produit, 1 = s'est produit) pour une période d'une heure en 90 jours.

entrez la description de l'image ici

Je veux prévoir après ces 90 jours, où le prochain 1 se produira, et également étendre cette disposition pour un mois prochain.

amin abdolahnejad
la source
1
Pourriez-vous décrire vos données plus en détail? Quel genre d'événements décrit-il? Que sait-on du processus qui a généré les données (par exemple, pourrions-nous nous attendre à une sorte de saisonnalité ou de modèles)? Pourriez-vous publier vos données à titre d'exemple?
Tim
j'ai une recherche sur les acciedents dans un endroit spécifique.1 est que nous avons un accident dans un intervalle d'une heure, et 0 sinon. nous voulons prédire les prochains accidents.
amin abdolahnejad
2
Êtes-vous en train de dire que vous voulez prévoir combien de temps il faudra avant le prochain accident, ou vous voulez prévoir comment la probabilité d'un accident va changer / ne pas changer au cours de la prochaine période de temps?
gung - Rétablir Monica
Vous devez nous en dire plus sur les données et les hypothèses que vous êtes prêt à faire. Quel est le processus sous-jacent? Change-t-il lentement au fil du temps? Est-ce stationnaire? A-t-il une mémoire finie?
Memming
nous avons une période d'heure en heure sur 90 jours avec 2160 données. .
amin abdolahnejad

Réponses:

6

Une approche pourrait être de supposer que la séquence de Bernoulli peut être décrite par une variable aléatoire normale latente utilisant la transformation Probit. C'est votre où et . De cette façon, vous pouvez placer la structure de séries chronologiques (par exemple ARIMA) que vous souhaitez sur votre variable , puis utiliser des techniques de séries chronologiques standard pour prédire les observations futures (par exemple Holt-Winters). Il devrait être possible de coder quelque chose comme ça dans Stan ou JAGS, mais vous pourriez ne pas obtenir de grandes prédictions étant donné la vue "sombre" du processus de Bernoulli sur l'état latent.XtBernoulli(pt)ptΦ1(Yt)YN(μ,Σ)Y

Dalton Hance
la source
1

Le modèle le plus simple serait la régression linéaire. Vous pouvez tracer vos données à l'aide de 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")

Il s'agit du modèle le plus simple, il existe d'autres modèles non linéaires qui pourraient mieux s'adapter à vos données. Gardez également à l'esprit que vous devrez peut-être utiliser le journal de date pour obtenir un meilleur ajustement. Sur les régressions non linéaires telles que la régression polynomiale, vous pouvez lire beaucoup ici

Maintenant, cela nécessiterait une analyse supplémentaire, mais il est essentiel de déterminer si vos événements sont indépendants. Il est possible qu'il existe une sorte de variable de confusion que vous pourriez ne pas prendre en compte. Vous voudrez peut-être examiner la régression linéaire bayésienne (étant donné que vous obtenez plus de dimensions que le temps et des valeurs oui / non) ici

Zakkery
la source
tnx pour votre answer.first je veux prédire heure par heure pour le lendemain, heure par heure pour la semaine prochaine et hor par heure pour le mois prochain.
amin abdolahnejad
il ne peut pas être linéaire rég. nous avons le code binaire et le modèle polynomial jusqu'à ce que le degré de 7 ne nous donne pas un bon ajustement. nous devrions nous concentrer sur le modèle binaire. Qu'en est-il du modèle de Markov? Modèle de Markov caché? si nous avons la probabilité d'accident dans chaque heure le mois prochain, cela peut être utile.
amin abdolahnejad
3
La variable de réponse est binomiale. La régression linéaire suppose des erreurs normales. La régression linéaire n'aborde pas non plus l'autocorrélation potentielle dans une série chronologique. Bien qu'il s'agisse peut-être d'une approximation utile de premier ordre, ce n'est pas la meilleure approche.
Dalton Hance
1
C'est une bonne remarque. Que diriez-vous alors de prendre cette série chronologique, de regrouper les données par heure de la journée (par exemple), puis d'en prendre la moyenne? Étant donné qu'il s'agit d'une variable aléatoire à distribution identique, ne devrions-nous pas obtenir la valeur attendue, en raison du CLT? Je ne sais pas si cela peut être utilisé comme prédicteur, mais cela donnerait certainement une bonne estimation de la probabilité qu'un accident se produise à une heure donnée.
Zakkery
1
Je suppose que si vous pensez que les données sont décrites périodiquement selon l'heure de la journée, cette approche pourrait fonctionner. Par exemple, si les données étaient quelque chose comme 1 si je prends un repas (petit déjeuner, déjeuner ou dîner) et 0 sinon. Mais cela ne semble pas être le cas dans l'intrigue. Il n'y a pas beaucoup de preuves de périodicité, mais il y a plutôt de longues étendues de 1 suivies de 1 (blocs de bleu) et de longues étendues de 0 suivies de 0. Xt=
Dalton Hance
1

Données d'accident? Je commencerais par supposer qu'il y a une saisonnalité horaire et une saisonnalité quotidienne. Sans connaître le type d'accident, il se peut que vous puissiez regarder la mise en commun horaire du lundi au vendredi, et gérer séparément les heures du samedi et du dimanche, de sorte que vous disposez de 3 groupes d'heures, 24 (lun-ven), 24 (sam) et 24 (dim).

Une réduction supplémentaire des données pourrait être possible, mais en supposant que non, il suffit de prendre les moyennes. Par exemple, la moyenne du dimanche à 15 h pourrait être de 0,3 (30% de chances d'accident). La moyenne pour 16 heures pourrait être de 0,2, et ainsi de suite.

La probabilité qu'aucun accident ne se produise dans 15 heures ou 16 heures serait (1-.3) (1-.2) = .56, donc la probabilité d'avoir un accident dans ces deux heures serait de 0,44, et ainsi de suite.

Cela semble être un bon point de départ simple.

zbicycliste
la source