Analyse des regroupements (Statistiques spatiales)
Récapitulatif
Cet outil regroupe des entités en fonction d'attributs d'entités et de contraintes spatiales/temporelles facultatives.
En savoir plus sur le fonctionnement de l'outil Analyse des regroupements
Illustration
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é SS_GROUP. Le rendu par défaut dépend du champ SS_GROUP et indique à quel groupe appartient chaque entité. Si vous souhaitez utiliser 3 groupes, par exemple, chaque enregistrement affichera 1, 2 ou 3 dans le champ SS_GROUP. Si vous sélectionnez NO_SPATIAL_CONSTRAINT comme valeur du paramètre Contraintes spatiales, un nouveau champ binaire appelé SS_SEED est ajouté à la classe d'entités en sortie. Le champ SS_SEED indique quelles entités ont été initialement utilisées pour créer des groupes. Le nombre de valeurs non nulles indiqué dans le champ SS_SEED correspond à la valeur que vous avez spécifiée pour le paramètre Nombre de groupes.
Cet outil permet également de créer un fichier PDF du rapport lorsque vous spécifiez un chemin pour le paramètre Fichier de rapport en sortie. Ce rapport contient divers graphiques et tables qui vous aideront à comprendre les caractéristiques des groupes identifiés. Vous pouvez accéder au fichier PDF du rapport à partir de la fenêtre Résultats.
Remarque :La création de ce fichier de rapport peut augmenter considérablement la durée de traitement. Par conséquent, alors que l'outil Analyse des regroupements crée la Classe d'entités en sortie indiquant l'appartenance aux groupes, le fichier PDF du rapport ne sera pas créé si vous spécifiez plus de 15 groupes ou plus de 15 variables.
-
Le Champ d’ID unique permet de lier les enregistrements de la Classe d'entités en sortie aux données de la classe d'entités en entrée d'origine. Par conséquent, les valeurs Champ d'ID unique doivent être uniques pour chaque entité et, en général, ce champ est associé de façon permanente à la classe d'entités. Si vous n'avez pas de Champ d'ID unique dans votre jeu de données, il est facile d'en créer un en ajoutant un nouveau champ d'entier à votre table de classes d'entités et en calculant les valeurs du champ de sorte qu'elles soient égales à celles du champ FID/OID. Vous ne pouvez pas utiliser directement le champ FID/OID comme paramètre Champ d'ID unique.
-
Les Champs d'analyse doivent être numériques et contenir diverses valeurs. Les champs sans variation (ceux dont la valeur est identique dans chaque enregistrement) seront exclus de l'analyse, mais inclus dans la Classe d'entités en sortie. Vous pouvez utiliser des champs de catégorie avec l'outil Analyse des regroupements s'ils sont représentés par des variables fictives (1 pour toutes les entités d'une catégorie, 0 pour toutes les autres entités).
L'outil Analyse des regroupements crée des groupes avec ou sans contraintes spatiales/temporelles. Dans certains cas, vous ne souhaiterez peut-être pas imposer de contraintes de contiguïté ni autres critères de proximité aux groupes créés. Vous devrez alors définir le paramètre Contraintes spatiales sur NO_SPATIAL_CONSTRAINT.
Les groupes devront être spatialement contigus dans le cadre de certaines analyses. Les options CONTIGUITY sont activées pour les classes d'entités surfaciques et indiquent que les entités peuvent seulement faire partie du même groupe si elles partagent une limite (CONTIGUITY_EDGES_ONLY) ou si elles partagent soit une limite, soit un sommet (CONTIGUITY_EDGES_CORNERS) avec un autre membre du groupe.
Les options DELAUNAY_TRIANGULATION et K_NEAREST_NEIGHBORS conviennent aux entités ponctuelles ou surfaciques si vous voulez que tous les membres d'un groupe soient proximaux. Ces options indiquent qu'une entité sera incluse dans un groupe si au moins une autre entité est un voisin naturel (triangulation de Delaunay) ou l'un des K plus proches voisins. K indique le nombre de voisins à prendre en compte ; il est déterminé par le paramètre Nombre de voisins.
Pour créer des groupes soumis à des contraintes spatiales et temporelles, utilisez l'outil Générer la matrice de pondérations spatiales pour créer un fichier de matrice de pondérations spatiales (fichier SWM) définissant les relations spatio-temporelles entre les entités. Ensuite, exécutez l'outil Analyse des regroupements en définissant le paramètre Contraintes spatiales sur GET_SPATIAL_WEIGHTS_FROM_FILE et le Fichier de matrice de pondérations spatiales sur le fichier SWM que vous avez créé.
Vous pouvez imposer des Contraintes spatiales supplémentaires, comme une distance constante. A cette fin, utilisez l'outil Générer la matrice de pondérations spatiales pour créer un fichier SWM, puis indiquez le chemin d'accès à ce fichier pour le paramètre Fichier de matrice de pondérations spatiales.
Remarque :Même si vous créez un fichier de matrice de pondérations spatiales (SWM) pour définir des contraintes spatiales, aucune pondération n'est appliquée. En effet, le fichier SWM définit simplement quelles entités sont contiguës ou proximales. En imposant une contrainte spatiale, vous déterminez qui peut ou ne peut pas devenir membre d'un même groupe. Si vous sélectionnez CONTIGUITY_EDGES_ONLY, par exemple, toutes les entités d'un groupe auront au moins une limite en commun avec une autre entité du groupe. Les groupes résultants restent donc spatialement contigus.
En définissant une contrainte spatiale, vous êtes sûr que les groupes sont compacts, contigus ou proximaux. L'ajout de variables spatiales à votre liste de Champs d'analyse encourage également ces attributs de groupe. L'éloignement des bretelles d'autoroute, l'accessibilité aux bassins d'emploi, la proximité des commerces, les mesures de connectivité et même les coordonnées (X,Y) sont des exemples de variables spatiales. L'ajout de variables de temps (heure, jour de la semaine ou distance temporelle) peut encourager la compacité temporelle parmi les membres d'un groupe.
Une distribution spatiale caractéristique de vos entités (trois agrégats séparés, spatialement distincts, par exemple) peut compliquer l'algorithme de regroupement spatialement contraint. Par conséquent, l'algorithme de regroupement commence par déterminer si des groupes sont déconnectés. Si le nombre de groupes déconnectés est supérieur au Nombre de groupes spécifié, l'outil ne peut pas s'exécuter. Un message d'erreur s'affiche alors. Si le nombre de groupes déconnectés est identique au Nombre de groupes spécifié, la configuration spatiale des seules entités détermine les résultats du groupe, comme l'illustre la figure (A) ci-dessous. Si le Nombre de groupes spécifié est supérieur au nombre de groupes déconnectés, le regroupement commence par les groupes déconnectés déjà déterminés. Par exemple, si trois groupes sont déconnectés et si le Nombre de groupes spécifié est 4, l'un des trois groupes sera divisé pour en créer un quatrième, comme l'illustre la figure (B) ci-dessous.
Dans certains cas, l'outil Analyse des regroupements ne pourra pas appliquer les contraintes spatiales imposées, et certaines entités ne seront pas incluses dans un groupe donné (la valeur SS_GROUP sera -9999 avec un rendu évidé). Cela se produit si certaines entités n'ont pas de voisins. Pour éviter ce problème, utilisez K_NEAREST_NEIGHBORS pour vous assurer que toutes les entités ont des voisins. Augmentez la valeur du paramètre Nombre de voisins pour essayer de résoudre les problèmes de groupes déconnectés.
Alors que l'on a tendance à 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. Les résultats sont beaucoup 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.
Lorsque vous définissez le paramètre Contraintes spatiales sur NO_SPATIAL_CONSTRAINT, vous pouvez choisir parmi les trois options suivantes pour la Méthode d'initialisation : FIND_SEED_LOCATIONS, GET_SEEDS_FROM_FIELD et USE_RANDOM_SEEDS. Les valeurs initiales sont des entités utilisées pour créer des groupes individuels. Si, par exemple, vous entrez 3 pour le paramètre Nombre de groupes, l'analyse commence avec trois entités initiales. L'option par défaut, FIND_SEED_LOCATIONS, sélectionne la première valeur initiale de manière aléatoire, puis s'assure que les valeurs initiales suivantes sélectionnées représentent des entités qui sont éloignées les unes des autres dans l'espace de données. 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 souhaiterez peut-être les représenter dans différents groupes. Si c'est le cas, créez 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 Méthode d'initialisation sur GET_SEEDS_FROM_FIELD. Si vous souhaitez effectuer une analyse de la sensibilité pour déterminer quelles entités figurent systématiquement dans le même groupe, vous pouvez définir le paramètre Méthode d'initialisation sur USE_RANDOM_SEEDS. Pour cette option, toutes les entités initiales sont sélectionnées au hasard.
Toute valeur 1 entrée dans le Champ d'initialisation est interprétée comme une valeur initiale. Si le nombre d'entités initiales est supérieur au Nombre de groupes, les entités initiales seront sélectionnées au hasard parmi celles identifiées par le Champ d'initialisation. Si le nombre d'entités initiales est inférieur au Nombre de groupes spécifié, des entités initiales supplémentaires seront sélectionnées pour qu'elles soient éloignées (dans l'espace de données) de celles identifiées par le Champ d'initialisation.
Vous savez parfois quel Nombre de groupes convient le mieux à vos données. Mais si ce n'est pas le cas, vous devrez tester différents nombres de groupes et noter les valeurs qui permettent le mieux de les différencier. Lorsque vous sélectionnez le paramètre Evaluer le nombre optimal de groupes, une statistique pseudo-F est calculée pour regrouper les solutions de 2 à 15 groupes. Si aucun autre critère ne vous permet de déterminer le Nombre de groupes, utilisez un nombre associé à l'une des valeurs statistiques pseudo-F les plus élevées. Les valeurs statistiques pseudo-F les plus élevées désignent les solutions qui optimisent le mieux les similarités à l'intérieur des groupes et les différences entre les groupes. Lorsque vous spécifiez un Fichier de rapport en sortie facultatif, ce rapport PDF inclut un diagramme représentant les valeurs statistiques pseudo-F pour les solutions de 2 à 15 groupes.
Lorsque vous incluez une contrainte spatiale ou spatio-temporelle dans votre analyse, les statistiques pseudo-F sont comparables (à condition que les Entités en entrée et les Champs d'analyse ne changent pas). Par conséquent, vous pouvez utiliser les valeurs statistiques F pour déterminer non seulement le Nombre de groupes optimal, mais également pour choisir les Contraintes spatiales, la Méthode de calcul de distance et le Nombre de voisins les plus efficaces.
L'algorithme des K-moyennes utilisé pour diviser des entités en groupes, lorsque le paramètre Contraintes spatiales est défini sur NO_SPATIAL_CONSTRAINT et la Méthode d'initialisation sélectionnée est FIND_SEED_LOCATIONS ou USE_RANDOM_SEEDS, 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 groupes.
Lorsqu'une contrainte spatiale est imposée, l'algorithme n'a rien d'aléatoire, si bien qu'une simple statistique pseudo-F peut être calculée pour 2 à 15 groupes, et les valeurs statistiques F les plus élevées peuvent servir à déterminer le Nombre de groupes optimal pour votre analyse. Toutefois, comme l'option NO_SPATIAL_CONSTRAINT est une solution heuristique, la détermination du nombre optimal de groupes s'avère plus complexe. La statistique F peut différer à chaque exécution de l'outil, car les entités initiales sont toutes différentes. 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 vous aider à déterminer le nombre optimal de groupes lorsque l'option NO_SPATIAL_CONSTRAINT est sélectionnée, l'outil résout 10 fois l'analyse des regroupements de 2 à 15 groupes. Les informations concernant la distribution des ces 10 solutions sont ensuite consignées (min, max, moyenne et médiane) afin de vous aider à déterminer le nombre optimal de groupes pour votre analyse.
L'outil Analyse des regroupements renvoie trois valeurs en sortie dérivées pour éventuellement les utiliser dans les modèles et les scripts personnalisés. Il s'agit des statistiques pseudo-F pour le Nombre de groupes (Output_FStat), de la statistique pseudo-F la plus élevée pour les groupes 2 à 15 (Max_FStat) et du nombre de groupes associé à la valeur statistique pseudo-F la plus élevée (Max_FStat_Group). Lorsque vous choisissez de ne pas Evaluer le nombre optimal de groupes, toutes les variables en sortie dérivées sont définies sur Aucun.
Le nombre de groupes attribué à un jeu d'entités peut changer à chaque exécution. Supposons, par exemple, que vous divisiez les entités en deux groupes 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 "groupe 2" et les entités de revenu faible "groupe 1". Lors de la deuxième exécution, il se peut que les entités de revenu élevé s'intitulent "groupe 1". Il peut également arriver que certaines entités de revenu moyen changent de groupe à chaque exécution lorsque l'option NO_SPATIAL_CONSTRAINT est sélectionnée.
Bien que vous puissiez choisir de créer un grand nombre de groupes différents, dans la plupart des cas, vous diviserez les entités en quelques groupes seulement. Comme les graphiques et les cartes contenant de nombreux groupes sont plus difficiles à interpréter, aucun rapport n'est créé lorsque vous entrez une valeur supérieure à 15 dans Nombre de groupes ou lorsque vous sélectionnez plus de 15 Champs d'analyse. Toutefois, vous pouvez augmenter la limite du nombre maximum de groupes.
Approfondissement :Comme vous disposez du code source Python pour l'outil Analyse des regroupements, vous pouvez ignorer la limite de 15 variables/15 groupes, si vous le souhaitez. Cette limite supérieure est définie par deux variables dans le fichier script Partition.py et dans le code de validation de l'outil de la boîte à outils Spatial Statistics :
maxNumGroups = 15 maxNumVars = 15
Si vous le souhaitez, cet outil peut également générer un fichier PDF récapitulant les résultats. Les fichiers PDF n'apparaissent pas automatiquement dans la fenêtre Catalogue. Si vous souhaitez afficher des fichiers PDF dans la fenêtre Catalogue, ouvrez l'application ArcCatalog, sélectionnez l'option de menu Personnaliser, cliquez sur Options ArcCatalog et sélectionnez l'onglet Types de fichiers. Cliquez sur le bouton Nouveau type et, pour la valeur du paramètre Extension de fichier, spécifiez PDF comme indiqué ci-après.
Sur des machines configurées avec les modules linguistiques d'ArcGIS pour le chinois ou le japonais, vous remarquerez peut-être du texte manquant et des problèmes de mise en forme dans le Fichier de rapport en sortie (au format PDF). Pour remédier à ces problèmes, il suffit de modifier les paramètres de police.
Pour en savoir plus sur le Fichier de rapport en sortie, reportez-vous à la rubrique En savoir plus sur le fonctionnement de l'outil Analyse des regroupements
Syntaxe
Paramètre | Explication | Type de données |
Input_Features |
Classe ou couche d'entités pour laquelle vous souhaitez créer des groupes. | Feature Layer |
Unique_ID_Field |
Champ d'entier qui contient une valeur différente pour chaque entité du jeu de données Entités en entrée. | Field |
Output_Feature_Class |
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 le groupe auquel chaque entité appartient. | Feature Class |
Number_of_Groups |
Nombre de groupes à créer. Le paramètre Rapport en sortie sera désactivé s'il y a plus de 15 groupes. | Long |
Analysis_Fields [Analysis_Fields,...] |
Liste de champs à utiliser pour distinguer les groupes entre eux. Le paramètre Rapport en sortie sera désactivé s'il y a plus de 15 champs. | Field |
Spatial_Constraints |
Indique si (et comment) les relations spatiales entre les entités doivent contraindre les groupes créés.
| String |
Distance_Method (Facultatif) |
Spécifie le mode de calcul des distances de chaque entité avec les entités voisines.
| String |
Number_of_Neighbors (Facultatif) |
Ce paramètre est activé lorsque le paramètre Contraintes spatiales est défini sur K_NEAREST_NEIGHBORS ou par l'une des méthodes CONTIGUITY. Par défaut, le nombre de voisins est 8. Pour K_NEAREST_NEIGHBORS, cette valeur d'entier reflète le nombre exact des plus proches candidats voisins à prendre en compte lors de la création de groupes. Une entité n'est incluse dans un groupe que si l'une des autres entités de ce groupe fait partie des k plus proches voisins. Pour les méthodes CONTIGUITY, cette valeur reflète le nombre exact de candidats voisins à prendre en compte pour les polygones d'îles uniquement. Comme les polygones d'îles n'ont pas de voisins contigus, des voisins non contigus mais proches leur seront attribués. | Long |
Weights_Matrix_File (Facultatif) |
Chemin d'accès à un fichier contenant les pondérations spatiales qui définissent les relations spatiales parmi les entités. | File |
Initialization_Method (Facultatif) |
Indique comment les valeurs initiales sont obtenues lorsque le paramètre NO_SPATIAL_CONSTRAINT sélectionné est NO_SPATIAL_CONSTRAINT. Les valeurs initiales sont utilisées pour créer des groupes. Si vous spécifiez 3 groupes, par exemple, l'analyse commence avec trois valeurs initiales.
| 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 groupes. | Field |
Output_Report_File (Facultatif) |
Chemin d'accès complet au fichier .pdf du rapport à créer, récapitulant les caractéristiques des groupes. Ce rapport contient plusieurs graphiques qui vous aideront à comparer les caractéristiques de chacun des groupes. La création de ce fichier de rapport peut augmenter considérablement la durée de traitement. | File |
Evaluate_Optimal_Number_of_Groups (Facultatif) |
| Boolean |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil GroupingAnalysis.
import arcpy
import arcpy.stats as SS
arcpy.env.workspace = r"C:\GA"
SS.GroupingAnalysis("Dist_Vandalism.shp", "TARGET_FID", "outGSF.shp", "4",
"Join_Count;TOTPOP_CY;VACANT_CY;UNEMP_CY",
"NO_SPATIAL_CONSRAINT", "EUCLIDEAN", "", "", "FIND_SEED_LOCATIONS", "",
"outGSF.pdf", "DO_NOT_EVALUATE")
Le script Python autonome ci-dessous illustre l'utilisation de l'outil GroupingAnalysis.
# Grouping Analysis of Vandalism data in a metropolitan area
# using the Grouping Analysis Tool
# Import system modules
import arcpy, os
import arcpy.stats as SS
# Set geoprocessor object property to overwrite existing output, by default
arcpy.gp.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 Grouping Anlysis tool to create groups based on different variables or analysis fields
# Process: Group Similar Features
ga = SS.GroupingAnalysis("Dist_Vand.shp", "TARGET_FID", "outGSF.shp", "4",
"Join_Count;TOTPOP_CY;VACANT_CY;UNEMP_CY",
"NO_SPATIAL_CONSRAINT", "EUCLIDEAN", "", "", "FIND_SEED_LOCATIONS", "",
"outGSF.pdf", "DO_NOT_EVALUATE")
# Use Summary Statistic tool to get the Mean of variables used to group
# Process: Summary Statistics
SumStat = arcpy.Statistics_analysis("outGSF.shp", "outSS", "Join_Count MEAN; \
VACANT_CY MEAN;TOTPOP_CY MEAN;UNEMP_CY MEAN",
"GSF_GROUP")
except:
# 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 sur le système de coordonnées en sortie avant l'analyse, de sorte que les valeurs saisies pour le paramètre Canal distance ou distance seuil correspondent à celles spécifiées dans le système de coordonnées en sortie. Tous les calculs mathématiques sont basés sur la référence spatiale du système de coordonnées en sortie.