Analyse de colocalisation (Statistiques spatiales)

Résumé

Mesure les motifs locaux de l’association spatiale, ou colocalisation, entre deux catégories d’entités ponctuelles à l’aide de la statistique de quotient de colocalisation.

En savoir plus sur le fonctionnement de l’outil Analyse de colocalisation

Illustration

Diagramme d’analyse de colocalisation

Utilisation

  • Cet outil n’accepte que les entités ponctuelles. Les catégories que vous souhaitez analyser peuvent être contenues dans les mêmes jeux de données ou dans des jeux de données distincts. Vous pouvez également utiliser deux jeux de données distincts à considérer comme catégories. Par exemple, vous pouvez disposer d’un jeu de données ponctuelles contenant de nombreux types de restaurants qui ne sera considéré que comme catégorie RESTAURANTS et un autre jeu de données ponctuelles contenant de nombreux types de crimes qui ne sera considéré que comme catégorie CRIMES.

  • Pour chaque entité de la catégorie d’intérêt (Category of Interest), l’outil détermine si les entités de la catégorie voisine (Neighboring Category) sont plus ou moins présentes dans le voisinage de l’entité par rapport à la distribution spatiale globale des catégories. Par exemple, pour chaque entité de la catégorie A, une valeur de quotient de colocalisation locale (LCLQ) résultante de 1 signifie que vous avez autant de chances d’avoir la catégorie B en tant que voisin que vous pourriez vous y attendre. Une valeur LCLQ supérieure à 1 signifie que vous avez plus de chances (qu’aléatoirement) que la catégorie B soit un voisin, et une valeur LCLQ inférieure à 1 signifie que l’entité de la catégorie A a moins de chances d’avoir une catégorie B comme votre voisin (qu’une distribution aléatoire).

    Remarque :

    La relation de colocalisation de cette analyse n’est pas symétrique. Les valeurs de quotient de colocalisation calculées lors de la comparaison de la catégorie A à la catégorie B sont différentes des valeurs de quotient de colocalisation calculées lors de la comparaison de la catégorie B à la catégorie A.

    De plus, si vous avez la catégorie C dans votre voisinage, les quotients de colocalisation résultants sont différents des valeurs obtenues si vous n’aviez que les catégories A et B. Selon la question que vous posez, il peut être important de créer un sous-jeu de vos données pour n’inclure que les catégories A et B. Toutefois, lors de la création d’un sous-jeu, vous perdez des informations sur les autres catégories présentes. La sélection et la création d’un sous-ensemble de données sont importantes lorsque vous êtes certain que l’occurrence d’une catégorie n’est en rien affectée par l’occurrence d’une autre.

  • Les relations spatiales peuvent être définies à l’aide d’un canal de distance (Distance band), des k voisins les plus proches (K nearest neighbors) ou d’un fichier matrice de pondérations spatiales via le paramètre Neighborhood Type (Type de voisinage).

  • Vous pouvez analyser vos données à l’aide de fenêtres spatio-temporelles en spécifiant les paramètres Time Field of Interest (Champ temporel d’intérêt), Time Field of Neighboring Categories (Champ temporel de catégories voisines) et Temporal Relationship Type (Type de relation temporelle). Avec les fenêtres spatio-temporelles, vous pouvez déterminer quelles entités sont incluses dans le voisinage analysé. Les entités proches les unes des autres dans l’espace et dans le temps sont analysées ensemble car toutes les relations entre les entités sont évaluées par rapport à l’emplacement et à l’horodatage de l’entité cible. Vous pouvez également indiquer si l’outil recherche des entités avant ou après l’entité cible, ou créer une période pendant laquelle l’outil recherche des entités avant ou après l’entité cible en cours d’analyse.

  • Le paramètre Number of Permutations (Nombre de permutations) est utilisé pour calculer les valeurs p. Le choix du nombre de permutations doit faire l’objet d’un compromis entre précision et augmentation du temps de traitement. La valeur par défaut est de 99 permutations, mais il est recommandé d’augmenter le nombre de permutations pour les résultats d’analyse finaux.

  • Un quotient de colocalisation global peut également être calculé en spécifiant un chemin pour le paramètre Output Table for Global Relationships (Table en sortie pour les relations globales). Cette table contient des quotients de colocalisation afin que vous puissiez analyser les mesures d’association spatiale entre toutes les catégories dans votre jeu de données. Cela vous permet d’explorer d’autres relations dans vos données, car il se peut que vous trouviez d’autres catégories fortement colocalisées globalement. Si vous trouvez d’autres catégories fortement colocalisées, vous pouvez étendre votre analyse en explorant la nature locale de cette relation en exécutant de nouveau l’outil avec ces catégories d’intérêt, ou en exécutant de nouveau l’outil en supprimant ces catégories de l’analyse si vous pensez que les catégories fortement colocalisées introduisent des déformations inutiles dans vos résultats.

  • Cet outil génère une carte affichant chacune des entités d’intérêt en entrée (Input Features of Interest) symbolisée selon qu’elle est significativement colocalisée avec ou isolée des entités voisines en entrée (Input Neighboring Features). L’outil ajoute des champs aux entités en sortie (Output Features), y compris le quotient de colocalisation locale calculé, la valeur p, la classe LCLQ utilisée pour la symbolisation, ainsi que le type LCLQ. Il est possible de spécifier une table facultative, pour le paramètre Output Table for Global Relationships (Table en sortie pour les relations globales), qui indique les quotients de colocalisation globale entre toutes les catégories du paramètre Field of Interest (Champ d’intérêt) et toutes les catégories du paramètre Field Containing the Neighboring Category (Champ contenant la catégorie voisine).

  • 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 Facteur de traitement parallèle.

