Agrégation de séries chronologiques (Exploration des modèles spatio-temporels)

Synthèse

Cet outil partitionne une collection de séries chronologiques, stockées dans un cube spatio-temporel, en fonction de la similarité de leurs caractéristiques. Les séries chronologiques peuvent être agrégées en fonction de trois critères : disposer de valeurs similaires dans le temps, tendance à augmenter et diminuer simultanément et disposer de motifs se répétant similaires. La sortie de cet outil est un affichage cartographique 2D de chaque emplacement dans le cube symbolisé par des messages et une appartenance à un agrégat. Cette sortie contient également des diagrammes présentant des informations sur la caractéristique représentative des séries chronologiques de chaque agrégat.

En savoir plus sur le fonctionnement de l'outil Agrégation de séries chronologiques

Illustration

Agrégation de séries chronologiques

Utilisation

  • Cet outil accepte les fichiers netCDF créés par les outils Créer un cube spatio-temporel en agrégeant des points, Créer un cube spatio-temporel à partir d’entités définies et Créer un cube spatio-temporel à partir d’une couche raster multidimensionnelle.

  • Cet outil compare la série chronologique de chaque emplacement à tous les autres emplacements du cube spatio-temporel en entrée (champ Input Space Time Cube) et les séries chronologiques sont agrégées en fonction de leur similarité. Le paramètre Characteristic of Interest (Caractéristique remarquable) est utilisé pour définir ce qui fait que deux séries chronologiques sont similaires, sachant que vous pouvez définir la similarité en fonction de l’une des caractéristiques suivantes :

    • Value (Valeur) : les séries chronologiques sont similaires si elles ont des valeurs Analysis Variable (Variable d’analyse) approximativement égales dans le temps. Par exemple, une série chronologique ayant les valeurs (1, 0, 1, 0, 1) ressemble plus à une série chronologique ayant les valeurs (1, 1, 1, 1, 1) qu’à une série chronologique ayant les valeurs (10, 0, 10, 0, 10) car les valeurs sont plus similaires.
    • Profile (Correlation) (Profil (Corrélation)) : les séries chronologiques sont similaires si leurs valeurs tendent à augmenter et à diminuer simultanément et sont approximativement proportionnelles (en d’autres termes, si elles sont corrélées dans le temps). Par exemple, une série chronologique ayant les valeurs (1, 0, 1, 0, 1) ressemble plus à une série chronologique ayant les valeurs (10, 0, 10, 0, 10) qu’à une série chronologique ayant les valeurs (1, 1, 1, 1, 1) car les valeurs augmentent et diminuent simultanément et conservent une proportion cohérente.
    • Profile (Fourier) : les séries chronologiques sont similaires si leurs valeurs présentent des motifs réguliers périodiques similaires dans le temps. Ces périodes sont parfois nommées cycles ou saisons et représentent des durées d’un motif qui se répète alors dans une nouvelle période. Par exemple, les entreprises peuvent constater des motifs se répétant périodiques dans leurs ventes totales chaque semaine, la période commençant le lundi et se terminant le dimanche. Si vous le souhaitez, vous pouvez choisir d’ignorer certaines caractéristiques de ces motifs dans le paramètre Time Series Characteristics to Ignore (Caractéristiques de série chronologique à ignorer). Les motifs se répétant sont détectés à l’aide d’une analyse de données fonctionnelles avec une famille de Fourier. Pour que cette option soit la plus efficace possible, les séries chronologiques de votre cube spatio-temporel en entrée doivent couvrir toute la durée d’au moins une période. Par exemple, la température a une période annuelle déterminée par les saisons météorologiques, mais si toutes les données étaient collectées dans un délai de plusieurs mois d’une seule année, cette option ne pourrait peut-être pas détecter la période annuelle.

    Avec la définition de la similarité, les emplacements du cube spatio-temporel sont regroupés à l’aide de plusieurs algorithmes de regroupement pour produire les grappes finales renvoyées par l’outil. Reportez-vous à la rubrique Fonctionnement de l’agrégation de séries chronologiques pour plus d’informations sur ces algorithmes d’agrégation.

  • Les entités en sortie (champ Output Features) sont ajoutées à la fenêtre Contents (Contenu), avec un rendu dépendant du champ CLUSTER_ID et indiquent à quel agrégat chaque emplacement appartient. Si vous spécifiez trois agrégats, par exemple, chaque enregistrement affichera la valeur 1, 2 ou 3 dans le champ CLUSTER_ID. Le champ CENTER_REP identifie la série chronologique de médoïde de chaque agrégat et contient la valeur 1 pour la série chronologique de médoïde de chaque agrégat et la valeur 0 pour toutes les autres entités.

  • Cet outil crée des messages et des diagrammes facultatifs pour mieux comprendre les caractéristiques des agrégats identifiés. Vous pouvez accéder aux messages en passant le curseur de la souris sur la barre d’avancement, en cliquant sur le bouton de menu contextuel ou en développant la section de messages dans la fenêtre Geoprocessing (Géotraitement). Vous pouvez également accéder aux messages d’une précédente exécution de l’outil Créer un cube spatio-temporel via l’historique du géotraitement. Si vous spécifiez une table en sortie pour les diagrammes (Output Table for Charts), des diagrammes sont créés pour la table en sortie et affichent la série chronologique moyenne pour chaque agrégat et le médoïde de la série chronologique dans chaque agrégat. Ces diagrammes sont accessibles dans la fenêtre Contents (Contenu) dans la table créée dans la section Standalone Tables (Tables autonomes). Pour plus d’informations sur les diagrammes et les messages en sortie, reportez-vous à la rubrique Fonctionnement de l’outil Agrégation de séries chronologiques.

  • Parfois, vous connaissez le nombre d’agrégats le plus approprié pour vos données. Si ce n’est pas le cas, vous devrez essayer différents nombres d’agrégats et noter les valeurs qui permettent de mieux les différencier. Lorsque vous ne renseignez pas la valeur Number of Clusters (Nombre d’agrégats), l’outil évalue le nombre optimal d’agrégats par la méthode de statistique de pseudo F et signale le nombre optimal d’agrégats dans un message de géotraitement. Plus la statistique de pseudo F est élevée, plus chaque agrégat se distingue des autres agrégats. Le nombre optimal d’agrégats ne sera pas supérieur à 10, et calculer le nombre optimal d’agrégats nécessite l’essentiel du temps d’exécution de l’outil. Nous vous recommandons de fournir un nombre d’agrégats si vous connaissez une valeur appropriée ou si le délai d’exécution de l’outil est trop long.

    Pour calculer le nombre optimal d’agrégats, l’outil essaye entre 2 et 10 agrégats. Pour chacun de ces 9 nombres possibles d’agrégats, l’outil agrège 10 fois à l’aide de valeurs initiales aléatoires (hormis lorsque Profile (Correlation) (Profil (Corrélation)) est utilisé avec plus de 10 000 emplacements dans le cube spatio-temporel, auquel cas chaque nombre de voisins est répété 20 fois). Cela produit 90 (ou 180) résultats d’agrégats possibles (10 ou 20 pour chacun des 9 nombres possibles d’agrégats), et celui ayant la statistique pseudo F la plus élevée est choisi pour le nombre final d’agrégats utilisés dans l’outil. La statistique pseudo F la plus élevée pour chacun des 9 nombres possibles d’agrégats est imprimée sous la forme d’une table dans les messages de géotraitement.

    Remarque :

    Une statistique de pseudo F d’infinité signifie que toutes les séries chronologiques dans le même agrégat sont parfaitement similaires pour chacun.

  • L’ID d’agrégat attribué à un emplacement peut changer à chaque exécution, car les valeurs initiales utilisées pour créer des agrégats sont sélectionnées de manière aléatoire par l’algorithme. Supposons, par exemple, que vous divisiez les emplacements en deux agrégats basés sur la croissance annuelle de la population. La première fois que vous lancez l’analyse, les emplacements à croissance élevée peuvent s’intituler « agrégat 2 » et les emplacements à croissance faible « agrégat 1 ». Lors de la deuxième exécution, il se peut que les emplacements à croissance élevée s’intitulent « agrégat 1 ». Il peut également arriver que certains emplacements à croissance moyenne de moyen changent d’agrégat à chaque exécution. Ceci est dû au caractère aléatoire de l’algorithme d’agrégation. Si les résultats d’agrégation changent significativement suite à la ré-exécution de l’outil avec les mêmes paramètres, envisagez de changer la valeur du paramètre Number of Clusters (Nombre d’agrégats).

