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)
A list of:
a list of all the tried GWR models consisted of formulas and variables.
a data frame consited of four columns: bandwidth, AIC, AICc, RSS
dependent variable
a vector of independent variables for model selection
a Spatial*DataFrame, i.e. SpatialPointsDataFrame or SpatialPolygonsDataFrame as defined in package sp, or a sf object defined in package sf
bandwidth used in the weighting function, possibly calculated by bw.gwr
specified by CV (cv) for cross validation approach or AIC (aic) for selecting bandwidth by AICc values
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)
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
a pre-specified distance matrix, it can be calculated by the function gw.dist
the power of the Minkowski distance, default is 2, i.e. the Euclidean distance
an angle in radians to rotate the coordinate system, default is 0
if TRUE, great circle distances will be calculated
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
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.
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