Agrégation multivariée (Statistiques spatiales)

Résumé

Recherche des agrégats naturels d’entités en fonction uniquement des valeurs attributaires des entités.

Pour en savoir plus sur le fonctionnement de l'outil Agrégation multivariée

Illustration

Diagramme Agrégation multivariée

Utilisation

  • Cet outil génère une classe d'entités en sortie avec les champs utilisés dans l'analyse, ainsi qu'un nouveau champ d'entier appelé CLUSTER_ID. Le rendu par défaut repose sur le champ CLUSTER_ID et indique à quel agrégat appartient chaque entité. Si vous souhaitez utiliser trois agrégats, par exemple, chaque enregistrement affichera 1, 2 ou 3 dans le champ CLUSTER_ID. La classe d’entités en sortie contiendra également un champ binaire nommé IS_SEED. Le champ IS_SEED indique quelles entités ont été initialement utilisées pour créer des agrégats. Le nombre de valeurs non nulles indiqué dans le champ IS_SEED correspond à la valeur que vous avez spécifiée pour le paramètre Number of Clusters (Nombre d’agrégats).

  • Les entités en sortie peuvent être des points, des lignes ou des polygones.

  • Cet outil crée des messages et des diagrammes pour mieux comprendre les caractéristiques des agrégats identifiés. Vous pouvez accéder aux messages en pointant sur la barre de progression, en cliquant sur le bouton contextuel ou en développant la section View details (Afficher les détails) dans la fenêtre Geoprocessing (Géotraitement). Vous pouvez également accéder aux messages d’une exécution précédente de l’outil Multivariate Clustering (Agrégation multivariée) via l’historique de géotraitement. Les diagrammes créés sont accessibles dans depuis la fenêtre Contents (Contenu).

  • Pour plus d’informations sur les diagrammes et les messages en sortie, reportez-vous à la rubrique Fonctionnement de l’outil Agrégation multivariée.

  • Les champs d’analyse doivent être numériques et contenir diverses valeurs. Les champs sans variation (ceux dont la valeur est identique ou très similaire dans chaque enregistrement) seront exclus de l’analyse, mais inclus dans Output Features (Entités en sortie). Vous pouvez utiliser des champs de catégorie avec l’outil Agrégation multivariée s’ils sont représentés par des variables numériques fictives (1 pour toutes les entités d’une catégorie et 0 pour toutes les autres entités).

  • L’outil Agrégation multivariée crée des agrégats non spatiaux. Dans certains cas, vous souhaiterez peut-être imposer certaines contraintes de contiguïté ou d’autres critères de proximité aux agrégats créés. Vous utiliserez dans ce cas l’outil Agrégation multivariée spatialement contrainte pour créer des agrégats qui sont spatialement contigus.

  • Alors que l’on a tendance a vouloir inclure autant de champs d’analyse que possible, dans le cas de cet outil, il vaut mieux commencer avec une seule variable puis en ajouter d’autres. Les résultats sont plus faciles à interpréter avec moins de champs d'analyse. Il est également plus simple de déterminer quelles variables sont les meilleurs discriminants lorsque les champs sont peu nombreux.

  • Il existe trois options pour le paramètre Initialization Method (Méthode d’initialisation) : Optimized seed locations (Emplacements initiaux optimisés), User defined seed locations (Emplacements initiaux définis par l’utilisateur) et Random seed locations (Emplacements initiaux aléatoires). Les valeurs initiales sont les entités utilisées pour créer chaque agrégat. Si, par exemple, vous entrez 3 pour le paramètre Number of Clusters (Nombre d’agrégats), l’analyse commence avec trois entités initiales. L'option par défaut, Optimized seed locations (Emplacements initiaux optimisés), sélectionne la première valeur initiale de manière aléatoire et s'assure que les valeurs initiales suivantes sélectionnées représentent des entités qui sont éloignées les unes de autres dans l’espace de données (valeurs attributaires). Pour améliorer les performances, sélectionnez des valeurs initiales qui capturent différentes zones de l'espace de données. Lorsque des entités spécifiques reflètent des caractéristiques distinctes, vous pouvez les représenter dans différents agrégats. Dans ce cas, vous pouvez fournir ces emplacements en créant un champ de valeurs initiales pour identifier ces entités particulières. Le champ de valeurs initiales que vous créez doit contenir des zéros pour toutes les entités, à l'exception des entités initiales qui doivent être égales à 1. Définissez ensuite le paramètre Initialization Method (Méthode d’initialisation) sur User defined seed locations (Emplacements initiaux définis par l’utilisateur). Si vous souhaitez effectuer une analyse de la sensibilité pour déterminer quelles entités figurent systématiquement dans le même agrégat, vous pouvez sélectionner l’option Random seed locations (Emplacements initiaux aléatoires) pour le paramètre Initialization Method (Méthode d'initialisation). Pour cette option, les entités initiales sont sélectionnées au hasard.

    Remarque :

    Lorsque vous utilisez des valeurs initiales aléatoires, vous pouvez choisir une valeur initiale pour lancer le générateur de nombres aléatoires via le paramètre d'environnement Générateur de nombres aléatoires. Toutefois, le générateur de nombres aléatoires utilisé par cet outil est toujours Mersenne Twister.

  • Toute valeur 1 entrée dans le Champ d'initialisation est interprétée comme une valeur initiale. Si vous spécifiez des emplacements initiaux, le paramètre Number of Clusters (Nombre d’agrégats) est désactivé et l’outil recherche autant d’agrégats qu’il existe d’entrées non nulles dans le paramètre Initialization Field (Champ d’initialisation).

  • Vous savez parfois quelle valeur Number of Clusters (Nombre d’agrégats) convient le mieux à vos données. Mais si ce n’est pas le cas, vous devrez essayer différents nombres d’agrégats et noter les valeurs qui permettent le mieux de les différencier. Lorsque vous ne renseignez pas la valeur Number of Clusters (Nombre d’agrégats), l’outil vérifie le nombre optimal d’agrégats en calculant une statistique pseudo-F pour les solutions d’agrégation avec 2 à 30 agrégats et signale le nombre optimal d’agrégats dans la fenêtre de messages. Lorsque vous spécifiez un paramètre Output Table for Evaluating Number of Clusters (Table en sortie pour évaluer le nombre d’agrégats) facultatif, un diagramme présentant les valeurs statistiques pseudo-F est créé pour les solutions avec 2 à 30 agrégats. Les valeurs statistiques pseudo-F les plus élevées désignent les solutions qui optimisent le mieux les similarités à l'intérieur des agrégats et les différences entre les agrégats. Si aucun autre critère ne vous permet de déterminer la valeur Number of Clusters (Nombre d’agrégats), utilisez un nombre associé à l’une des valeurs statistiques pseudo-F les plus élevées. Diagramme statistique de pseudo-F qui permet de rechercher le nombre optimal d’agrégats

  • Cet outil fait appel à l’algorithme des K-moyennes ou à celui des K-médoïdes pour diviser les entités en agrégats. Lorsque l’option Random seed locations (Emplacements initiaux aléatoires) est sélectionnée pour le paramètre Initialization Method (Méthode d’initialisation), l’algorithme intègre des heuristiques et peut renvoyer un résultat différent chaque fois que vous exécutez l’outil (même si vous utilisez les mêmes données et paramètres d’outils). Cela est dû au caractère aléatoire de la recherche des entités initiales utilisées pour créer les agrégats. En raison de cette solution heuristique, l’identification du nombre optimal d’agrégats est plus complexe et la statistique pseudo-F peut être différente à chaque exécution de l’outil avec les différentes entités initiales. Pourtant, dans le cas d'une distribution distincte de vos données, les solutions trouvées à chaque exécution seront plus cohérentes. Par conséquent, pour mieux déterminer le nombre optimal d’agrégats, pour chaque nombre d’agrégats de 2 à 30, l’outil procède 10 fois à l’analyse et utilise la plus élevée des dix valeurs statistiques pseudo-F.

  • Les algorithmes d'agrégation K means (K-moyennes) et K medoids (K-médoïdes) sont tous deux couramment utilisés et produisent généralement des résultats similaires. L'algorithme K medoids (K-médoïdes) est toutefois moins sensible au bruit et aux points aberrants des couches en entrée (Input Features). L'algorithme K means (K-moyennes), généralement plus rapide que K medoids (K-médoïdes), est privilégié pour traiter de grands jeux de données.

  • Le nombre d’agrégats attribué à un jeu d’entités peut changer à chaque exécution. Supposons, par exemple, que vous divisiez les entités en deux agrégats basés sur une variable de revenu. La première fois que vous lancez l’analyse, les entités de revenu élevé peuvent s’intituler « agrégat 2 » et les entités de revenu faible « agrégat 1 ». Lors de la deuxième exécution, il se peut que les entités de revenu élevé s’intitulent « agrégat 1 ». Il peut également arriver que certaines entités de revenu moyen changent d’agrégat à chaque exécution.

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Classe ou couche d’entités pour laquelle vous souhaitez créer des agrégats.

Feature Layer
Entités en sortie

Nouvelle classe d’entités en sortie créée qui contient toutes les entités, les champs d’analyse utilisés, ainsi qu’un champ permettant d’identifier l’agrégat auquel chaque entité appartient.

Feature Class
Champs d'analyse

Liste de champs à utiliser pour distinguer les agrégats entre eux.

Field
Méthode d’agrégation
(Facultatif)

Algorithme d'agrégation utilisé. K means (K-moyennes) est l'algorithme par défaut.

  • K-moyennes —Les entités en entrée (Input Features) sont agrégées avec l’algorithme des K-moyennes. Il s’agit de l’option par défaut.
  • K-médoïdes —Les entités en entrée (Input Features) sont agrégées avec l’algorithme des K-médoïdes.
  • K-moyennes —Les entités en entrée (in_features) sont agrégées avec l’algorithme des K-moyennes. Il s’agit de l’option par défaut.
  • K-médoïdes —Les entités en entrée (Input Features) sont agrégées avec l’algorithme des K-médoïdes.
String
Méthode d'initialisation
(Facultatif)

Indique comment les valeurs initiales sont obtenues pour créer des agrégats. Si vous spécifiez trois agrégats, par exemple, l’analyse commence avec trois valeurs initiales.

  • Emplacements initiaux optimisés — Des entités initiales sont sélectionnées pour optimiser les résultats d’analyse et les performances. Il s’agit de l’option par défaut.
  • Emplacements initiaux définis par l’utilisateur — Les entrées non nulles dans Initialization Field (Champ d’initialisation) sont initialement utilisées pour créer des agrégats.
  • Emplacements initiaux aléatoires — Les entités initiales seront sélectionnées de manière aléatoire.
String
Champ d'initialisation
(Facultatif)

Champ numérique identifiant les entités initiales. Les entités ayant la valeur 1 dans ce champ sont utilisées pour créer des agrégats. Toutes les autres entités doivent contenir la valeur zéro.

Field
Nombre d’agrégats
(Facultatif)

Nombre d’agrégats à créer. Lorsque vous ne renseignez pas ce paramètre, l’outil vérifie le nombre optimal d’agrégats en calculant une statistique pseudo-F pour les solutions d’agrégation avec 2 à 30 agrégats.

Ce paramètre est désactivé si les emplacements initiaux ont été fournis dans le champ d’initialisation.

Long
Table en sortie pour vérifier le nombre d’agrégats
(Facultatif)

Si cette option est spécifiée, la table créée contient la statistique pseudo-F pour les solutions d’agrégation de 2 à 30, calculée pour vérifier le nombre optimal d’agrégats. Le diagramme créé à partir de cette table est accessible dans la section des tables autonomes de la fenêtre Contents (Contenu).

Table

arcpy.stats.MultivariateClustering(in_features, output_features, analysis_fields, {clustering_method}, {initialization_method}, {initialization_field}, {number_of_clusters}, {output_table})
NomExplicationType de données
in_features

Classe ou couche d’entités pour laquelle vous souhaitez créer des agrégats.

Feature Layer
output_features

Nouvelle classe d’entités en sortie créée qui contient toutes les entités, les champs d’analyse utilisés, ainsi qu’un champ permettant d’identifier l’agrégat auquel chaque entité appartient.

Feature Class
analysis_fields
[analysis_field,...]

Liste de champs à utiliser pour distinguer les agrégats entre eux.

Field
clustering_method
(Facultatif)

Algorithme d’agrégation utilisé. K_MEANS est la valeur par défaut.

Les algorithmes d'agrégation K_MEANS et K_MEDOIDS sont tous deux couramment utilisés et produisent généralement des résultats similaires. L'algorithme K_MEDOIDS est toutefois moins sensible au bruit et aux points aberrants des couches en entrée (in_features). L'algorithme K_MEANS, généralement plus rapide que K_MEDOIDS, est privilégié pour traiter de grands jeux de données.

  • K_MEANSLes entités en entrée (in_features) sont agrégées avec l’algorithme des K-moyennes. Il s’agit de l’option par défaut.
  • K_MEDOIDSLes entités en entrée (Input Features) sont agrégées avec l’algorithme des K-médoïdes.
String
initialization_method
(Facultatif)

Indique comment les valeurs initiales sont obtenues pour créer des agrégats. Si vous spécifiez trois agrégats, par exemple, l’analyse commence avec trois valeurs initiales.

  • OPTIMIZED_SEED_LOCATIONSDes entités initiales sont sélectionnées pour optimiser les résultats d’analyse et les performances. Il s’agit de l’option par défaut.
  • USER_DEFINED_SEED_LOCATIONSLes entrées non nulles dans initialization_field sont initialement utilisées pour créer des agrégats.
  • RANDOM_SEED_LOCATIONSLes entités initiales seront sélectionnées de manière aléatoire.
String
initialization_field
(Facultatif)

Champ numérique identifiant les entités initiales. Les entités ayant la valeur 1 dans ce champ sont utilisées pour créer des agrégats. Toutes les autres entités doivent contenir la valeur zéro.

Field
number_of_clusters
(Facultatif)

Nombre d’agrégats à créer. Lorsque vous ne renseignez pas ce paramètre, l’outil vérifie le nombre optimal d’agrégats en calculant une statistique pseudo-F pour les solutions d’agrégation avec 2 à 30 agrégats.

Ce paramètre est désactivé si les emplacements initiaux ont été fournis dans le champ d’initialisation.

Long
output_table
(Facultatif)

Si cette option est spécifiée, la table créée contient la statistique pseudo-F pour les solutions d’agrégation de 2 à 30, calculée pour vérifier le nombre optimal d’agrégats. Le diagramme créé à partir de cette table est accessible dans la section des tables autonomes de la fenêtre Contents (Contenu).

Table

Exemple de code

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

Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil MultivariateClustering.

import arcpy
arcpy.env.workspace = r"C:\Analysis"
arcpy.MultivariateClustering_stats("District_Vandalism", "outVandalism", 
                                   ["TOTPOP", "VACANT_CY", "UNEMP"], "K_MEANS", 
                                    "OPTIMIZED_SEED_LOCATIONS", None, "5")
Exemple 2 d'utilisation de l'outil MultivariateClustering (script autonome)

Le script Python autonome ci-dessous illustre l’utilisation de l'outil MultivariateClustering.

# Clustering Vandalism data in a metropolitan area
# using the Multivariate Clustering Tool
# Import system modules
import arcpy
# Set environment property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
try:
    # Set the current workspace (to avoid having to specify the full path to
    # the feature classes each time)
    arcpy.env.workspace = r"C:\GA"
    # Join the 911 Call Point feature class to the Block Group Polygon feature 
    # class
    # Process: Spatial Join
    fieldMappings = arcpy.FieldMappings()
    fieldMappings.addTable("ReportingDistricts.shp")
    fieldMappings.addTable("Vandalism2006.shp")
    sj = arcpy.SpatialJoin_analysis("ReportingDistricts.shp", 
                                    "Vandalism2006.shp", "Dist_Vand.shp", 
                                    "JOIN_ONE_TO_ONE","KEEP_ALL", fieldMappings, 
                                    "COMPLETELY_CONTAINS")
    # Use the Multivariate Clustering tool to create groups based on different 
    # variables or analysis fields
    # Process: Cluster Similar Features  
    ga = arcpy.MultivariateClustering_stats("District_Vandalism", "outVandalism", 
                                            ["Join_Count", "TOTPOP", "VACANT_CY", "UNEMP"],
	             																														"K_MEANS", "OPTIMIZED_SEED_LOCATIONS", 
                                            None, 5)
    
    # Use Summary Statistic tool to get the Mean of variables used to group
    # Process: Summary Statistics
    SumStat = arcpy.Statistics_analysis("outVandalism", "outSS", 
                                        [["Join_Count", "MEAN"], 
                                         ["VACANT_CY", "MEAN"], 
                                         ["TOTPOP_CY", "MEAN"], 
                                         ["UNEMP_CY", "MEAN"]], 
                                        "GSF_CLUSTER")
except arcpy.ExecuteError:
    # If an error occurred when running the tool, print out the error message.
    print(arcpy.GetMessages())

Environnements

Système de coordonnées en sortie

La géométrie de l'entité est projetée au système de coordonnées en sortie avant l'analyse. Tous les calculs mathématiques sont basés sur la référence spatiale du système de coordonnées en sortie. Lorsque le système de coordonnées en sortie est exprimé en degrés, minutes et secondes, les distances géodésiques sont estimées à l'aide de distances à la corde.

Générateur de nombres aléatoires

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

Rubriques connexes