SSJ
V. labo.

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

KernelDensityVarCorrectGen

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 [tex2html_wrap_inline109] 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)
          .
KernelDensityVarCorrectGen(RandomStream s, EmpiricalDist dist, RandomVariateGen kGen, double h, double sigmak2)
          .
 
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)
. \begin{tabb}Creates a new generator for a kernel density estimated
 from the ob...
 ... $\sigma_k^2 =$\ \texttt{sigmak2} used for
 the variance correction.
 \end{tabb}


KernelDensityVarCorrectGen

public KernelDensityVarCorrectGen(RandomStream s,
                                  EmpiricalDist dist,
                                  NormalGen kGen)
. \begin{tabb}
 % latex2html id marker 33This constructor uses a gaussian kernel...
 ...uggested in Table~\ref{tab:kernels} for the gaussian
 distribution.
 \end{tabb}

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

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