Agrégation multivariée spatialement contrainte (Statistiques spatiales)

Résumé

Recherche des agrégats spatialement contigus d’entités basées sur un jeu de valeurs attributaires d’entités et des limites de taille d’agrégat facultatives.

En savoir plus sur le fonctionnement de l’agrégation multivariée spatialement contrainte

Illustration

Diagramme multivarié spatialement contraint

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 dépend du 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.

  • L’entrée peut être des points ou des polygones.
  • Cet outil crée également des messages et des diagrammes permettant de 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 des messages dans la fenêtre Géotraitement. Vous pouvez également accéder aux messages d’une exécution précédente de l’outil Spatially Constrained Multivariate Clustering (Agrégation multivariée spatialement contrainte) via l’historique de géotraitement. Les diagrammes créés sont accessibles dans depuis la fenêtre Contents (Contenu).

  • 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 Output Features (Entités en sortie). Vous pouvez utiliser des champs de catégorie avec l’outil s’ils sont représentés par des variables 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 spatialement contrainte constitue des agrégats en tenant compte de l’espace (et, éventuellement, des contraintes temporelles lorsqu’il utilise une matrice de pondérations spatiales). Dans certains cas, vous ne souhaitez peut-être pas imposer de contraintes de contiguïté ni d’autres critères de proximité aux agrégats créés. Dans ces cas, utilisez l’outil Multivariate Clustering (Agrégation multivariée) pour créer des agrégats sans contraintes spatiales.

  • La taille des agrégats peut être gérée par le paramètre Cluster Size Constraints (Contraintes de taille des agrégats). Vous pouvez définir un seuil minimal et un seuil maximal que chaque agrégat doit satisfaire. Les contraintes de taille peuvent correspondre au Number of Features (Nombre d’entités) que chaque agrégat contient ou à la somme d’une Attribute Value (Valeur attributaire). Si, par exemple, vous agrégez des comtés des États-Unis sur la base de variables économiques, vous pouvez spécifier que chaque agrégat compte une population minimale de 5 millions et une population maximale de 25 millions d’habitants.

  • Lorsqu’une contrainte Fill to Limit (Limite de remplissage) est spécifiée, l’algorithme commence par former un seul agrégat, puis le divise et définit les agrégats jusqu’à ce que chacun d’entre eux soit inférieur à la valeur Fill to Limit (Limite de remplissage) en tenant compte de toutes les variables à chaque division. La division s’arrête lorsque la contrainte est satisfaite, même si une division supplémentaire des agrégats pourrait donner de meilleurs résultats.

  • Si le maximum et le minimum sont définis sur des valeurs proches, la valeur du paramètre Cluster Size Constraints (Contraintes de taille des agrégats) de l’un des agrégats finals peut ne pas être satisfaite.

  • Parfois, le paramètre Cluster Size Constraints (Contraintes de taille des agrégats) peut ne pas être respecté pour tous les agrégats du fait de la manière dont l’arbre couvrant de poids minimal est construit. L’exécution de l’outil prend fin et l’agrégat n’ayant pas satisfait les contraintes de taille est signalé dans les messages.

  • Cet outil crée des agrégats spatialement contigus. Les options de contiguïté activées pour les classes d’entités surfaciques indiquent que les entités peuvent seulement faire partie du même agrégat si elles partagent une limite (Contiguity edges only [Tronçons de contiguïté uniquement]) ou si elles partagent soit une limite, soit un sommet (Contiguity edges corners [Angles des tronçons de contiguïté]) avec un autre membre de l’agrégat. L’option Trimmed Delaunay triangulation (Triangulation de Delaunay avec élimination des points) garantit que les points aberrants ou les îlots peuvent être agrégés et forment éventuellement des agrégats déconnectés.

  • La valeur par défaut Spatial Constraints (Contraintes spatiales) pour Input Features (Entités en entrée) de type point est Trimmed Delaunay triangulation (Triangulation de Delaunay avec élimination des points) ; elle garantit que tous les membres de l’agrégat sont proches et qu’une entité n’est incluse dans l’agrégat qu’à condition qu’au moins une autre entité est un voisin naturel. Cette méthode fait appel à la triangulation de Delaunay pour rechercher les points voisins et rogne les triangles par une enveloppe convexe. Cela garantit que les entités ponctuelles ne peuvent être des voisins d’entités situées hors de l’enveloppe convexe.

  • L’option Trimmed Delaunay triangulation (Triangulation de Delaunay avec élimination des points) garantit que les entités voisines se trouvent à proximité immédiate l’une de l’autre. Si vos données comportent des points spatiaux aberrants, l’effet de cette méthode sera limité. En effet, les triangles Delaunay s’étendent si loin que le rognage par l’enveloppe convexe affecte peu les entités n’étant pas à proximité immédiate sans les points aberrants spatiaux.

  • Vous pouvez imposer des contraintes spatiales supplémentaires, comme une distance fixe ou K voisins les plus proches. À cette fin, utilisez l’outil Generate Spatial Weights Matrix (Générer la matrice de pondérations spatiales) pour créer un fichier de matrice de pondérations spatiales (.swm), puis indiquez le chemin d’accès à ce fichier pour le paramètre Spatial Weights Matrix File (Fichier de matrice de pondérations spatiales).

    Remarque :

    Même si vous pouvez créer un fichier de matrice de pondérations spatiales (SWM) pour définir des contraintes spatiales, aucune pondération n’est appliquée. Les relations deviennent binaires lorsque vous définissez les contraintes spatiales au sein de l’algorithme d’agrégation, même si une méthode telle que Inverse Distance (Inverse de la distance) est appliquée. Si Inverse Distance (Inverse de la distance) est utilisé sans distance limite, il en résulte un fichier SWM définissant les entités en fonction des pondérations ; l’algorithme d’agrégation ignore ces pondérations et définit chaque entité comme le voisin d’une autre entité. Cette opération peut affecter les performances et engendrer des groupes qui ne sont pas véritablement contraints spatialement. De la même manière, opter pour une conceptualisation K nearest neighbors (K voisins les plus proches) peut donner lieu à des agrégats spatialement contraints mais pas nécessairement contigus.

  • Pour créer des agrégats soumis à des contraintes spatiales et temporelles, utilisez l’outil Generate Spatial Weights Matrix (Générer la matrice de pondérations spatiales) pour créer un fichier de matrice de pondérations spatiales (.swm) définissant les relations spatio-temporelles entre les entités. Exécutez ensuite l’outil Spatially Constrained Multivariate Clustering (Agrégation multivariée spatialement contrainte) en définissant le paramètre Spatial Constraints (Contraintes spatiales) sur Get spatial weights from file (Extraire les pondérations spatiales à partir du fichier) et le paramètre Spatial Weights Matrix File (Fichier de matrice de pondérations spatiales) sur le fichier SWM que vous avez créé.

  • Pour créer des agrégats tridimensionnels qui prennent en compte les valeurs z de vos entités, utilisez l’outil Generate Spatial Weights Matrix (Générer la matrice de pondérations spatiales) en activant le paramètre Use Z values (Utiliser des valeurs Z) pour créer d’abord un fichier de matrice de pondérations spatiales (.swm) définissant les relations 3D de vos entités. Ensuite, exécutez Agrégation multivariée spatialement contrainte en définissant le paramètre Spatial Constraints (Contraintes spatiales) sur Get spatial weights from file (Extraire les pondérations spatiales à partir du fichier) et Spatial Weights Matrix File (Fichier de matrice de pondérations spatiales) sur le fichier SWM que vous avez créé.

  • Cet outil dépend de la mémoire disponible. Lorsque vous utilisez Spatial Weights Matrix (Matrice de pondérations spatiales), une conceptualisation des relations spatiales dans laquelle chaque entité a un grand nombre de voisins augmente le risque de problèmes liés à la mémoire.

  • En définissant une contrainte spatiale, vous êtes sûr que les agrégats sont compacts, contigus ou proximaux. L’ajout de variables spatiales à votre liste Analysis Fields (Champs d’analyse) encourage également ces attributs d’agrégats. 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 agrégat.

  • Une distribution spatiale caractéristique de vos entités (trois agrégats séparés, spatialement distincts, par exemple) peut compliquer l’algorithme d’agrégation spatialement contraint. Par conséquent, l’algorithme d’agrégation commence par déterminer si des agrégats sont déconnectés. Si le nombre d’agrégats déconnectés est supérieur à la valeur spécifiée pour Number of Clusters (Nombre d’agrégats), l’outil ne peut pas s’exécuter. Un message d’erreur s’affiche alors. Si le nombre d’agrégats déconnectés est identique à la valeur spécifiée pour Number of Clusters (Nombre d’agrégats), la configuration spatiale des seules entités détermine les résultats de l’agrégation, comme l’illustre l’image (A) ci-dessous. Si la valeur spécifiée pour Number of Clusters (Nombre d’agrégats) est supérieure au nombre d’agrégats déconnectés, l’agrégation commence par les agrégats déconnectés déjà déterminés. Par exemple, si trois agrégats sont déconnectés et si la valeur spécifiée pour Number of Clusters (Nombre d’agrégats) est 4, l’un des trois agrégats sera divisé pour en créer un quatrième, comme l’illustre l’image (B) ci-dessous.

    Agrégats déconnectés

  • Dans certains cas, l’outil Agrégation multivariée spatialement contrainte n’est pas en mesure de respecter les contraintes spatiales imposées ; les entités sans voisins constituent alors les seules entités de leur agrégat. La définition du paramètre Spatial Constraints (Contraintes spatiales) sur Trimmed Delaunay triangulation (Triangulation de Delaunay avec élimination des points) permet de résoudre les problèmes soulevés par les agrégats 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 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.

  • 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 tester 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 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 Output Table for Evaluating Number of Clusters (Table en sortie pour l’évaluation du nombre d’agrégats), un diagramme est créé et représente les valeurs statistiques F pour les solutions de 2 à 30 agrégats. Les valeurs statistiques F les plus élevées désignent les solutions qui optimisent le mieux les similarités à l’intérieur des clusters et les différences entre les clusters. 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

  • Quelle que soit la valeur Number of Clusters (Nombre d’agrégats) spécifié, l’outil s’arrête si la division en agrégats supplémentaires devient arbitraire. Par exemple, vos données sont composées de trois polygones spatialement agrégés et d’un seul champ d’analyse. Si toutes les entités d'un agrégat ont la même valeur de champ d'analyse, la division de chaque agrégat devient arbitraire après la création des trois groupes. Si vous spécifiez plus de trois agrégats dans ce cas de figure, l’outil continue à ne créer que trois agrégats. Tant qu’au moins un des champs d’analyse d’un agrégat comporte des variations de valeurs, la division en agrégats supplémentaires peut se poursuivre.

    Aucun autre agrégat n’est créé
    Les agrégats ne sont pas divisés davantage si les valeurs du champ d’analyse ne présentent aucune variation.

  • Lorsque vous incluez une contrainte spatiale ou spatio-temporelle dans votre analyse, les valeurs statistiques pseudo-F sont comparables (à condition que les paramètres Input Features [Entités en entrée] et Analysis Fields [Champs d’analyse] ne changent pas). Par conséquent, vous pouvez utiliser les valeurs statistiques F pour déterminer non seulement le nombre d’agrégats optimal, mais également pour choisir l’option Spatial Constraints (Contraintes spatiales) la plus efficace.

  • 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 ». 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.

  • Le paramètre Permutations to Calculate Membership Probabilities (Permutations pour calculer les probabilités d’appartenance) utilise les permutations et l’accumulation de preuves pour calculer la probabilité d’appartenance à l’agrégat pour chaque entité. Une probabilité élevée indique que vous pouvez avoir confiance dans le fait que l’entité appartient à l’agrégat auquel elle a été affectée. Une faible probabilité peut indiquer que l’entité est très différente de l’agrégat auquel elle a été affectée ou encore qu’elle pourrait être incluse dans un autre agrégat en cas d’une modification particulière des paramètres Analysis Fields (Champs d’analyse), Cluster Size Constraints (Contraintes de taille des agrégats) ou Spatial Constraints (Contraintes spatiales). Le calcul de ces probabilités fait appel à des permutations d’arbres couvrant de poids minimal aléatoires et à l’accumulation de preuves. L’exécution des jeux de données les plus volumineux peut durer un temps considérable. Il est recommandé de commencer par exécuter plusieurs itérations pour trouver le nombre optimal d’agrégats pour votre analyse et, dans un deuxième temps, de calculer les probabilités pour votre analyse. Vous pouvez également augmenter les performances en augmentant l’environnement Parallel Processing Factor (Facteur de traitement parallèle).

  • Lorsque les entités en entrée (Input Features) ne sont pas projetées (c’est-à-dire, lorsque les coordonnées sont exprimées en degrés, minutes et secondes) ou lorsque le système de coordonnées en sortie est un système de coordonnées géographiques, les distances sont calculées à l’aide des mesures à la corde. Les mesures de distance de corde sont utilisées, car elles sont rapides à calculer et produisent des évaluations fiables des distances géodésiques réelles, du moins pour les points se trouvant à environ 30 degrés les uns des autres. Les distances de corde reposent sur un sphéroïde aplati. Si l'on prend deux points sur la surface de la Terre, la distance de corde qui les sépare est la longueur d'une ligne qui traverse la Terre en trois dimensions pour relier ces deux points. Les distances à la corde sont exprimées en mètres.

    Attention :

    Il est recommandé de projeter les données notamment si votre zone d’étude s’étend au-delà de 30 degrés. Les distances à la corde ne constituent pas une bonne estimation des distance géodésiques au-delà de 30 degrés.

  • Cet outil prend en charge le traitement parallèle et utilise 50 pour cent des processeurs disponibles par défaut. Le nombre de processeurs utilisés peut être augmenté ou réduit à l’aide de l’environnement Parallel Processing Factor (Facteur de traitement parallèle).

