Régression pondérée géographiquement (Statistiques spatiales)

Résumé

Calcule la régression pondérée géographiquement (Geographically Weighted Regression, GWR), formule locale de régression linéaire utilisée pour modéliser des relations variant spatialement.

Héritage :
Une version améliorée de cet outil a été ajoutée à ArcGIS Pro 2.3. Il s’agit de la documentation d’outil destinée à l’outil obsolète plus ancien. Il est recommandé de mettre à niveau et d’utiliser le nouvel outil Régression pondérée géographiquement disponible dans ArcGIS Pro ou version ultérieure.

Illustration

Régression pondérée géographiquement
La régression pondérée géographiquement (GWR) est un modèle de régression local. Les coefficients peuvent varier.

Utilisation

  • Le modèle GWR construit une équation distincte pour chaque entité dans le jeu de données qui incorpore les variables dépendantes et explicatives des entités dans la bande passante de chaque entité cible. La forme et l’étendue de la bande passante dépendent des données saisies par l’utilisateur pour les paramètres Kernel type (Type du noyau), Bandwidth method (Méthode de largeur de bande), Distance et Number of neighbors (Nombre de voisins). Il existe néanmoins une restriction : lorsque le nombre d’entités voisines dépasse 1 000, seules les 1 000 entités les plus proches sont incorporées dans chaque équation locale.

  • Pour obtenir des résultats optimaux, le modèle GWR doit être appliqué aux jeux de données contenant plusieurs centaines d'entités. La méthode n'est pas appropriée pour les petits jeux de données. L'outil ne fonctionne pas avec les données multi-points.

  • Remarque :

    L’outil Régression pondérée géographiquement (GWR) génère différents résultats en sortie. Un résumé du modèle de régression pondérée géographiquement est disponible sous forme messages au bas de la fenêtre Geoprocessing (Géotraitement) au cours de l’exécution de l’outil. Vous pouvez accéder aux messages en passant le curseur de la souris sur la barre d’avancement, en cliquant sur le bouton de menu contextuel ou en développant la section de messages dans la fenêtre Geoprocessing (Géotraitement). Vous pouvez également accéder aux messages d’une précédente exécution de l’outil Régression pondérée géographiquement via l’historique du géotraitement.

    L'outil Régression pondérée géographiquement génère également une Classe d'entités en sortie et une table contenant les valeurs diagnostiques du rapport récapitulatif d'exécution. Le nom de cette table est automatiquement généré à l’aide du nom de la classe d’entités en sortie et du suffixe _supp. La Classe d'entités en sortie est ajoutée automatiquement à la table des matières et un rendu chaud/froid (hot/cold) est appliqué aux valeurs résiduelles du modèle. Une explication complète de chaque résultat en sortie est fournie dans Interprétation des résultats de la régression pondérée géographiquement.

  • Le fichier _supp est toujours créé au même emplacement que la classe d'entités en sortie sauf si celle-ci est créée à l'intérieur d'un jeu de données d'entité. Lorsque la classe d'entités en sortie se trouve dans un jeu de données d'entité, la table _supp est créée dans la géodatabase contenant le jeu de données d'entité.

  • Il est recommandé d’utiliser des données projetées. Ceci est particulièrement important lorsque la distance est un composant de l’analyse, comme c’est le cas pour la régression pondérée géographiquement lorsque vous sélectionnez Fixed (Fixe) pour Kernel type (Type de noyau). Il est recommandé de projeter vos données à l’aide d’un système de coordonnées projetées (et non avec un système de coordonnées géographiques).

  • Certains calculs de l’outil GWR peuvent s’effectuer sur plusieurs unités centrales de traitement pour augmenter la performance et utilisent automatiquement jusqu’à huit threads/unités centrales de traitement.

  • Vous devez toujours commencer l'analyse de régression par une régression de type Moindres carrés ordinaires. Recherchez d’abord un modèle OLS correctement spécifié. Utilisez ensuite les mêmes variables explicatives pour exécuter le modèle GWR (à l’exclusion de toute variable explicative fictive représentant des régimes spatiaux différents).

  • Les variables dépendantes et explicatives doivent être des champs numériques contenant diverses valeurs. Les méthodes de régression linéaire, telles que GWR, ne sont pas appropriées pour prévoir des résultats binaires (toutes les valeurs de la variable dépendante sont égales à 1 ou 0, par exemple).

  • Dans les modèles de régression globaux, tels que la régression des moindres carrés ordinaires, les résultats sont peu fiables lorsque deux variables ou plus présentent une multicolinéarité (lorsque deux variables ou plus sont redondantes ou racontent la même histoire). La régression pondérée géographiquement génère une équation de régression locale pour chaque entité dans le jeu de données. Lorsque les valeurs d’une variable explicative particulière s’agrègent spatialement, vous risquez de rencontrer des problèmes de multicolinéarité locale. Le champ de conditionnement (COND) dans la classe d’entités en sortie indique quand les résultats sont instables en raison d’un problème de multicolinéarité local. En règle générale, soyez critique à l’égard des résultats d’entités présentant un conditionnement supérieur à 30, nul ou, pour les shapefiles, égal à -1.7976931348623158e+308.

  • Soyez prudent lorsque vous incluez des données nominales ou catégorielles dans un modèle de régression pondérée géographiquement. Lorsque les catégories s’agrègent spatialement, vous risquez de rencontrer des problèmes de multicolinéarité locale. Le conditionnement compris dans la sortie GWR indique quand la colinéarité locale présente un problème (conditionnement inférieur à zéro, supérieur à 30, ou défini sur nul). En présence de multicolinéarité locale, les résultats sont instables.

  • N’utilisez pas de variables explicatives artificielles pour représenter des régimes spatiaux différents dans un modèle GWR (la valeur 1 est affectée, par exemple, aux secteurs de recensement à l’extérieur du noyau urbain, tandis qu’une valeur de 0 est affectée à tous les autres). Etant donné que le modèle GWR permet aux coefficients variables explicatifs de varier, ces variables explicatives de régime spatial sont inutiles, et si elles sont incluses, elles sont susceptibles de créer des problèmes de multicolinéarité locale.

  • Pour mieux comprendre la notion de variation régionale parmi les coefficients de variables explicatives, examinez les surfaces de coefficient raster facultatives créées par la régression pondérée géographiquement. Ces surfaces raster sont créées dans l’espace de travail raster du coefficient. Pour les données surfaciques, vous pouvez utiliser des couleurs graduées ou un rendu de tonalités froides à chaudes pour chaque champ de coefficient dans la Classe d'entités en sortie, pour examiner les modifications survenues dans la zone d'étude.

  • Vous pouvez utiliser le modèle GWR pour les prévisions en fournissant une classe d’entités Predictions locations (Emplacements des prévisions) (cette classe d’entités est souvent la même que la classe d'entités en entrée), les variables explicatives des prévisions et une classe d’entités de prévision en sortie. Une correspondance de type un vers un doit être établie entre les champs utilisés pour calibrer le modèle de régression (les valeurs entrées dans le champ Explanatory variables (Variables explicatives)) et les champs utilisés pour les prévisions (les valeurs entrées dans le champ Prediction explanatory variables (Variables explicatives des prévisions)). L'ordre de ces variables doit être identique. Par exemple, supposons que vous modélisiez des accidents de la circulation en tant que fonction de limites de vitesse, état des routes, nombre de voies et nombre de véhicules. Vous pouvez prévoir l'impact des modifications de limite de vitesse ou de l'aménagement des routes sur les accidents en créant de nouvelles variables relatives aux nouvelles limites de vitesse et au nouvel état des routes. Les variables existantes permettraient de calibrer le modèle de régression et seraient utilisées pour le paramètre Variables explicatives. Les variables modifiées seraient utilisées pour les prévisions et saisies en tant que Variables explicatives des prévisions.

  • Si une classe d’entités de type Prediction locations (Emplacements des prévisions) est fournie mais qu’aucune des variables explicatives des prévisions (Prediction explanatory variables) n’est spécifiée, la classe d’entités de prévision en sortie (Output prediction feature class) est uniquement créée avec les coefficients calculés pour chaque emplacement (aucune prévision).

  • Un modèle de régression est incorrectement spécifié s’il manque une variable explicative clé. Une autocorrélation spatiale statistiquement signifiante des résiduels de régression ou une variation spatiale inattendue parmi les coefficients d’une ou de plusieurs variables explicatives indique que votre modèle est incorrectement spécifié. Vous devez découvrir (via l’analyse des résiduels du modèle de régression des moindres carrés ordinaires et l’analyse de la variation des coefficients du modèle de régression pondérée géographiquement, par exemple) quelles sont ces variables manquantes clés pour les inclure dans le modèle.

  • Examinez toujours la pertinence de la nature non stationnaire d’une variable explicative. Par exemple, supposons que vous modélisiez la densité d'une espèce de plante particulière en tant que fonction de plusieurs variables, notamment ASPECT (exposition). Si le coefficient varie pour la variable ASPECT dans la zone d'étude, c'est vraisemblablement qu'il manque une variable explicative clé (la prédominance de la végétation concurrente, par exemple). Assurez-vous d'inclure toutes les variables explicatives clés dans votre modèle de régression.

  • Attention :

    Lorsque vous utilisez des shapefiles, n'oubliez pas qu'ils ne peuvent pas stocker de valeurs Null. Les outils ou autres procédures qui créent des shapefiles à partir d'entrées dans d'autres formats peuvent stocker des valeurs Null, comme zéro ou certains nombres négatifs très petits (- DBL_MAX = -1.7976931348623158e+308). Cela peut aboutir à des résultats inattendus. Pour plus d’informations, reportez-vous à la rubrique Remarques concernant le géotraitement pour la sortie de shapefiles.

  • Lorsque le résultat d’un calcul est l’infini ou indéfini, le résultat pour les fichiers qui ne sont pas des shapefiles sera nul ; pour les shapefiles, le résultat sera - DBL_MAX = -1.7976931348623158e+308.

  • Lorsque vous sélectionnez Critère d'information Akaike ou Validation croisée pour le paramètre Méthode de largeur de bande, le modèle GWR calcule la distance optimale (pour un noyau constant) ou le nombre optimal de voisins (pour un noyau adaptatif). Toutefois, les problèmes de multicolinéarité locale empêcheront les méthodes de largeur de bande de type Critère d'information Akaike et Validation croisée de trouver une distance optimale ou un nombre optimal de voisins. Si une erreur indiquant de graves problèmes de conception de modèle se produit, essayez de spécifier une distance ou un nombre de voisins en particulier. Examinez ensuite les conditionnements dans la classe d’entités en sortie pour voir quelles entités sont associées à des problèmes de colinéarité locale

  • Les erreurs graves de conception de modèle ou les erreurs indiquant que les équations locales ne comprennent pas assez de voisins, signalent souvent un problème de multicolinéarité globale ou locale. Pour déterminer l'origine du problème, exécutez le modèle des moindres carrés ordinaires et examinez la valeur VIF pour chaque variable explicative. Si certaines valeurs VIF sont élevées (supérieures à 7,5, par exemple), la multicolinéarité globale empêche la résolution de la régression pondérée géographiquement. Toutefois, la multicolinéarité locale est plus vraisemblablement à l'origine du problème. Essayez de créer une carte thématique pour chaque variable explicative. Si la carte révèle une agrégation spatiale de valeurs identiques, envisagez la suppression de ces variables du modèle ou la combinaison de ces variables avec d'autres variables explicatives afin d'augmenter la variation des valeurs. Par exemple, si vous modélisez des valeurs d’habitat et que vous disposez de variables pour les chambres et les salles de bains, vous pouvez les combiner pour augmenter la variation des valeurs ou les représenter en tant que superficie salle de bain/chambre. Évitez d’utiliser des variables de régime spatiale fictives, des variables catégorielles/nominales spatialement agrégées ou des variables avec très peu de valeurs possibles, lorsque vous créez des modèles GWR.

  • Le modèle GWR est un modèle linéaire soumis aux mêmes exigences que le modèle des moindres carrés ordinaires. Consultez la section Corruption des modèles de régression, dans le document Principes de base de l'analyse de régression pour vous assurer que votre modèle GWR est correctement spécifié.

Syntaxe

arcpy.stats.GeographicallyWeightedRegression(in_features, dependent_field, explanatory_field, out_featureclass, kernel_type, bandwidth_method, {distance}, {number_of_neighbors}, {weight_field}, {coefficient_raster_workspace}, {cell_size}, {in_prediction_locations}, {prediction_explanatory_field}, {out_prediction_featureclass})
ParamètreExplicationType de données
in_features

Classe d'entités qui contient les variables dépendantes et indépendantes.

Feature Layer
dependent_field

Champ numérique contenant les valeurs qui seront modélisées.

Field
explanatory_field
[explanatory_field,...]

Liste des champs qui représentent des variables explicatives indépendantes dans le modèle de régression.

Field
out_featureclass

Classe d'entités en sortie qui recevra des estimations de variable dépendante et des résiduels.

Feature Class
kernel_type

Spécifie si le noyau est de type distance fixe ou s’il est autorisé à varier en étendue en fonction de la densité de l’entité.

  • FIXEDLe contexte spatial (le noyau Gaussien) utilisé pour résoudre chaque analyse de régression locale correspond à une distance fixe.
  • ADAPTIVELe contexte spatial (le noyau Gaussien) est une fonction relative à un nombre spécifié de voisins. Quand la répartition des entités est dense, le contexte spatial est plus petit ; à l'inverse, si la répartition des entités est peu dense, le contexte spatial est plus important.
String
bandwidth_method

Indique comment l’étendue du noyau va être déterminée. Lorsque AICc ou CV est sélectionné, l’outil calcule la distance ou le nombre de voisins optimaux. En général, vous sélectionnez AICc ou CV quand vous ne savez pas quoi utiliser pour le paramètre distance ou number_of_neighbors. Une fois que l’outil a déterminé la distance ou le nombre de voisins optimaux, vous devez toutefois utiliser l’option BANDWIDTH_PARAMETER.

  • AICcL'étendue du noyau est déterminée à l'aide du Critère d'information Akaike (Akaike Information Criterion /AICc).
  • CVL'étendue du noyau est déterminée à l'aide de la Validation croisée (Cross Validation/CV).
  • BANDWIDTH_PARAMETERL'étendue du noyau est déterminée par une distance fixe ou un nombre constant de voisins. Vous devez spécifier une valeur pour les paramètres distance ou number_of_neighbors.
String
distance
(Facultatif)

Distance à utiliser lorsque kernel_type est FIXED et que bandwidth_method est BANDWIDTH_PARAMETER.

Double
number_of_neighbors
(Facultatif)

Nombre exact de voisins à inclure dans la bande passante locale du noyau gaussien lorsque kernel_type est défini sur ADAPTIVE et que bandwidth_method est défini sur BANDWIDTH_PARAMETER.

Long
weight_field
(Facultatif)

Champ numérique qui contient une pondération spatiale pour les entités individuelles. Ce champ de pondération permet à certaines entités d'être prioritaires dans le processus de calibrage du modèle. Cela est utile quand le nombre d’échantillons prélevés à des localisations différentes varie, les valeurs des variables dépendantes et indépendantes sont moyennées et les lieux contenant plus d’échantillons sont plus fiables (doivent avoir une pondération plus importante). Si vous disposez, en moyenne, de 25 échantillons différents pour une localisation mais d’une moyenne de 2 échantillons uniquement pour une autre, par exemple, vous pouvez utiliser le nombre d’échantillons comme valeur de pondération afin que les localisations qui ont le plus d’échantillons aient une plus grande influence sur le calibrage du modèle que les autres.

Field
coefficient_raster_workspace
(Facultatif)

Nom de chemin complet de l’espace de travail où les rasters de coefficient seront créés. Quand cet espace de travail est fourni, les rasters sont créés pour l'intersection et chaque variable explicative.

Workspace
cell_size
(Facultatif)

Taille de cellule (nombre) ou référence à la taille de cellule (chemin d’accès à un jeu de données raster) à utiliser lors de la création des rasters de coefficient.

La taille de cellule par défaut correspond à la largeur ou la hauteur la plus petite de l'étendue spécifiée dans le système de coordonnées en sortie de l'environnement de géotraitement, divisée par 250.

Analysis Cell Size
in_prediction_locations
(Facultatif)

Classe d'entités contenant des entités qui représentent des localisations pour lesquelles des estimations doivent être calculées. Chaque entité de ce jeu de données doit contenir des valeurs pour toutes les variables explicatives spécifiées ; la variable dépendante pour ces entités sera estimée à l'aide du modèle calibré pour les données de la classe d'entités en entrée.

Feature Layer
prediction_explanatory_field
[prediction_explanatory_field,...]
(Facultatif)

Liste des champs qui représentent des variables explicatives dans la classe d'entités Emplacements des prévisions. Ces noms de champ doivent être fournis dans le même ordre (correspondance un vers un) que ceux répertoriés pour le paramètre des variables explicatives de la classe d'entités en entrée. Si aucune variable explicative de prévision n'est fournie, la classe d'entités de prévision en sortie contiendra uniquement des valeurs de coefficient calculées pour chaque emplacement de prévisions.

Field
out_prediction_featureclass
(Facultatif)

Classe d'entités en sortie destinée à recevoir des estimations de variable dépendante pour chaque entité dans la classe d'entités Emplacements des prévisions.

Feature Class

Sortie dérivée

NomExplicationType de données
out_table

Table avec les valeurs de diagnostic du rapport de synthèse d’exécution de l’outil.

Tableau
out_regression_rasters

Espace de travail au sein duquel tous les rasters de coefficient vont être créés.

Couche raster

Exemple de code

Exemple d'utilisation de l’outil GeographicallyWeightedRegression (fenêtre Python)

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

import arcpy
arcpy.env.workspace = "c:/data"
arcpy.GeographicallyWeightedRegression_stats("CallData.shp", "Calls", "BUS_COUNT;RENTROCC00;NoHSDip",
                                             "CallsGWR.shp", "ADAPTIVE", "BANDWIDTH PARAMETER",
                                             "#", "25", "#","CoefRasters", "135", "PredictionPoints", 
                                             "#", "GWRCallPredictions.shp")
Exemple d’utilisation de la fonction GeographicallyWeightedRegression (script autonome)

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

# Model 911 emergency calls using GWR
# Import system modules
import arcpy
# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\Data"
try:
    # Set the current workspace (to avoid having to specify the full path to the 
    # feature classes each time)
    arcpy.env.workspace = workspace
    # 911 Calls as a function of {number of businesses, number of rental units,
    # number of adults who didn't finish high school}
    # Process: Geographically Weighted Regression... 
    gwr = arcpy.GeographicallyWeightedRegression_stats("CallData.shp", "Calls", 
                        "BUS_COUNT;RENTROCC00;NoHSDip",
                        "CallsGWR.shp", "ADAPTIVE", "BANDWIDTH PARAMETER","#", "25", "#",
                        "CoefRasters", "135", "PredictionPoints", "#", "GWRCallPredictions.shp")
    # Create Spatial Weights Matrix to use with Global Moran's I tool
    # Process: Generate Spatial Weights Matrix... 
    swm = arcpy.GenerateSpatialWeightsMatrix_stats("CallsGWR.shp", "UniqID",
                        "CallData25Neighs.swm",
                        "K_NEAREST_NEIGHBORS",
                        "#", "#", "#", 25) 
                        
    # Calculate Moran's Index of Spatial Autocorrelation for 
    # OLS Residuals using a SWM File.  
    # Process: Spatial Autocorrelation (Morans I)...      
    moransI = arcpy.SpatialAutocorrelation_stats("CallsGWR.shp", "StdResid",
                        "NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE", 
                        "EUCLIDEAN_DISTANCE", "NONE", "#", 
                        "CallData25Neighs.swm")
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 sur le système de coordonnées en sortie une fois l’analyse terminée. Par conséquent, la valeur entrée pour le paramètre Distance doit être spécifiée dans les mêmes unités que celles de la classe d'entités en entrée. Les valeurs entrées pour Output cell size (Taille de cellule en sortie) doivent être spécifiées dans les mêmes unités que celles du système de coordonnées en sortie.

Informations de licence

  • Basic: Requiert Spatial Analyst ou Geostatistical Analyst
  • Standard: Requiert Spatial Analyst ou Geostatistical Analyst
  • Advanced: Oui

Rubriques connexes