public class KernelDensityVarCorrectGen extends KernelDensityGen
KernelDensityGen, but with
a rescaling of the empirical distribution so that the variance
of the density used to generate the random variates is equal
to the empirical variance,
as suggested by Silverman.
Let bar(x)n and sn2 be the sample mean and sample variance
of the observations.
The distance between each generated random variate and the
sample mean bar(x)n is multiplied by the correcting factor
1/σe, where
σe2 = 1 + (hσk/sn)2.
The constant
σk2 must be passed to the constructor.
Its value can be found in
the Table in KernelDensityGen for some popular
kernels.
| Constructor and Description |
|---|
KernelDensityVarCorrectGen(RandomStream s,
EmpiricalDist dist,
NormalGen kGen)
This constructor uses a gaussian kernel and the default
bandwidth suggested in Table for the gaussian
distribution.
|
KernelDensityVarCorrectGen(RandomStream s,
EmpiricalDist dist,
RandomVariateGen kGen,
double h,
double sigmak2)
Creates a new generator for a kernel density estimated
from the observations given by the empirical distribution dist,
using stream s to select the observations,
generator kGen to generate the added noise from the kernel
density, bandwidth h, and
σk2 = sigmak2 used for
the variance correction.
|
| Modifier and Type | Method and Description |
|---|---|
double |
nextDouble()
Generates a random number from the continuous distribution
contained in this object.
|
void |
setBandwidth(double h)
Sets the bandwidth to h.
|
getBaseBandwidth, setPositiveReflectiongetDistribution, getStream, nextArrayOfDouble, setStreampublic KernelDensityVarCorrectGen(RandomStream s, EmpiricalDist dist, RandomVariateGen kGen, double h, double sigmak2)
public KernelDensityVarCorrectGen(RandomStream s, EmpiricalDist dist, NormalGen kGen)
public void setBandwidth(double h)
KernelDensityGensetBandwidth in class KernelDensityGenpublic double nextDouble()
RandomVariateGeninverseF
method of the distribution object.
Alternative generating methods are provided in subclasses.nextDouble in class KernelDensityGenTo submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.