help mata mm_kern()
-------------------------------------------------------------------------------

Title

mm_kern() -- Kernel functions

Syntax

real matrix mm_kern(k, real matrix z)

real matrix mm_kint(k, real scalar l [, real matrix z])

real scalar mm_kdel0(k)

where k: string scalar containing "epanechnikov", "epan2" (default), "biweight", "triweight", "cosine", "gaussian", "parzen", "rectangle" or "triangle"

real matrix mm_kern_name(real matrix z)

real matrix mm_kint_name(real scalar l [, real matrix z])

real scalar mm_kdel0_name()

where name is epanechnikov, epan2, biweight, triweight, cosine, gaussian, parzen, rectangle, or triangle

Description

mm_kern(k, z) returns the value of kernel function k for the input value z. k is the kernel's name and may be abbreviated as indicated above.

mm_kint(k, l, z) returns kernel integrals from minus infinity to z or, if z is omitted, from minus infinity to plus infinity. l determines the type of integral. Let K(x) denote the kernel function. Then the integrals returned for different choices of l are:

l integrated function ------------------------- 1 K(x) 2 K(x)^2 3 x * K(x) 4 x^2 * K(x)

Note that mm_kint(k, 2) returns the so-called "roughness" of kernel function. mm_kint(k, 4) returns the variance of the kernel function.

mm_kdel0(k) returns the canonical bandwidth of kernel function k.

Instead of using the wrappers mm_kern(), mm_kint(), and mm_kdel0() you may prefer to apply mm_kern_name(), mm_kint_name(), and mm_kdel0_name() directly, where name stands for epanechnikov, epan2, biweight, triweight, cosine, gaussian, parzen, rectangle, or triangle.

Remarks

The formulas for the kernels and their properties can be found in http://fmwww.bc.edu/RePEc/bocode/k/kdens.pdf.

Conformability

mm_kern(k, z): k: 1 x 1 z: r x c result: r x c.

mm_kint(k, l, z): k: 1 x 1 l: 1 x 1 z: r x c result: r x c (or 1 x 1 if z is omitted).

mm_kdel0(k): k: 1 x 1 result: 1 x 1.

mm_kern_name(z): z: r x c result: r x c.

mm_kint_name(l, z): l: 1 x 1 z: r x c result: r x c (or 1 x 1 if z is omitted).

mm_kdel0_name(): result: 1 x 1.

Diagnostics

If argument k in mm_kern(), mm_kint(), and mm_kdel0() is empty (i.e. k==""), the epan2 kernel is used.

Source code

mm_kern.mata

Author

Ben Jann, ETH Zurich, jann@soz.gess.ethz.ch

Aknowledgements

Shouts to Matthias Naef for helping me with the math.

Also see

Online: help for kdens (if installed), moremata