Paramètres

ÉtiquetteExplicationType de données
Cube spatio-temporel en entrée

Cube netCDF à analyser. Le fichier doit comporter l’extension .nc et doit avoir été créé avec l’outil Créer un cube spatio-temporel en agrégeant des points, Créer un cube spatio-temporel à partir d’entités définies ou Créer un cube spatio-temporel à partir d’une couche raster multidimensionnelle.

File
Variable d'analyse

Variable numérique figurant dans le fichier netCDF, qui évolue au fil du temps et est utilisée pour distinguer les agrégats entre eux.

String
Entités en sortie

Nouvelle classe d'entités en sortie qui contient tous les emplacements du cube spatio-temporel et un champ indiquant à quel agrégat chaque entité appartient. Cette classe d'entités sera une représentation en deux dimensions des tendances des agrégats dans vos données.

Feature Class
Caractéristique remarquable

Spécifie la caractéristique de la série chronologique qui sera utilisée pour déterminer les emplacements à agréger.

  • Valeur Les emplacements ayant des valeurs similaires dans le temps sont agrégés.
  • Profil (Corrélation)Les emplacements dont les valeurs tendent à augmenter et diminuer proportionnellement en même temps sont agrégés.
  • Profil (Fourier)Les emplacements ayant des motifs réguliers périodiques similaires sont agrégés.
