MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Question on SmoothKernelDistribution, value of computed bandwidth? (vrs. 8.01)

On Thu, 15 Sep 2011 09:41:16 +0100, kristoph < at> wrote:

> Hi
> Regarding the function SmoothKernelDistribution I'm aware that it is
> possible to compute the kernel pdf of some data. In order to do so
> Mathematica computes the bandwidth parameter if it is not provided.
> I was wondering if it is possible to retrieve the value of the
> computed bandwidth parameter somehow. I was unable to do so, but I
> think it is possible since Mathematica is computing and using it in
> order to compute the kernel pdf.
> Does anyone have an idea? Thanks in advance for help.
> Here is an example:
> data=RandomReal[1,1000];
> dist= SmoothKernelDistribution[data,
>   "LeastSquaresCrossValidation", "Epanechnikov"];
> Plot[PDF[dist, x], {x, -1, 1}, Filling -> Axis, Exclusions -> None]

It is possible, but absolutely undocumented and reliant on functions that  
are not meant to be exposed to or called by the user. Thus you should  
apply the following only with extreme caution.

The bandwidth is calculated as follows:

bandwidth[data_, method_, kf_] := Block[
   length = Length[data],
   dim = Statistics`DataDistributionUtilities`KDEGetDimensionality[data],
   sd = Statistics`DataDistributionUtilities`Dump`stDev[data]
  Statistics`DataDistributionUtilities`Dump`iAutoBW[length, dim, sd,  
method, data, kf]

or in your case,

In[2] :=
bandwidth[data, "LeastSquaresCrossValidation", "Epanechnikov"]

Out[3] = 0.0201149

Note that, depending on the data, this may give the message,

KernelMixtureDistribution::lscv: Unable to minimize the least squares  
cross-validation function; Silverman's method will be used.

  • Prev by Date: Re: Defining the labels to display in ContourLabels
  • Next by Date: Re: Aligning Typeset Math on Equal Signs
  • Previous by thread: Re: Question on SmoothKernelDistribution, value of computed bandwidth? (vrs. 8.01)
  • Next by thread: Coloring function