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.
Illustration
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.
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. En premier lieu, recherchez un modèle de moindres carrés ordinaires correctement spécifié, puis utilisez 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 Emplacements des prévisions est fournie, mais qu'aucune des Variables explicatives des prévisions n'est spécifiée, la Classe d'entités de prévision en sortie 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.
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 AICc (critère d'information Akaike corrigé) ou CV (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 AICc et CV de trouver une distance/un nombre de voisins optimaux. 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ètre | Explication | Type 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é.
| 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 si vous ne savez pas quoi utiliser pour les paramètres Distance ou Nombre de voisins. Une fois que l'outil a déterminé la distance ou le nombre de voisins optimaux, vous devez toutefois utiliser l'option BANDWIDTH_PARAMETER.
| String |
distance (Facultatif) | Distance à utiliser lorsque kernel_type est défini sur FIXED et que bandwidth_method est défini sur 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. Principalement 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, 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
Nom | Explication | Type 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
Informations de licence
- Basic: Requiert Spatial Analyst ou Geostatistical Analyst
- Standard: Requiert Spatial Analyst ou Geostatistical Analyst
- Advanced: Oui