series_periods_detect()
Recherche les périodes les plus significatives qui existent dans une série chronologique.
Syntax
series_periods_detect(
Série,
,
min_period,
max_periodnum_periods)
Découvrez les conventions de syntaxe.
Paramètres
Nom | Type | Obligatoire | Description |
---|---|---|---|
Série | dynamic |
✔️ | Tableau de valeurs numériques, généralement la sortie résultante des opérateurs make-series ou make_list . |
min_period | real |
✔️ | Période minimale pour laquelle effectuer une recherche. |
max_period | real |
✔️ | Période maximale pendant laquelle la recherche doit être effectuée. |
num_periods | long |
✔️ | Nombre maximal de périodes requises. Ce nombre correspond à la longueur des tableaux dynamiques de sortie. |
Important
- L’algorithme peut détecter des périodes contenant au moins 4 points et au plus la moitié de la longueur de la série.
- Définissez le min_period un peu ci-dessous et max_period un peu au-dessus des périodes que vous prévoyez de trouver dans la série chronologique. Par exemple, si vous disposez d’un signal agrégé toutes les heures et que vous recherchez des périodes quotidiennes et hebdomadaires (24 et 168 heures respectivement), vous pouvez définir min_period=0,8*24, max_period=1,2*168, et laisser des marges de 20 % autour de ces périodes.
- La série chronologique d’entrée doit être régulière. Autrement dit, agrégé dans des compartiments constants, ce qui est toujours le cas s’il a été créé à l’aide de make-series. Dans le cas contraire, le résultat n’est pas significatif.
Retours
La fonction génère une table avec deux colonnes :
- periods : tableau dynamique contenant les points qui ont été trouvés, en unités de la taille du bac, classés en fonction de leurs scores.
- scores : tableau dynamique contenant des valeurs comprises entre 0 et 1. Chaque tableau mesure l’importance d’une période dans sa position respective dans le tableau de périodes .
Exemple
La requête suivante incorpore un instantané d’un mois du trafic d’une application, agrégé deux fois par jour. La taille du bac est de 12 heures.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| render linechart
En cours d’exécution series_periods_detect()
sur cette série, résultats dans la période hebdomadaire, long de 14 points.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| project series_periods_detect(y, 0.0, 50.0, 2)
Sortie
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14.0, 0.0] | [0.84, 0.0] |
Notes
La période quotidienne qui peut également être observée dans le graphique n’a pas été trouvée, car l’échantillonnage est trop grossière (taille de bac de 12h), de sorte qu’une période quotidienne de 2 bacs est inférieure à la taille minimale de période de 4 points, requise par l’algorithme.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour