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.
Pour en savoir plus sur la régression pondérée géographiquement
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 comprises dans la bande passante de chaque entité cible. La forme et l'étendue de la bande passante dépendent des données saisies par utilisateur pour les paramètres Type du noyau, Méthode de largeur de bande, Distance et 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é.
L'utilisation de données projetées est toujours recommandée et particulièrement importante quand la distance est une composante de l'analyse, comme pour le modèle GWR lorsque vous sélectionnez Constant comme Type du noyau. Il est fortement recommandé que vos données soient projetées à l'aide d'un système de coordonnées projetées (plutôt qu'avec un système de coordonnées géographiques).
Certains calculs de l'outil Régression pondérée géographiquement 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, comme la régression pondérée géographiquement, ne sont pas appropriées pour prévoir les résultats binaires (par exemple, toutes les valeurs pour la variable dépendante sont 1 ou 0).
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, ne vous fiez pas au résultat des entités présentant un conditionnement supérieur à 30, nul ou, pour les fichiers de formes, égal à -1.7976931348623158e+308.
Soyez prudent lorsque vous incluez des données nominales ou catégorielles dans un modèle GWR. Quand les catégories s'agrègent spatialement, vous risquez fort 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 factices pour représenter des régimes spatiaux différents dans un modèle GWR (une valeur de 1 est affectée, par exemple, aux secteurs de recensement à l'extérieur du cœur urbain, tandis qu'une valeur de 0 est affectée à tous les d'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, si spécifié. 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 Emplacement 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 Variables explicatives) et les champs utilisés pour les prévisions (les valeurs entrées dans le champ 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 mal spécifié s'il manque une variable explicative clé. Une auto-corrélation spatiale statistiquement signifiante des valeurs résiduelles de régression et/ou une variation spatiale inattendue parmi les coefficients d'une ou plusieurs variables explicatives indique que votre modèle est mal spécifié. Vous devez découvrir (via l'analyse des valeurs résiduelles de la méthode des Moindres carrés ordinaires et l'analyse de la variation des coefficients du modèle GWR, 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 fichiers de formes sera nul ; pour les fichiers de formes, 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 vous obtenez une erreur indiquant des problèmes graves de conception de modèle, essayez de spécifier une distance ou un nombre de voisins, puis examinez les conditionnements dans la classe d'entités en sortie pour identifier les entités qui sont associées aux 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. Evitez 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éer 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 vérifier si votre modèle GWR est correctement spécifié.
Syntaxe
GeographicallyWeightedRegression_stats (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 qui contient des valeurs pour la modélisation. | Field |
explanatory_field [explanatory_field,...] | Liste des champs qui représentent des variables explicatives indépendantes dans votre modèle de régression. | Field |
out_featureclass | Classe d'entités en sortie pour recevoir 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 | Spécifie le mode de détermination de l'étendue du noyau. 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 dès lors que 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) | Chemin d'accès complet à l'espace de travail où tous 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. | Folder |
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 |
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 l'outil GeographicallyWeightedRegression (script autonome Python)
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:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert Spatial Analyst ou Geostatistical Analyst
- ArcGIS Desktop Standard: Requiert Spatial Analyst ou Geostatistical Analyst
- ArcGIS Desktop Advanced: Oui