Syntaxe

SpatiallyConstrainedMultivariateClustering(in_features, output_features, analysis_fields, {size_constraints}, {constraint_field}, {min_constraint}, {max_constraint}, {number_of_clusters}, {spatial_constraints}, {weights_matrix_file}, {number_of_permutations}, output_table)
ParamètreExplicationType 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_fields,...]

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

Field
size_constraints
(Facultatif)

Spécifie la taille des agrégats en fonction du nombre d’entités par groupe ou d’une valeur attributaire cible par groupe.

  • NONEAucune contrainte de taille des agrégats ne sera utilisée. Il s’agit de l’option par défaut.
  • NUM_FEATURESUn nombre minimum et un nombre maximum d’entités par groupe seront utilisés.
  • ATTRIBUTE_VALUEUne valeur attributaire minimum et une valeur attributaire maximum par groupe seront utilisées.
String
constraint_field
(Facultatif)

Valeur attributaire à additionner par agrégat.

Field
min_constraint
(Facultatif)

Nombre minimum d’entités par agrégat ou valeur attributaire minimum par agrégat. Cette valeur doit être positive.

Double
max_constraint
(Facultatif)

Nombre maximum d’entités par agrégat ou valeur attributaire maximum par agrégat. Si une contrainte maximum est définie, le paramètre number_of_clusters est désactivé. Cette valeur doit être positive.

