Using the R function density

The R function density performs nonparametric kernel density estimation. We can use this function to plot different kernel functions.

(kernels <- eval(formals(density.default)$kernel))
[1] "gaussian"     "epanechnikov" "rectangular"  "triangular"   "biweight"     "cosine"      
[7] "optcosine"   

Show the kernels in the R parametrization: re-scaled versions to have variance equal to 1.

plot (density(0, bw = 1), xlab = "",
      main = "R's density() kernels with bw = 1")
for(i in 2:length(kernels))
  lines(density(0, bw = 1, kernel =  kernels[i]), col = i)
legend(1.5,.4, legend = kernels, col = seq(kernels),
       lty = 1, cex = .8, y.intersp = 1)

Using locpolreg

The function kernel has been defined in the file locpolreg.R. It admits 3 types of kernels:

source("locpolreg.R")
cannot open file 'locpolreg.R': No such file or directoryError in file(filename, "r", encoding = encoding) : 
  cannot open the connection
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQotLS0KdGl0bGU6ICJLZXJuZWwgZnVuY3Rpb25zIGluIFIiCmF1dGhvcjogIlBlZHJvIERlbGljYWRvIgpkYXRlOiAiMTMgZGUgbm92aWVtYnJlIGRlIDIwMTciCm91dHB1dDoKICBodG1sX25vdGVib29rCiAgaHRtbF9kb2N1bWVudDoKICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgcGRmX2RvY3VtZW50OgogICAgZmlnX2NhcHRpb246IHllcwogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKY2xhc3NvcHRpb246IGE0cGFwZXIKLS0tCjwhLS0gQ29tbWVudCBsaW5lcyBhcmUgbGlrZSB0aGlzIG9uZSAtLT4KPCEtLSBVc2UgIlxuZXdwYWdlIiB3aGVuIHlvdSB3YW50IGEgbmV3IHBhZ2UgYnJlYWsgaW4gdGhlIHBkZiBvdXRwdXQgIC0tPgoKCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpCmBgYAoKCiMgVXNpbmcgdGhlIFIgZnVuY3Rpb24gYGRlbnNpdHlgCgpUaGUgUiBmdW5jdGlvbiBgZGVuc2l0eWAgcGVyZm9ybXMgbm9ucGFyYW1ldHJpYyBrZXJuZWwgZGVuc2l0eSBlc3RpbWF0aW9uLiAKV2UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHBsb3QgZGlmZmVyZW50IGtlcm5lbCBmdW5jdGlvbnMuCgoKYGBge3J9CihrZXJuZWxzIDwtIGV2YWwoZm9ybWFscyhkZW5zaXR5LmRlZmF1bHQpJGtlcm5lbCkpCmBgYAoKClNob3cgdGhlIGtlcm5lbHMgaW4gdGhlIFIgcGFyYW1ldHJpemF0aW9uOiByZS1zY2FsZWQgdmVyc2lvbnMgdG8gaGF2ZSB2YXJpYW5jZSBlcXVhbCB0byAxLgoKYGBge3J9CnBsb3QgKGRlbnNpdHkoMCwgYncgPSAxKSwgeGxhYiA9ICIiLAogICAgICBtYWluID0gIlIncyBkZW5zaXR5KCkga2VybmVscyB3aXRoIGJ3ID0gMSIpCmZvcihpIGluIDI6bGVuZ3RoKGtlcm5lbHMpKQogIGxpbmVzKGRlbnNpdHkoMCwgYncgPSAxLCBrZXJuZWwgPSAga2VybmVsc1tpXSksIGNvbCA9IGkpCmxlZ2VuZCgxLjUsLjQsIGxlZ2VuZCA9IGtlcm5lbHMsIGNvbCA9IHNlcShrZXJuZWxzKSwKICAgICAgIGx0eSA9IDEsIGNleCA9IC44LCB5LmludGVyc3AgPSAxKQpgYGAKCiMgVXNpbmcgYGxvY3BvbHJlZ2AKClRoZSBmdW5jdGlvbiBga2VybmVsYCBoYXMgYmVlbiBkZWZpbmVkIGluIHRoZSBmaWxlIGBsb2Nwb2xyZWcuUmAuCkl0IGFkbWl0cyAzIHR5cGVzIG9mIGtlcm5lbHM6IAoKKiBgbm9ybWFsYCAgKEdhdXNzaWFuLCBkZWZhdWx0KSwgCiogYGVwYW5gICAgIChFcGFuZWNobmlrb3YpIG9yIAoqIGBycy5lcGFuYCAocmUtc2NhbGVkIEVwYW5lY2huaWtvdikuCgpgYGB7cn0Kc291cmNlKCJsb2Nwb2xyZWcuUiIpCgpwbG90KGtlcm5lbCx4bGltPWMoLTMsMykseWxpbT1jKDAsLjgpKQp4PC1zZXEoLTMsMyxsZW5ndGg9MjAxKQpsaW5lcyh4LGtlcm5lbCh4LHR5cGU9ImVwYW4iKSxjb2w9NCkKbGluZXMoeCxrZXJuZWwoeCx0eXBlPSJycy5lcGFuIiksY29sPTIpCmxlZ2VuZCgidG9wbGVmdCIsYygibm9ybWFsIiwiZXBhbiIsInJzLmVwYW4iKSxsd2Q9MSwgY29sPWMoMSwyLDQpKQpgYGAK