Syntaxe

arcpy.stats.ColocationAnalysis(input_type, in_features_of_interest, output_features, {field_of_interest}, {time_field_of_interest}, {category_of_interest}, {input_feature_for_comparison}, {field_for_comparison}, {time_field_for_comparison}, {category_for_comparison}, neighborhood_type, {number_of_neighbors}, {distance_band}, {weights_matrix_file}, {temporal_relationship_type}, {time_step_interval}, {number_of_permutations}, {local_weighting_scheme}, {output_table})
ParamètreExplicationType de données
input_type

Indique si les valeurs de paramètre in_features_of_interest proviennent du même jeu de données ayant des catégories spécifiées, de jeux de données différents ayant des catégories spécifiées, ou de jeux de données différents traités comme leur propre catégorie (par exemple, un jeu de données dont tous les points représentent les guépards et un second jeu de données dont tous les points représentent les gazelles).

  • SINGLE_DATASETLes catégories à analyser existent dans un champ de jeu de données unique.
  • TWO_DATASETSLes catégories à analyser existent dans des champs de jeux de données distincts.
  • DATASETS_WITHOUT_CATEGORIESDeux jeux de données distincts représentant deux catégories sont analysés.
String
in_features_of_interest

Classe d’entités contenant des points avec les catégories respectives.

Feature Layer
output_features

Classe d’entités en sortie contenant toutes les valeurs de paramètre in_features avec des champs représentant les scores de quotient de colocalisation locale et les valeurs p.

Feature Class
field_of_interest
(Facultatif)

Champ contenant la ou les catégories à analyser.

Field
time_field_of_interest
(Facultatif)

Champ de date contenant un horodatage facultatif pour chaque entité afin d’analyser les points à l’aide d’une fenêtre spatio-temporelle. Les entités proches les unes des autres dans l’espace et dans le temps sont considérées comme voisines et sont analysées ensemble.

Field
category_of_interest
(Facultatif)

Catégorie de base de l’analyse. L’outil détermine, pour chaque valeur category_of_interest, le degré auquel la catégorie de base est attirée par ou colocalisée avec la valeur de paramètre neighboring_category.

String
input_feature_for_comparison
(Facultatif)

Classe d’entités en entrée contenant les points avec les catégories qui seront comparées.

Feature Layer
field_for_comparison
(Facultatif)

Champ du paramètre input_feature_for_comparison contenant la catégorie à comparer.

