fk_sum

0th

Percentile

Fast Exact Kernel Sum Evaluation

Computes exact (and binned approximations of) kernel and kernel derivative sums with arbitrary weights/coefficients. Computation is based on the method of Hofmeyr (2019).

Keywords
file
Usage
fk_sum(x, omega, h, x_eval = NULL, beta = c(.25,.25),
    nbin = NULL, type = "ksum")
Arguments
x

numeric vector of sample points.

omega

numeric vector of weights.

h

numeric bandwidth (must be strictly positive).

x_eval

vector of evaluation points. Default is to evaluate at the sample points themselves.

beta

numeric vector of kernel coefficients. Default is c(.25, .25); the smooth order 1 kernel.

nbin

integer number of bins for binning approximation. Default is to compute the exact sums.

type

one of "ksum": returns the kernel sums, "dksum": returns the kernel derivative sums and "both": returns a matrix cbind(ksum, dksum).

Value

A vector (if type%in%c("ksum","dksum")) of kernel sums, or kernel derivative sums. A matrix (if type == "both") with kernel sums in its first column and kernel derivative sums in its second column.

References

Hofmeyr, D.P. (2019) "Fast exact evaluation of univariate kernel sums", IEEE Transactions on Pattern Analysis and Machine Intelligence, in press.

Aliases
  • fk_sum
Examples
# NOT RUN {
### Compute density estimates directly with
### kernel sums and constant normalising weights

set.seed(1)
n <- 150000
num_Gauss <- rbinom(1, n, 2 / 3)
x <- c(rnorm(num_Gauss), rexp(n - num_Gauss) + 1)

hs <- seq(.025, .1, length = 5)
xeval <- seq(-4, 8, length = 1000)
ftrue <- 2 / 3 * dnorm(xeval) + 1 / 3 * dexp(xeval - 1)
plot(xeval, ftrue, lwd = 6, col = rgb(.8, .8, .8), xlab = "x",
  ylab = "f(x)", type = "l")

for(i in 1:5) lines(xeval, fk_sum(x, rep(1 / hs[i] / n, n), hs[i],
    x_eval = xeval), lty = i)
# }
Documentation reproduced from package FKSUM, version 0.1.0, License: GPL

Community examples

Looks like there are no examples yet.