
SSJ V. 2.6. 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object umontreal.iro.lecuyer.randvar.RandomVariateGen umontreal.iro.lecuyer.randvar.KernelDensityGen
public class KernelDensityGen
This class implements random variate generators for distributions obtained via kernel density estimation methods from a set of n individual observations x_{1},..., x_{n}. The basic idea is to center a copy of the same symmetric density at each observation and take an equally weighted mixture of the n copies as an estimator of the density from which the observations come. The resulting kernel density has the general form
The constructor of a generator from a kernel density requires a random stream s, the n observations in the form of an empirical distribution, a random variate generator for the kernel density k, and the value of the bandwidth h. The random variates are then generated as follows: select an observation x_{I} at random, by inversion, using stream s, then generate random variate Y with the generator provided for the density k, and return x_{I} + hY.
A simple formula for the bandwidth, suggested in, is h = α_{k}h_{0}, where
s_{n} and q are the empirical standard deviation and the interquartile range of the n observations, and α_{k} is a constant that depends on the type of kernel k. It is defined bygetBaseBandwidth
permits one to compute h_{0}
for a given empirical distribution.
name  constructor  α_{k}  σ_{k}^{2}  efficiency 
Epanechnikov  BetaSymmetricalDist(2, 1, 1)  1.7188  1/5  1.000 
triangular  TriangularDist(1, 1, 0)  1.8882  1/6  0.986 
Gaussian  NormalDist()  0.7764  1  0.951 
boxcar  UniformDist(1, 1)  1.3510  1/3  0.930 
logistic  LogisticDist()  0.4340  3.2899  0.888 
Studentt(3)  StudentDist(3)  0.4802  3  0.674 
Table gives the precomputed values of σ_{k} and α_{k} for selected (popular) kernels. The values are taken from. The second column gives the name of a function (in this package) that constructs the corresponding distribution. The efficiency of a kernel is defined as the ratio of its mean integrated square error over that of the Epanechnikov kernel, which has optimal efficiency and corresponds to the beta distribution with parameters (2, 2) over the interval ( 1, 1).
Constructor Summary  

KernelDensityGen(RandomStream s,
EmpiricalDist dist,
NormalGen kGen)
This constructor uses a gaussian kernel and the default bandwidth h = α_{k}h_{0} with the α_{k} suggested in Table for the gaussian distribution. 

KernelDensityGen(RandomStream s,
EmpiricalDist dist,
RandomVariateGen kGen,
double h)
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, and bandwidth h. 
Method Summary  

static double 
getBaseBandwidth(EmpiricalDist dist)
Computes and returns the value of h_{0} in. 
double 
nextDouble()
Generates a random number from the continuous distribution contained in this object. 
void 
setBandwidth(double h)
Sets the bandwidth to h. 
void 
setPositiveReflection(boolean reflect)
After this method is called with true, the generator will produce only positive values, by using the reflection method: replace all negative values by their absolute values. 
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 

public KernelDensityGen(RandomStream s, EmpiricalDist dist, RandomVariateGen kGen, double h)
public KernelDensityGen(RandomStream s, EmpiricalDist dist, NormalGen kGen)
Method Detail 

public static double getBaseBandwidth(EmpiricalDist dist)
public void setBandwidth(double h)
public void setPositiveReflection(boolean reflect)
nextDouble
will return  x if x is the
generated variate. The mecanism is disabled when the method is
called with false.
public double nextDouble()
RandomVariateGen
inverseF
method of the distribution object.
Alternative generating methods are provided in subclasses.
nextDouble
in class RandomVariateGen

SSJ V. 2.6. 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 