Field
time_field_for_comparison
(Facultatif)

Champ de date contenant un horodatage pour chaque entité afin d’analyser vos points à l’aide d’une fenêtre spatio-temporelle. Les entités proches les unes des autres dans l’espace et dans le temps sont considérées comme voisines et sont analysées ensemble.

Field
category_for_comparison
(Facultatif)

Catégorie voisine pour l’analyse. L’outil détermine le degré auquel la valeur de paramètre category_of_interest est attirée par ou isolée de la valeur category_for_comparison.

String
neighborhood_type

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

  • DISTANCE_BANDChaque entité sera analysée dans le contexte des entités voisines. Les entités voisines situées dans la distance critique spécifiée par distance_band reçoivent une pondération de 1 et exercent une influence sur les calculs de l’entité cible. Les entités voisines situées au-delà de la distance critique reçoivent une pondération de zéro et n'exercent aucune influence sur les calculs de l'entité cible.
  • K_NEAREST_NEIGHBORSLes k entités les plus proches sont incluses dans l’analyse en tant que voisines. Le nombre de voisins est défini par le paramètre number_of_neighbors. L’influence du voisin dans l’analyse est pondérée en fonction de la distance jusqu’au voisin le plus proche. Il s’agit de l’option par défaut.
  • GET_SPATIAL_WEIGHTS_FROM_FILELorsque SINGLE_DATASET est utilisé comme input_type, les relations spatiales sont définies par un fichier matrice de pondérations spatiales spécifié. L’influence du voisin dans l’analyse est pondérée en fonction de la distance jusqu’au voisin le plus proche. Le chemin d'accès au fichier de pondérations spatiales est donné par le paramètre weights_matrix_file.
String
number_of_neighbors
(Facultatif)

Le nombre de voisins autour de chaque entité qui sera utilisé pour tester l’existence de relations locales entre les catégories. Si aucune valeur n’est fournie, la valeur 8 est utilisée par défaut. La valeur fournie doit être suffisamment grande pour détecter les relations entre les entités, tout en étant suffisamment petite pour continuer à identifier les modèles locaux.

Long
distance_band
(Facultatif)

La taille du voisinage est une distance fixe ou constante de chaque entité. Toutes les entités dans cette distance seront utilisées pour tester l’existence de relations locales entre les catégories. Si aucune valeur n’est fournie, la distance utilisée sera la distance moyenne à laquelle chaque entité possède au moins huit voisins.

Linear Unit
weights_matrix_file
(Facultatif)

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

File
temporal_relationship_type
(Facultatif)

Indique comment les relations temporelles sont définies parmi les entités.

  • BEFORELa fenêtre horaire s’étend en arrière dans le temps pour chacune des valeurs in_features_of_interest. Les entités voisines doivent posséder un intervalle d’horodatage se produisant avant l’intervalle d’horodatage de l’entité d’intérêt à inclure dans l’analyse. Il s’agit de l’option par défaut.
  • AFTERLa fenêtre horaire s’étend en avant dans le temps pour chacune des valeurs in_features_of_interest. Les entités voisines doivent posséder un intervalle d’horodatage se produisant après l’intervalle d’horodatage de l’entité d’intérêt à inclure dans l’analyse.
  • SPANLa fenêtre horaire s’étend à la fois en arrière et en avant dans le temps pour chacune des valeurs in_features_of_interest. Les entités voisines possédant un intervalle d’horodatage se produisant dans la valeur time_step_interval avant ou après l’intervalle d’horodatage de l’entité d’intérêt sont incluses dans l’analyse. Par exemple, si le paramètre time_step_interval est défini sur 1 semaine, la fenêtre se concentre sur 1 semaine avant et 1 semaine après l’entité cible.
String
time_step_interval
(Facultatif)

Nombre entier et unité de mesure reflétant le nombre d’unités temporelles composant la fenêtre horaire.

Time Unit
number_of_permutations
(Facultatif)