Double
number_of_clusters
(Facultatif)

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

Ce paramètre est désactivé si un nombre maximum d’entités ou une valeur attributaire maximum a été défini.

Long
spatial_constraints
(Facultatif)

Indique comment les relations spatiales seront définies parmi les entités.

  • CONTIGUITY_EDGES_ONLYLes agrégats contiennent des entités surfaciques contiguës. Seuls les polygones partageant un tronçon peuvent appartenir au même agrégat.
  • CONTIGUITY_EDGES_CORNERS Les agrégats contiennent des entités surfaciques contiguës. Seuls les polygones partageant un tronçon ou un sommet peuvent appartenir à même agrégat. Il s'agit de la valeur par défaut pour les entités surfaciques.
  • TRIMMED_DELAUNAY_TRIANGULATION Les entités d’un même l’agrégat auront au moins un voisin en commun avec une autre entité de l’agrégat. Les relations avec les voisins naturels sont basées sur la triangulation de Delaunay avec élimination des points. En principe, la triangulation de Delaunay crée un maillage de triangles non superposés à partir de centroïdes d’entités. Chaque entité est un nœud de triangle, et les nœuds qui partagent des segments sont considérés comme voisins. Ces triangles sont ensuite découpés selon une enveloppe convexe de sorte que les entités ne puissent pas avoir pour voisines d’autres entités situées en dehors de l’enveloppe convexe. Il s’agit de la valeur par défaut pour les entités ponctuelles.
  • GET_SPATIAL_WEIGHTS_FROM_FILELes relations spatiales, et éventuellement temporelles, sont définies par un fichier de pondérations spatiales (.swm) spécifique. Créez la matrice de pondérations spatiales à l’aide de l’outil Generate Spatial Weights Matrix (Générer la matrice de pondérations spatiales) ou Generate Network Spatial Weights (Générer les pondérations spatiales de réseau). Le chemin d'accès au fichier de pondérations spatiales est donné par le paramètre Weights_Matrix_File.