String
Nombre d’agrégats
(Facultatif)

Nombre d’agrégats à créer. Si ce paramètre n’est pas renseigné, l’outil évalue le nombre optimal d’agrégats à l’aide de la statistique de pseudo F. Le nombre optimal d’agrégats est indiqué dans la fenêtre de messages.

Long
Table en sortie pour les diagrammes
(Facultatif)

Si ce paramètre est défini, cette table contient les séries chronologiques représentatives de chaque agrégat en fonction à la fois de la moyenne et des médoïdes des séries chronologiques par agrégat. Les diagrammes créés à partir de cette table sont accessibles dans la section Standalone Tables (Tables autonomes).

Table
Caractéristiques de série chronologique à ignorer
(Facultatif)

Spécifie les caractéristiques qui seront ignorées lors de l’établissement de la similarité entre deux séries chronologiques.

Si les deux caractéristiques sont ignorées, deux séries chronologiques sont considérées comme similaires si les durées des périodes sont similaires, même si elles commencent à des heures différentes et ont des valeurs différentes dans les périodes.

  • Décalage temporel L’heure de début de chaque période, y compris les décalages temporels, seront ignorés. Par exemple, si deux séries chronologiques ont des motifs périodiques similaires, mais que les valeurs de l’une sont trois jours derrière l’autre, ces deux séries chronologiques sont considérées comme similaires.
  • PlageLa magnitude des valeurs dans chaque période sera ignorée. Par exemple, si deux séries chronologiques commencent et terminent leurs périodes en même temps, elles sont considérées comme similaires, même si les valeurs réelles sont très différentes.
String
Enable Time Series Pop-ups (Activer les fenêtres contextuelles de série chronologique)
(Facultatif)

Indique si les diagrammes de série chronologique sont créés dans les fenêtres contextuelles de chaque entité en sortie affichant la série chronologique de l’entité et la série chronologique moyenne de toutes les entités dans le même agrégat que l’entité.

  • Activé : les diagrammes de série chronologique sont créés pour les entités en sortie.
  • Désactivé : les diagrammes de série chronologique ne sont pas créés. Il s’agit de l’option par défaut.
Boolean

arcpy.stpm.TimeSeriesClustering(in_cube, analysis_variable, output_features, characteristic_of_interest, {cluster_count}, {output_table_for_charts}, {shape_characteristic_to_ignore}, {enable_time_series_popups})
NomExplicationType de données
in_cube

Cube netCDF à analyser. Le fichier doit comporter l’extension .nc et doit avoir été créé avec l’outil Créer un cube spatio-temporel en agrégeant des points, Créer un cube spatio-temporel à partir d’entités définies ou Créer un cube spatio-temporel à partir d’une couche raster multidimensionnelle.

File
analysis_variable

Variable numérique figurant dans le fichier netCDF, qui évolue au fil du temps et est utilisée pour distinguer les agrégats entre eux.

String
output_features

Nouvelle classe d'entités en sortie qui contient tous les emplacements du cube spatio-temporel et un champ indiquant à quel agrégat chaque entité appartient. Cette classe d'entités sera une représentation en deux dimensions des tendances des agrégats dans vos données.

Feature Class
characteristic_of_interest

Spécifie la caractéristique de la série chronologique qui sera utilisée pour déterminer les emplacements à agréger.

  • VALUE Les emplacements ayant des valeurs similaires dans le temps sont agrégés.
  • PROFILELes emplacements dont les valeurs tendent à augmenter et diminuer proportionnellement en même temps sont agrégés.
  • PROFILE_FOURIERLes emplacements ayant des motifs réguliers périodiques similaires sont agrégés.
String
cluster_count
(Facultatif)

Nombre d’agrégats à créer. Si ce paramètre n’est pas renseigné, l’outil évalue le nombre optimal d’agrégats à l’aide de la statistique de pseudo F. Le nombre optimal d’agrégats est indiqué dans la fenêtre de messages.

Long
output_table_for_charts
(Facultatif)

Si ce paramètre est défini, cette table contient les séries chronologiques représentatives de chaque agrégat en fonction à la fois de la moyenne et des médoïdes des séries chronologiques par agrégat. Les diagrammes créés à partir de cette table sont accessibles dans la section Standalone Tables (Tables autonomes).

Table
shape_characteristic_to_ignore
[shape_characteristic_to_ignore,...]
(Facultatif)