Nombre de permutations allant être utilisées pour créer une distribution de référence. Le choix du nombre de permutations doit faire l'objet d'un compromis entre précision et augmentation du temps de traitement. Choisissez entre la vitesse et la précision. Des résultats plus robustes et plus précis sont plus longs à calculer.

  • 99L’analyse utilisera 99 permutations. Avec 99 permutations, la plus petite pseudo valeur p possible est 0,02 et toutes les autres pseudo valeurs p sont des multiples de cette valeur. Il s’agit de l’option par défaut.
  • 199L’analyse utilisera 199 permutations. Avec 199 permutations, la pseudo valeur de p la plus petite possible est 0,01 et toutes les autres pseudo valeurs de p sont des multiples pairs de cette valeur.
  • 499L’analyse utilisera 499 permutations. Avec 499 permutations, la pseudo valeur de p la plus petite possible est 0,004 et toutes les autres pseudo valeurs de p sont des multiples pairs de cette valeur.
  • 999L’analyse utilisera 999 permutations. Avec 999 permutations, la pseudo valeur de p la plus petite possible est 0,002 et toutes les autres pseudo valeurs de p sont des multiples pairs de cette valeur.
  • 9999L’analyse utilisera 9 999 permutations. Avec 9 999 permutations, la pseudo valeur de p la plus petite possible est 0,0002 et toutes les autres pseudo valeurs de p sont des multiples pairs de cette valeur.
Long
local_weighting_scheme
(Facultatif)

Spécifie le type de noyau qui sera utilisé pour fournir la pondération spatiale. Le noyau indique comment les entités sont associées entre elles dans leur voisinage.

  • BISQUARELes entités sont pondérées en fonction de la distance du voisin le plus éloigné ou du tronçon du canal de distance, et une pondération de 0 est attribuée aux entités situées en dehors du voisinage spécifié.
  • GAUSSIANLes entités sont pondérées en fonction de la distance du voisin le plus éloigné ou du tronçon du canal de distance mais diminuent plus rapidement que l’option Bisquare (Bicarré). Une pondération de 0 est attribuée aux entités situées en dehors du voisinage spécifié. Il s’agit de l’option par défaut.
  • NONEAucun schéma de pondération n’est appliqué et toutes les entités dans le voisinage reçoivent une pondération de 1 et contribuent de manière égale. Toutes les entités en dehors du voisinage reçoivent une pondération de 0.
String
output_table
(Facultatif)

Table incluant les quotients de colocalisation globale entre toutes les catégories dans le paramètre Field of Interest (Champ d’intérêt) et toutes les catégories dans le paramètre Field Containing the Neighboring Category (Champ contenant la catégorie voisine). Cette table peut vous aider à déterminer les catégories locales à analyser.

Si Datasets without categories (Jeux de données sans catégories) est utilisé comme valeur de paramètre Input Type (Type en entrée), les quotients de colocalisation globale sont calculés pour chaque jeu de données et entre chaque jeu de données.

Table

Exemple de code

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

Le script de fenêtre Python ci-dessous illustre l’utilisation de la fonction ColocationAnalysis.

import arcpy
arcpy.env.workspace = r"C:\Analysis"
# Two categories from the same categorical field.
# Find the colocation of elementary schools and middle schools
arcpy.stats.ColocationAnalysis("SINGLE_DATASET", r"Colocation.gdb\Schools",
                               r"Outputs.gdb\School_Colocation", "Facility_Type", None,
                               "Elementary", None, None, None, "Middle", "K_NEAREST_NEIGHBORS",
                               8, None, None, "BEFORE", None, 99, "BISQUARE",
                               r"Outputs.gdb\Global_School_Colocation")
# Categories from different datasets without categories
# Find the colocation of elementary schools and hospitals
arcpy.stats.ColocationAnalysis("DATASETS_WITHOUT_CATEGORIES", r"Colocation.gdb\Schools",
                               r"Outputs.gdb\Schools_Hospitals", None, None, '',
                               r"Colocation.gdb\Hospitals", None, None, '', "DISTANCE_BAND",
                               None, "30 Kilometers", None, "BEFORE", None, 199, "GAUSSIAN",
                               None)