String
weights_matrix_file
(Facultatif)

Chemin d’accès à un fichier contenant des pondérations spatiales qui définissent les relations spatiales, et potentiellement les relations temporelles, entre des entités.

File
number_of_permutations
(Facultatif)

Nombre de permutations aléatoires pour le calcul des scores de stabilité d’appartenance. Si la valeur 0 (zéro) est choisie, les probabilités ne sont pas calculées. Le calcul de ces probabilités fait appel à des permutations d’arbres couvrant de poids minimal aléatoires et à l’accumulation de preuves.

Ce calcul peut être particulièrement long en cas de traitement de jeux de données très volumineux. Il est recommandé de commencer par exécuter plusieurs itérations pour trouver le nombre optimal d’agrégats pour votre analyse et, dans un deuxième temps, de calculer les probabilités pour votre analyse. Définir le paramètre d’environnement Parallel Processing Factor (Facteur de traitement parallèle) sur 50 peut améliorer le temps d’exécution de l’outil.

Long
output_table

Table créée contenant les résultats des valeurs statistiques F calculées pour évaluer le nombre optimal d’agrégats. Le diagramme créé à partir de cette table est accessible dans la fenêtre Contents (Contenu), sous la couche d’entités en sortie.

Table

Exemple de code

Exemple 1 d’utilisation de l’outil SpatiallyConstrainedMultivariateClustering (fenêtre Python)

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