Spécifie les caractéristiques qui seront ignorées lors de l’établissement de la similarité entre deux séries chronologiques.

  • TIME_LAG L’heure de début de chaque période, y compris les décalages temporels, seront ignorés. Par exemple, si deux séries chronologiques ont des motifs périodiques similaires, mais que les valeurs de l’une sont trois jours derrière l’autre, ces deux séries chronologiques sont considérées comme similaires.
  • RANGELa magnitude des valeurs dans chaque période sera ignorée. Par exemple, si deux séries chronologiques commencent et terminent leurs périodes en même temps, elles sont considérées comme similaires, même si les valeurs réelles sont très différentes.

Si les deux caractéristiques sont ignorées, deux séries chronologiques sont considérées comme similaires si les durées des périodes sont similaires, même si elles commencent à des heures différentes et ont des valeurs différentes dans les périodes.

String
enable_time_series_popups
(Facultatif)

Indique si les diagrammes de série chronologique sont créés dans les fenêtres contextuelles de chaque entité en sortie affichant la série chronologique de l’entité et la série chronologique moyenne de toutes les entités dans le même agrégat que l’entité. Les fenêtres contextuelles de série chronologique ne sont pas prises en charge pour les sorties shapefile.

  • CREATE_POPUPLes diagrammes de série chronologique sont créés pour les entités en sortie.
  • NO_POPUPLes diagrammes de série chronologique ne sont pas créés. Il s’agit de l’option par défaut.
Boolean

Exemple de code

Exemple 1 d'utilisation de l'outil TimeSeriesClustering (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l’utilisation de l’outil TimeSeriesClustering :

import arcpy
arcpy.env.workspace = r"C:\Analysis"
# Value
arcpy.stpm.TimeSeriesClustering(r"Temperature.nc",
                                "Air_NONE_ZEROS", r"Analysis.gdb\Temp_Value_3Clusts", 
                                "VALUE", 3, "Temp_Value_3Clusts_Chart", None, "CREATE_POPUP")
# Profile - correlation
arcpy.stpm.TimeSeriesClustering(r"Temperature.nc", "Air_NONE_ZEROS",
                                r"Analysis.gdb\Temp_Profile_3Clusts", "PROFILE", 3, 
                                r"Temp_Profile_3Clusts_Chart", None, "CREATE_POPUP")
# Profile - Fourier
arcpy.stpm.TimeSeriesClustering(r"Temperature.nc",
                                "Air_NONE_ZEROS", r"Analysis.gdb\Temp_Fourier_3Clusts",
                                "PROFILE_FOURIER", 3, r"Temp_Fourier_3Clusts_Chart", 
                                "TIME_LAG", "CREATE_POPUP")
Exemple 2 d'utilisation de l'outil TimeSeriesClustering (script autonome)

Le script de fenêtre Python ci-dessous illustre l’utilisation de l’outil TimeSeriesClustering pour agréger des emplacements de point de vente similaires :

# Create clusters of store locations with similar sales volumes over time.
# Import system modules.
import arcpy
# Set property to overwrite existing output, by default.
arcpy.env.overwriteOutput = True
# Set workspace...
workspace = r"C:\Analysis"
arcpy.env.workspace = workspace
# Create 3 clusters of location with similar extent of fluctuation in temperature.
arcpy.stpm.TimeSeriesClustering(r"Temperature.nc", "Air_NONE_ZEROS",
                      r"Analysis.gdb\Temperature_TSC",
                      "PROFILE_FOURIER", 3, "Temp_Chart", None, 
                      "CREATE_POPUP")
# Create a feature class containing all the bins in the input space time cube.
arcpy.stpm.VisualizeSpaceTimeCube3D(r"Temperature.nc", "Air_NONE_ZEROS", "VALUE", 
                      r"Temp_Bins.shp")
# Make the bins as a feature layer.
arcpy.MakeFeatureLayer_management("Temp_Bins.shp", "Temp_Bins_Temp_Layer")
# Join the clustering results to the bins so each bin now has a cluster ID.
arcpy.management.AddJoin("Temp_Bins_Temp_Layer", "Location", 
                      r"Analysis.gdb\Temperature_TSC", "Location", "KEEP_ALL")
# Summarize the bins using Summary Statistics with Cluster ID as a case field
# to get the minimum, maximum, and average temperature for each cluster.
arcpy.analysis.Statistics("Temp_Bins_Temp_Layer", "Temp_Bins_Statistics.shp",
                      "Temp_Bins.VALUE MEAN;Temp_Bins.VALUE MAX;Temp_Bins.VALUE MIN",
                      "Temperature_TSC.CLUSTER_ID")

Environnements

Cas particuliers

Générateur de nombres aléatoires

Le type de générateur de nombres aléatoires utilisé est toujours Mersenne Twister.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes