View source: R/Model.selection.r
gwr.model.selection | R Documentation |
This function selects one GWR model from many alternatives based on the AICc values.
gwr.model.selection(DeVar=NULL,InDeVars=NULL, data=list(),bw=NULL,approach="CV",
adaptive=F,kernel="bisquare",dMat=NULL,p=2, theta=0, longlat=F,
parallel.method=F,parallel.arg=NULL)
DeVar |
dependent variable |
InDeVars |
a vector of independent variables for model selection |
data |
a Spatial*DataFrame, i.e. SpatialPointsDataFrame or SpatialPolygonsDataFrame as defined in package sp, or a sf object defined in package sf |
bw |
bandwidth used in the weighting function, possibly calculated by |
approach |
specified by CV (cv) for cross validation approach or AIC (aic) for selecting bandwidth by AICc values |
adaptive |
if TRUE calculate an adaptive kernel where the bandwidth (bw) corresponds to the number of nearest neighbours (i.e. adaptive distance); default is FALSE, where a fixed kernel is found (bandwidth is a fixed distance) |
kernel |
function chosen as follows: gaussian: wgt = exp(-.5*(vdist/bw)^2); exponential: wgt = exp(-vdist/bw); bisquare: wgt = (1-(vdist/bw)^2)^2 if vdist < bw, wgt=0 otherwise; tricube: wgt = (1-(vdist/bw)^3)^3 if vdist < bw, wgt=0 otherwise; boxcar: wgt=1 if dist < bw, wgt=0 otherwise |
dMat |
a pre-specified distance matrix, it can be calculated by the function |
p |
the power of the Minkowski distance, default is 2, i.e. the Euclidean distance |
theta |
an angle in radians to rotate the coordinate system, default is 0 |
longlat |
if TRUE, great circle distances will be calculated |
parallel.method |
Specified by 'FALSE' for serial approach, by '"omp"' for multi-thread approach implemented via OpenMP, by '"cluster"' for multi-process approach implemented via 'parallel' package, by '"cuda"' for parallel approach implemented via CUDA |
parallel.arg |
Set the argument for parallel approach. If 'parallel.method' is 'FALSE', there is no need to set its value. If 'parallel.method' is '"omp"', its value is used to set how many threads should be created (default by cores of *cores of CPU* - 1). If 'parallel.method' is '"cluster"', its value is used to set how many R session should be created (default by cores of *cores of CPU* - 1). If 'parallel.method' is '"cuda"', its value is used to set how many samples is included in one group during the calibration. This value should not be too big to avoid the overflow of GPU memory. |
A list of:
model.list |
a list of all the tried GWR models consisted of formulas and variables. |
GWR.df |
a data frame consited of four columns: bandwidth, AIC, AICc, RSS |
The algorithm for selecting GWR models consists of the following four steps:
Step 1. Start by calibrating all the possible bivariate GWR models by sequentially regressing a single independent variable against the dependent variable;
Step 2. Find the best performing model which produces the minimum AICc value, and permanently include the corresponding independent variable in subsequent models;
Step 3. Sequentially introduce a variable from the remaining group of independent variables to construct new models with the permanently included independent variables, and determine the next permanently included variable from the best fitting model that has the minimum AICc value;
Step 4. Repeat step 3 until all the independent variables are permanently included in the model.
In this procedure, the independent variables are iteratively included into the model in a "forward" direction. Note that there is a clear distinction between the different number of involved variables in a selection step, which can be called model levels.
Binbin Lu binbinlu@whu.edu.cn
Lu, B, Charlton, M, Harris, P, Fotheringham, AS (2014) Geographically weighted regression with a non-Euclidean distance metric: a case study using hedonic house price data. International Journal of Geographical Information Science 28(4): 660-681
gwr.model.view
, gwr.model.sort
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.