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)
For more information, please read: https://geodacenter.github.io/workbook/4c_distance_functions/lab4c.html#kernel-weights
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()
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
Arguments
Input Arguments
Type
Description
map_uid
String
the unique map id
k
Number
the k nearest neighbors
kernel
String
a varchar value of kernel method, which has to be one of {'triangular', 'uniform', 'epanechnikov', 'quartic', 'gaussian'}
adaptive_bandwidth
Boolean
if use adaptive bandwidth (distance to k-th nearest neighbor for each observation), or use max knn distance of all observations. Default: FALSE.
use_kernel_diagonals
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.
is_inverse
Boolean
if apply inverse on distance value. Default: False.
is_arc
Boolean
if compute arc distance between two observations. Default: FALSE.
is_mile
Boolean
if convert distance unit from mile to kilometer(KM). Default: TRUE.
Return
Value
Description
WeightResult
the weights structure for each observation.
Try it yourself in the playground (jsgeoda + deck.gl):
Last updated