statistics-0.13.3.0: A library of statistical types, data, and functions

Copyright(c) 2011 Bryan O'Sullivan
LicenseBSD3
Maintainerbos@serpentine.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Statistics.Sample.KernelDensity

Contents

Description

Kernel density estimation. This module provides a fast, robust, non-parametric way to estimate the probability density function of a sample.

This estimator does not use the commonly employed "Gaussian rule of thumb". As a result, it outperforms many plug-in methods on multimodal samples with widely separated modes.

Synopsis

Estimation functions

kde #

Arguments

:: (Vector v CD, Vector v Double, Vector v Int) 
=> Int

The number of mesh points to use in the uniform discretization of the interval (min,max). If this value is not a power of two, then it is rounded up to the next power of two.

-> v Double 
-> (v Double, v Double) 

Gaussian kernel density estimator for one-dimensional data, using the method of Botev et al.

The result is a pair of vectors, containing:

  • The coordinates of each mesh point. The mesh interval is chosen to be 20% larger than the range of the sample. (To specify the mesh interval, use kde_.)
  • Density estimates at each mesh point.

kde_ #

Arguments

:: (Vector v CD, Vector v Double, Vector v Int) 
=> Int

The number of mesh points to use in the uniform discretization of the interval (min,max). If this value is not a power of two, then it is rounded up to the next power of two.

-> Double

Lower bound (min) of the mesh range.

-> Double

Upper bound (max) of the mesh range.

-> v Double 
-> (v Double, v Double) 

Gaussian kernel density estimator for one-dimensional data, using the method of Botev et al.

The result is a pair of vectors, containing:

  • The coordinates of each mesh point.
  • Density estimates at each mesh point.

References

Botev. Z.I., Grotowski J.F., Kroese D.P. (2010). Kernel density estimation via diffusion. Annals of Statistics 38(5):2916–2957. http://arxiv.org/pdf/1011.2602