This function helps choosing the optimal bandwidth for the simple Geographically Weighted Regression (GWR).
gwr.bw(formula, dframe, coords, kernel, algorithm="exhaustive",
optim.method="Nelder-Mead", b.min=NULL, b.max=NULL, step=NULL)
The optimal bandwidth (fixed or adaptive)
The corresponding Cross Validation score for the optimal bandwidth
Available only in the case of the exhaustive
algorithm. This is a numeric matrix in which the first column refers to the bandwidth in test and the second to the corresponding CV score.
the local model formula using the same syntax used in the lm
function in R. This is a sting that is passed to the sub-models' lm
function. For more details look at the class formula
.
a numeric data frame of at least two suitable variables (one dependent and one independent)
a numeric matrix or data frame of two columns giving the X,Y coordinates of the observations
the kernel to be used in the regression. Options are "adaptive" or "fixed". The weighting scheme used here is defined by the bi-square function (weight = (1-(ndist/H)^2)^2
for distances less than or equal to H
, 0
otherwise)
a character argument that specifies whether the function will use an exhaustive
or a heuristic
algorithm. In the first case all possible bandwidths within a range are being tested. In the second case the optim
function is being used allowing for the choice of various optimisation methods (such as Brent
or BFGS
) that may find a global or local optimum. The default algorithm is "exhaustive"
the optimisation method to be used. A detailed discussion is available at the 'Details' section of the function optim (stats)
. Example methods are "Nelder-Mead"
, "Brent"
, "BFGS"
, "CG"
and "L-BFGS-B"
. The default method is "Nelder-Mead"
.
the minimum bandwidth. This is important for both algorithms. In the case of the exhaustive
algorithm it sets the lower boundary for the range in which the function will compute the CV score for each possible bandwidth. In the case of the heuristic
algorithm it provides the initial value for the bandwidth to be optimised which is very important. In the latter case b.min and b.max should be provided if the optimisation method "L-BFGS-B"
or "Brent"
has been selected.
the maximum bandwidth. This is important for both algorithms. In the case of the exhaustive
algorithm it sets the upper boundary for the range in which the function will compute the CV score for each possible bandwidth. In the case of the heuristic
algorithm b.max and b.min should be provided if the optimisation method "L-BFGS-B"
or "Brent"
has been selected.
this numeric argument is used only in the case of a fixed
kernel indicating the increment of the sequence of bandwidths in between the b.min
and the b.max
. In the case of the adaptive
kernel the increment is 1 neighbour.
Stamatis Kalogirou <stamatis@lctools.science>
Large datasets increase the processing time.
Please carefully read the optim (stats)
when using a heuristic
algorithm.
Fotheringham, A.S., Brunsdon, C., Charlton, M. (2000). Geographically Weighted Regression: the analysis of spatially varying relationships. John Wiley and Sons, Chichester.
Kalogirou, S. (2003) The Statistical Analysis and Modelling of Internal Migration Flows within England and Wales, PhD Thesis, School of Geography, Politics and Sociology, University of Newcastle upon Tyne, UK. https://theses.ncl.ac.uk/jspui/handle/10443/204
gwr
RDF <- random.test.data(9,9,3,"normal")
bw <- gwr.bw(dep ~ X1 + X2, RDF, cbind(RDF$X,RDF$Y), kernel = 'adaptive',
b.min = 54, b.max=55)
Run the code above in your browser using DataLab