j
j
jsGeoDa
Search
K

# Kernel Weights

Kernel Weights applies kernel function to determine the distance decay in the derived continuous weights kernel. The kernel weights are defined as a function K(z) of the ratio between the distance dij from i to j, and the bandwidth hi, with z=dij/hi. The kernel functions include {triangular , uniform, quadratic , epanechnikov, quartic, gaussian}.
• Uniform, K(z)=1/2 for |z|<1,
• Triangular, K(z)=(1−|z|) for |z|<1,
• Quadratic or Epanechnikov, K(z)=(3/4)(1−z^2) for |z|<1,
• Quartic, K(z)=(15/16)(1−z^2)^2 for |z|<1|z|<1, and
• Gaussian. K(z) = (2π)^{1/2}exp(-z^2/2)
There are two types of fixed bandwidths for kernel weights. One is the max-min distance used earlier (the largest of the nearest-neighbor distances): kernel_weights(). The other is the maximum distance for a given specification of k-nearest neighbors: kernel_knn_weights().

### 1. getKernelWeights()

function getKernelWeights(
String mapUid,
Number distBand,
String kernel,
Number power,
Boolean isInverse,
Boolean isArc,
Boolean isMile,
Boolean useKernelDiagonals)
Arguments
 Input Arguments Type Description mapUid String the unique map id distBand Number the distance band/threshold that makes sure each observation has at least one neighbor ​kernel String a varchar value of kernel method, which has to be one of {'triangular', 'uniform', 'epanechnikov', 'quartic', 'gaussian'} useKernelDiagonals Boolean if apply kernel on the diagonal of weights matrix. Default: FALSE. power Number the power/exponent corresponds to the number of times the base (dist_band) is used as a factor. Default: 1. isInverse Boolean if apply inverse on distance value. Default: False. isArc Boolean if compute arc distance between two observations. Default: FALSE. isMile Boolean if convert distance unit from mile to kilometer(KM). Default: TRUE.
Return
 Value Description WeightsResult the weights structure for each observation in binary format.

### 2. getKernelKnnWeights()

With knn set to a given value, the maximum distance between the selected k-nearest neighbors' pairs is used as a "fixed" bandwidth. However, a drawback of fixed bandwidth kernel weights is that the number of non-zero weights can vary considerably, especially when the density of the point locations is not uniform throughout space. The argument `adaptive_bandwidth` is provided to allow adaptive bandwidth in knn kernel weights: instead of a fixed distance bandwidth, the distance to the k-th nearest neighbor is used in the kernel function for each observation.
API
function getKernelKnnWeights(
String map_uid,
integer k,
String kernel,