Class ImportanceSampling
- java.lang.Object
-
- dev.nm.stat.random.variancereduction.ImportanceSampling
-
- All Implemented Interfaces:
MeanEstimator
public class ImportanceSampling extends Object implements MeanEstimator
Importance sampling is a general technique for estimating properties of a particular distribution, while only having samples generated from a different distribution rather than the distribution of interest. Specifically, \[ E_F(h(s)) = \int h(s)f(s) ds = \int h(s)\frac{f(s)}{g(s)}g(s)ds = \int h(s)w(s)g(s)ds = E_G(h(s)w(s)) \]- See Also:
- Wikipedia: Importance sampling
-
-
Constructor Summary
Constructors Constructor Description ImportanceSampling(UnivariateRealFunction h, UnivariateRealFunction w, RandomNumberGenerator G)
Uses importance sample to do Monte Carlo integration.
-
-
-
Constructor Detail
-
ImportanceSampling
public ImportanceSampling(UnivariateRealFunction h, UnivariateRealFunction w, RandomNumberGenerator G)
Uses importance sample to do Monte Carlo integration.- Parameters:
h
- the function to integratew
- the weight function or the change of measureG
- a uniform random number generator
-
-
Method Detail
-
estimate
public Estimator estimate(int n)
Description copied from interface:MeanEstimator
Gets an estimator.- Specified by:
estimate
in interfaceMeanEstimator
- Parameters:
n
- the number of samples to draw for the estimation- Returns:
- an estimator
-
-