Thursday 19 January 2017

Moyenne Mobile Irrégulière

Im essayant de creuser dehors quelques mesures qui regardent comment les clients fiables se relient à un service. Les données brutes sont sous la forme de client A, est venu hors ligne à l'heure X. La connexion est très peu fiable, et je veux un certain type de moyenne mobile pour montrer si la connexion s'améliore ou pas au fil du temps. Les clients ne sont pas toujours connectés, de sorte simplement aller hors ligne ne signifie pas son un défaut. Jusqu'à présent, j'ai pris les données puis appliqué quelques hypothèses pour aider à simplifier, je suppose que si un client se reconnecte dans une minute de déconnexion, alors c'est une faute. Ces Ive modélisé comme un simple impluses, c'est à dire. Client A avait une faute au temps X. La partie Im luttant avec est de savoir comment transformer ce complot en une moyenne mobile (Im jouer avec R pour crunch les nombres). Je crois que je devrais être capable de le faire avec un filtre passe-bas, ou utiliser le paquet zoo et rollmean. Cependant, je ne sais pas comment gérer les cas où le client ne voulait tout simplement pas être en ligne. Moyennes mobiles exponentielles pour les séries chronologiques irrégulières Dans l'analyse des séries chronologiques, il est souvent nécessaire de lisser les fonctions qui réagissent rapidement aux changements du signal. Dans l'application typique, vous pouvez traiter un signal d'entrée en temps réel, et voulez calculer des choses telles que la valeur moyenne récente, ou obtenir une pente instantanée pour elle. Mais les signaux du monde réel sont souvent bruyants. Quelques échantillons bruyants rendent la valeur actuelle du signal, ou sa pente, très variable. Moyennes mobiles La fonction de lissage la plus simple est une moyenne mobile en fenêtres. À mesure que les échantillons arrivent, vous prenez une moyenne des valeurs N les plus récentes. Cela va lisser les pointes, mais introduit un délai 8211 ou de latence. Votre moyenne sera toujours retardée par la largeur de votre moyenne mobile. L'exemple ci-dessus est relativement coûteux à calculer. Pour chaque échantillon, vous devez itérer sur la taille entière de la fenêtre. Mais il existe des moyens moins coûteux de garder la somme de tous les échantillons dans la fenêtre dans un tampon et d'ajuster la somme à mesure que de nouveaux échantillons entrent en jeu. Un autre type de moyenne mobile est la moyenne mobile pondérée 8222 qui pondère pour chaque position dans la fenêtre d'échantillon. Avant de calculer la moyenne, multipliez chaque échantillon par le poids de cette position de fenêtre. Techniquement, cela s'appelle une 8220convolution8221. Une fonction de pondération typique applique une courbe en cloche à la fenêtre d'échantillon. Cela donne un signal qui est plus accordé au centre de la fenêtre, et encore un peu tolérant des échantillons bruyants. Dans l'analyse financière, vous utilisez souvent une fonction de pondération qui valorise les échantillons récents plus, pour donner une moyenne mobile qui suit plus étroitement les échantillons récents. Les échantillons plus âgés reçoivent progressivement moins de poids. Cela atténue un peu les effets de latence tout en donnant un lissage raisonnablement bon: Avec une moyenne pondérée, vous devez toujours itérer sur la taille de la fenêtre entière pour chaque échantillon (à moins que vous ne puissiez contraindre les poids autorisés à certaines fonctions). La moyenne mobile exponentielle Un autre type de moyenne est la moyenne mobile exponentielle, ou EMA. Cela est souvent utilisé lorsque la latence est critique, comme dans l'analyse financière en temps réel. Dans cette moyenne, les poids diminuent exponentiellement. Chaque échantillon est évalué en pourcentage inférieur au prochain échantillon le plus récent. Avec cette contrainte, vous pouvez calculer la moyenne mobile très efficacement. Où alpha est une constante qui décrit comment les poids des fenêtres diminuent au fil du temps. Par exemple, si chaque échantillon devait être pondéré à 80% de la valeur de l'échantillon précédent, vous devez définir l'alpha 0.2. Le plus petit alpha devient le plus votre moyenne mobile est. (Par exemple, il devient plus lisse, mais moins réactif à de nouveaux échantillons). Les poids pour un EMA avec alpha0.20 Comme vous pouvez le voir, pour chaque nouvel échantillon, vous n'avez qu'à le faire en moyenne avec la valeur de la moyenne précédente. Donc le calcul est très très rapide. En théorie, tous les échantillons précédents contribuent à la moyenne actuelle, mais leur contribution devient de façon exponentielle plus petite au fil du temps. C'est une technique très puissante, et probablement la meilleure si vous voulez obtenir une moyenne mobile qui répond rapidement à de nouveaux échantillons, a de bonnes propriétés de lissage et est rapide à calculer. Le code est trivial: EMA pour Irregular Time Series L'EMA standard est très bien lorsque le signal est échantillonné à des intervalles de temps réguliers. Mais que faire si vos échantillons viennent à intervalles irréguliers Imaginez un signal continu qui est échantillonné à intervalles irréguliers. C'est la situation habituelle dans l'analyse financière. En théorie, il ya une fonction continue pour la valeur de tout instrument financier, mais vous ne pouvez échantillonner ce signal chaque fois que quelqu'un exécute réellement un métier. Donc, votre flux de données se compose d'une valeur, plus l'heure à laquelle il a été observé. Une façon de traiter cela est de convertir le signal irrégulier en un signal régulier, en interpolant entre les observations et le rééchantillonnage. Mais cela perd des données, et il réintroduit la latence. Il est possible de calculer directement une EMA pour une série temporelle irrégulière: Dans cette fonction, vous passez l'échantillon actuel à partir de votre signal, et l'échantillon précédent, et le temps écoulé entre les deux, et la valeur précédente retournée par cette fonction. Alors, comment ce travail a-t-il généré une onde sinusoïdale, puis l'a échantillonné à intervalles irréguliers, et a introduit environ 20 bruit. C'est le signal variera aléatoirement - 20 à partir du signal sinusoïdal original 8220true8221. Comment la moyenne mobile exponentielle irrégulière récupère-t-elle le signal? La ligne rouge est l'onde sinusoïdale d'origine 8211 échantillonnée à intervalles irréguliers. La ligne bleue est le signal avec le bruit ajouté. La ligne bleue est le seul signal que l'EMA voit. La ligne verte est l'EMA lissée. Vous pouvez le voir récupère assez bien le signal. Un peu vacillant, mais que pouvez-vous attendre d'un tel signal source bruyante? Il est décalé d'environ 15 vers la droite, parce que l'EMA ne introduire une certaine latence. Le plus lisse que vous voulez, plus la latence que vous verrez. Mais à partir de cela, vous pouvez par exemple calculer une pente instantanée pour un signal irrégulier bruyant. Que pouvez-vous faire avec ce Hmm8230. Ressources:


No comments:

Post a Comment