Create a kernel weights by specifying k-nearest neighbors and a kernel method

kernel_knn_weights(
  sf_obj,
  k,
  kernel_method,
  adaptive_bandwidth = TRUE,
  use_kernel_diagonals = FALSE,
  power = 1,
  is_inverse = FALSE,
  is_arc = FALSE,
  is_mile = TRUE
)

Arguments

sf_obj

An sf (simple feature) object

k

a positive integer number for k-nearest neighbors

kernel_method

a string value, which has to be one of 'triangular', 'uniform', 'epanechnikov', 'quartic', 'gaussian'

adaptive_bandwidth

(optional) TRUE (default) or FALSE: TRUE use adaptive bandwidth calculated using distance of k-nearest neithbors, FALSE use max distance of all observation to their k-nearest neighbors

use_kernel_diagonals

(optional) FALSE (default) or TRUE, apply kernel on the diagonal of weights matrix

power

(optional) The power (or exponent) of a number says how many times to use the number in a multiplication.

is_inverse

(optional) FALSE (default) or TRUE, apply inverse on distance value

is_arc

(optional) FALSE (default) or TRUE, compute arc distance between two observations

is_mile

(optional) TRUE (default) or FALSE, convert distance unit from mile to km.

Value

An instance of Weight-class

Examples

library(sf)
guerry_path <- system.file("extdata", "Guerry.shp", package = "rgeoda")
guerry <- st_read(guerry_path)
#> Reading layer `Guerry' from data source 
#>   `/Users/runner/work/_temp/Library/rgeoda/extdata/Guerry.shp' 
#>   using driver `ESRI Shapefile'
#> Simple feature collection with 85 features and 29 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: 47680 ymin: 1703258 xmax: 1031401 ymax: 2677441
#> Projected CRS: NTF (Paris) / Lambert zone II
adptkernel_w = kernel_knn_weights(guerry, 6, "uniform")
summary(adptkernel_w)
#>                      name              value
#> 1 number of observations:                 85
#> 2          is symmetric:               FALSE
#> 3               sparsity: 0.0705882352941176
#> 4        # min neighbors:                  6
#> 5        # max neighbors:                  6
#> 6       # mean neighbors:                  6
#> 7     # median neighbors:                  6
#> 8           has isolates:              FALSE