Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## umontreal.iro.lecuyer.randvar
Class KernelDensityVarCorrectGen

    java.lang.Object
      umontreal.iro.lecuyer.randvar.RandomVariateGen
          umontreal.iro.lecuyer.randvar.KernelDensityGen
              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 + (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 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`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, 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

Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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