# Categories from two datasets
# Find the colocation of elementary schools and hospitals
arcpy.stats.ColocationAnalysis("TWO_DATASETS", r"Colocation.gdb\Schools",
                               r"Outputs.gdb\Elementary_Hospitals", "Facility_Type", None,
                               "Elementary", r"Colocation.gdb\Hospitals", None, None, '',
                               "K_NEAREST_NEIGHBORS", 15, None, None, "BEFORE", None, 499,
                               "NONE", None)
Exemple 2 d’utilisation de l’outil ColocationAnalysis (script autonome)

Le script Python autonome ci-dessous illustre l'utilisation de la fonction ColocationAnalysis.

# Analyze the spatial relationship (colocation) between elementary school locations and hospital locations
# Two categories from the same categorical field.
# Find the colocation of elementary schools and  middle schools
intype = "SINGLE_DATASET"
infc_interest = r"Colocation.gdb\Schools"
outfc = r"Outputs.gdb\School_Colocation"
field_interest = "Facility_Type"
time_field = ""
cat_interest = "Elementary"
infc_neigh = ""
field_neigh = ""
time_field_neigh = ""
cat_neigh = "Middle"
neighborhood_type = "K_NEAREST_NEIGHBORS"
num_neighbors = 8
dist_band = ""
swm_file = ""
temporal_type = ""
time_step_interval = ""
num_permutation = 99
weighting_scheme ="BISQUARE"
out_global_tbl = r"Outputs.gdb\Global_School_Colocation"
arcpy.stats.ColocationAnalysis(intype, infc_interest, outfc, field_interest,
                               time_field, cat_interest, infc_neigh, field_neigh,
                               time_field_neigh, cat_neigh, neighborhood_type,
                               num_neighbors, dist_band, swm_file, temporal_type,
                               time_step_interval num_permutation, weighting_scheme,
                               out_global_tbl)
# Categories from different datasets without categories
# Find the colocation of schools and hospitals
intype = "DATASETS_WITHOUT_CATEGORIES"
infc_interest = r"Colocation.gdb\Schools"
outfc = r"Outputs.gdb\Schools_Hospitals"
field_interest = ""
time_field = ""
cat_interest = ""
infc_neigh = r"Colocation.gdb\Hospitals"
field_neigh = ""
time_field_neigh = ""
cat_neigh = ""
neighborhood_type = "DISTANCE_BAND"
num_neighbors = ""
dist_band = "30 Kilometers"
swm_file = ""
temporal_type = ""
time_step_interval = ""
num_permutation = 199
weighting_scheme ="GAUSSIAN"
out_global_tbl = ""
arcpy.stats.ColocationAnalysis(intype, infc_interest, outfc, field_interest,
                               time_field, cat_interest, infc_neigh, field_neigh,
                               time_field_neigh, cat_neigh, neighborhood_type,
                               num_neighbors, dist_band, swm_file, temporal_type,
                               time_step_interval num_permutation, weighting_scheme,
                               out_global_tbl)
# Categories from two datasets
# Find the colocation of elementary schools and hospitals
intype = "TWO_DATASETS"
infc_interest = r"Colocation.gdb\Schools"
outfc = r"Outputs.gdb\Elementary_Hospitals"
field_interest = "Facility_Type"
time_field = ""
cat_interest = "Elementary"
infc_neigh = r"Colocation.gdb\Hospitals"
field_neigh = ""
time_field_neigh = ""
cat_neigh = ""
neighborhood_type = "K_NEAREST_NEIGHBORS"
num_neighbors = 15
dist_band = ""
swm_file = ""
temporal_type = ""
time_step_interval = ""
num_permutation = 499
weighting_scheme ="NONE"
out_global_tbl = ""
arcpy.stats.ColocationAnalysis(intype, infc_interest, outfc, field_interest,
                               time_field, cat_interest, infc_neigh, field_neigh,
                               time_field_neigh, cat_neigh, neighborhood_type,
                               num_neighbors, dist_band, swm_file, temporal_type,
                               time_step_interval num_permutation, weighting_scheme,
                               out_global_tbl)

Informations de licence

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

Rubriques connexes