import arcpy arcpy.env.workspace = r"C:\Analysis arcpy.SpatiallyConstrainedMultivariateClustering_stats("CA_schools", "CA_Schools_100k_Students", "NumStudent",                                          "ATTRIBUTE_VALUE", "NumStudent", 100000, None, None,
                                          "CONTIGUITY_EDGES_CORNERS")
Exemple 2 d’utilisation de l’outil SpatiallyConstrainedMultivariateClustering (script autonome)

Le script Python ci-dessous illustre l’utilisation de l’outil SpatiallyConstrainedMultivariateClustering.

# Creating regions of similar schools districts with at least 100,0000 students each
# Import system modules
import arcpy
# Set property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"E:\working\data.gdb"
arcpy.env.workspace = workspace
# Create clusters of schools with a minimum of 100,000 students
arcpy.stats.SpatiallyConstrainedMultivariateClustering("CA_schools", "CA_Schools_100k_Students", "NumStudent",
                                          "ATTRIBUTE_VALUE", "NumStudent", 100000, None, None,
                                          "CONTIGUITY_EDGES_CORNERS")
# Create a spatial weights matrix using k nearest neighbors 16 to have more control over the search neighborhood
arcpy.stats.GenerateSpatialWeightsMatrix(r"E:\working\data.gdb\CA_schools", "UID",
                                         r"E:\working\schools_knn_16.swm", "K_NEAREST_NEIGHBORS", "EUCLIDEAN", 1,
                                         None, 16, "NO_STANDARDIZATION", None, None, None, None, "DO_NOT_USE_Z_VALUES")
# Create clusters again this time using the SWM file for search neighborhood and a maximum number
# of students per cluster
arcpy.stats.SpatiallyConstrainedMultivariateClustering("CA_schools", "CA_Schools_SWM_Knn16", "NumStudent", "ATTRIBUTE_VALUE",
                                          "NumStudent", None, 250000, None, "GET_SPATIAL_WEIGHTS_FROM_FILE",
                                          r"E:\working\schools_knn_16.swm")
# Use Summary Statistics with Cluster ID as a case field to see how many students were assigned to each cluster
arcpy.analysis.Statistics("CA_Schools_SWM_Knn16", "School_SummaryStatistics", "NumStudent SUM", "CLUSTER_ID")

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.

Informations de licence

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

Rubriques connexes