Régression logistique des séries chronologiques

21

Je voudrais utiliser un modèle de régression logistique binaire dans le contexte des données en streaming (séries temporelles multidimensionnelles) afin de prédire la valeur de la variable dépendante des données (ie ligne) qui vient d'arriver, compte tenu des observations passées. Pour autant que je sache, la régression logistique est traditionnellement utilisée pour l'analyse post-mortem, où chaque variable dépendante a déjà été fixée (soit par inspection, soit par la nature de l'étude).

Que se passe-t-il dans le cas des séries chronologiques, où nous voulons faire des prédictions (à la volée) sur la variable dépendante en termes de données historiques (par exemple dans une fenêtre temporelle des dernières secondes) et, bien sûr, la précédente estimations de la variable dépendante?t

Et si vous voyez le système ci-dessus au fil du temps, comment devrait-il être construit pour que la régression fonctionne? Faut-il d'abord l'entraîner en étiquetant, disons, les 50 premières lignes de nos données (c'est-à-dire en fixant la variable dépendante à 0 ou 1), puis utiliser l'estimation actuelle du vecteur pour estimer la nouvelle probabilité de la variable dépendante étant 0 ou 1 pour les données qui viennent d'arriver (c'est-à-dire la nouvelle ligne qui vient d'être ajoutée au système)?β

Pour clarifier mon problème, j'essaie de construire un système qui analyse un ensemble de données ligne par ligne et essaie de faire la prédiction d'un résultat binaire (variable dépendante), étant donné la connaissance (observation ou estimation) de toutes les dépendances ou explications précédentes variables qui sont arrivées dans une fenêtre de temps fixe. Mon système est dans Rerl et utilise R pour l'inférence.

Regressor
la source
5
pouvez-vous assumer une structure de corrélation sur vos données? Votre cas est un cas particulier de GLMM avec lien logit, mais la structure de corrélation dans les données de série chronologique doit être modélisée correctement pour obtenir une réponse raisonnable.
suncoolsu
1
quand vous dites des séries , aurait une sorte de relation avec . Ou peut-il être supposé indépendant? ytyt1
suncoolsu
2
pourriez-vous s'il vous plaît donner une description concise de vos données pour que je donne une solution concrète? votre problème peut être résolu quelque chose comme ceci stat.ethz.ch/pipermail/r-sig-mixed-models/2010q4/004530.html
suncoolsu
2
J'ai une série chronologique de trafic réseau de la forme suivante: Protocole, SrcIP SrcPort, DestIP, DestPort, TimeSec, Timeusec, PackLength TCP, 200.80.199.105,3523,207.216.233.144,9658,11223344,941818,62 UDP, 142.144.155.120 , 1751,244.72.151.2,1935, 11223344,941843,60 Je veux estimer si un paquet (ou un groupe de paquets) est malveillant en utilisant les connaissances des ensembles de données étiquetés pour construire un modèle auto-formé. La moyenne dont je parlais est appliquée aux mesures ci-dessus afin de donner un niveau d'agrégation et de rendre le système plus pratique pour le trafic à volume élevé.
Regressor
2
Cela ressemble vraiment à un travail pour une machine à vecteurs de support. Suis-je en train de manquer quelque chose? Si vous êtes vraiment préoccupé par l'autocorrélation ou la structure des séries chronologiques de vos données, vous pouvez essayer ARIMA et / ou un modèle longitudinal à plusieurs niveaux. Sur les modèles longitudinaux, je recommande Willet and Singer's Applied Longitudinal Data Analysis , pour lequel le site UCLA ATS a des exemples de code R.
ashaw

Réponses:

6

Il y a deux méthodes à considérer:

  1. Utilisez uniquement les N derniers échantillons d'entrée. En supposant que votre signal d'entrée est de dimension D, alors vous avez N * D échantillons par étiquette de vérité au sol. De cette façon, vous pouvez vous entraîner en utilisant n'importe quel classificateur que vous aimez, y compris la régression logistique. De cette façon, chaque sortie est considérée comme indépendante de toutes les autres sorties.

  2. Utilisez les N derniers échantillons d'entrée et les N dernières sorties que vous avez générées. Le problème est alors similaire au décodage viterbi . Vous pouvez générer un score non binaire basé sur les échantillons d'entrée et combiner le score de plusieurs échantillons à l'aide d'un décodeur viterbi. C'est mieux que la méthode 1. si vous avez maintenant quelque chose sur la relation temporelle entre les sorties.

Mr. White
la source