Agrégation multivariée (Statistiques spatiales)

Synthèse

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

En savoir plus sur le fonctionnement de l’outil Agrégation multivariée

Illustration

Illustration de l’outil 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, par exemple, vous souhaitez utiliser trois agrégats, 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 Nombre d’agrégats.

  • Le paramètre Entités en entrée peut s’appliquer à des points, des lignes, des polygones ou des rasters.

  • Cet outil crée des messages et des diagrammes pour mieux comprendre les caractéristiques des agrégats identifiés. Pour accéder aux messages, passez le curseur de la souris sur la barre d’avancement, cliquez sur le bouton de menu contextuel ou développez la section Afficher les détails dans la fenêtre Géotraitement. Vous pouvez également accéder aux messages d’une exécution précédente de l’outil Agrégation multivariée via l’historique de géotraitement. Accédez aux diagrammes à partir de la fenêtre 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 du paramètre 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 la valeur du paramètre 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 pouvez imposer certaines contraintes de contiguïté ou d’autres critères de proximité aux agrégats créés. Vous utiliserez alors l’outil Agrégation multivariée spatialement contrainte pour créer des agrégats qui sont spatialement contigus.

  • Si vous utilisez cet outil, il est recommandé de commencer avec une seule variable pour le paramètre Champs d’analyse et d’ajouter des variables si nécessaire. 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 Méthode d’initialisation : Emplacements initiaux optimisés, Emplacements initiaux définis par l’utilisateur et 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 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. Utilisez 0 pour toutes les valeurs sauf pour les entités initiales du champ initial que vous créez ; utilisez la valeur 1 pour les entités initiales. Sélectionnez ensuite l’option Emplacements initiaux définis par l’utilisateur pour le paramètre Méthode d’initialisation. Si vous souhaitez effectuer une analyse de la sensibilité afin de déterminer quelles entités figurent systématiquement dans le même agrégat, utilisez l’option Emplacements initiaux aléatoires pour le paramètre 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 paramètre Champ d’initialisation est interprétée comme une valeur initiale. Si vous spécifiez des emplacements initiaux, le paramètre 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 Champ d’initialisation.

  • Si vous ne connaissez pas la valeur du paramètre Nombre d’agrégats la plus appropriée pour vos données, vous pouvez 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 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 une valeur facultative pour le paramètre Table en sortie pour l’évaluation du nombre d’agrégats, un diagramme est créé et représente les valeurs statistiques pseudo F pour les solutions de 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 n’est utilisé pour la valeur du paramètre 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 Emplacements initiaux aléatoires est sélectionnée pour le paramètre 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’outil). 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 10 valeurs statistiques pseudo-F.

  • Les options K-moyennes et K-médoïdes sont toutes deux couramment utilisées et produisent généralement des résultats similaires. L’option K-médoïdes est toutefois moins sensible au bruit et aux points aberrants du paramètre Entités en entrée. L’algorithme K-moyennes, généralement plus rapide que K-médoïdes, est privilégié pour traiter des jeux de données volumineux.

  • Le nombre d’agrégats attribué à un jeu d’entités peut changer à chaque exécution. Par exemple, si vous partitionnez des 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 faible revenu « agrégat 1 ». La deuxième fois que vous exécutez la même analyse, les entités de revenu élevé peuvent être étiquetées agrégat 1. Il se peut également que les 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 les agrégats seront créés.

Feature Layer
Entités en sortie

Classe d’entités en sortie créée qui contient toutes les entités, les champs d’analyse spécifié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)

Spécifie l’algorithme d’agrégation utilisé.

Les options K-moyennes et K-médoïdes sont toutes deux couramment utilisées et produisent généralement des résultats similaires. L’option K-médoïdes est toutefois moins sensible au bruit et aux points aberrants du paramètre Entités en entrée. L’algorithme K-moyennes, généralement plus rapide que K-médoïdes, est privilégié pour traiter des jeux de données volumineux.

  • K-moyennesLa valeur du paramètre Entités en entrée est agrégée avec l’algorithme des K-moyennes. Il s’agit de l’option par défaut.
  • K-médoïdesLa valeur du paramètre Entités en entrée est agrégée 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ésDes 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’utilisateurLes entrées non nulles dans le paramètre Champ d’initialisation sont initialement utilisées pour créer des agrégats.
  • Emplacements initiaux aléatoiresLes 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. Chaque valeur initiale génère un agrégat, donc vous devez fournir au moins deux entités initiales.

Field
Nombre d’agrégats
(Facultatif)

Nombre d’agrégats créés. Si 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)

Table créée contenant 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 les agrégats seront créés.

Feature Layer
output_features

Classe d’entités en sortie créée qui contient toutes les entités, les champs d’analyse spécifié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)

Spécifie l’algorithme d’agrégation utilisé.

Les options K_MEANS et K_MEDOIDS produisent généralement des résultats similaires. L’algorithme K_MEDOIDS est toutefois moins sensible au bruit et aux points aberrants dans la valeur du paramètre in_features. K_MEANS, généralement plus rapide que K_MEDOIDS, est privilégié pour traiter des jeux de données volumineux.

  • K_MEANSLa valeur du paramètre in_features est agrégée avec l’algorithme des K-moyennes. Il s’agit de l’option par défaut.
  • K_MEDOIDSLa valeur du paramètre in_features est agrégée 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 le paramètre 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. Chaque valeur initiale génère un agrégat, donc vous devez fournir au moins deux entités initiales.

Field
number_of_clusters
(Facultatif)

Nombre d’agrégats créés. Si 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)

Table créée contenant 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 ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction 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 la fonction 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

Cas particuliers

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.

Informations de licence

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

Rubriques connexes