SSJ
V. 2.6.

umontreal.iro.lecuyer.randvar
Class KernelDensityVarCorrectGen

java.lang.Object
  extended by umontreal.iro.lecuyer.randvar.RandomVariateGen
      extended by umontreal.iro.lecuyer.randvar.KernelDensityGen
          extended by umontreal.iro.lecuyer.randvar.KernelDensityVarCorrectGen

public class KernelDensityVarCorrectGen
extends KernelDensityGen

This class is a variant of 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 + (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 Summary
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.
 
Method Summary
 double nextDouble()
          Generates a random number from the continuous distribution contained in this object.
 void setBandwidth(double h)
          Sets the bandwidth to h.
 
Methods inherited from class umontreal.iro.lecuyer.randvar.KernelDensityGen
getBaseBandwidth, setPositiveReflection
 
Methods inherited from class umontreal.iro.lecuyer.randvar.RandomVariateGen
getDistribution, getStream, nextArrayOfDouble, setStream, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KernelDensityVarCorrectGen

public 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.


KernelDensityVarCorrectGen

public KernelDensityVarCorrectGen(RandomStream s,
                                  EmpiricalDist dist,
                                  NormalGen kGen)
This constructor uses a gaussian kernel and the default bandwidth suggested in Table  for the gaussian distribution.

Method Detail

setBandwidth

public void setBandwidth(double h)
Description copied from class: KernelDensityGen
Sets the bandwidth to h.

Overrides:
setBandwidth in class KernelDensityGen

nextDouble

public double nextDouble()
Description copied from class: RandomVariateGen
Generates a random number from the continuous distribution contained in this object. By default, this method uses inversion by calling the inverseF method of the distribution object. Alternative generating methods are provided in subclasses.

Overrides:
nextDouble in class KernelDensityGen
Returns:
the generated value

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.