Solved – Using control variates & antithetic method with Monte Carlo

expected valuemonte carloself-studysimulation

Supposing $g(x)=\sqrt[3]{x}$, I want to calculate the expected value of g, $E(\sqrt[3]{x})$, using Monte Carlo method, by generating $x_i$ from a Weibull distribution with parameters $(1,5)$.

After that, I want to use the control variates method and the antithetic method in order to to reduce the variance of my estimator, which I found with the simple Monte Carlo. And here is my problem, I do not know how to do these methods.

I would appreciate if someone could help me do that or give any tip/help.Thank you very much for your concern, in advance.

What I have done so far

Supposing $S$ is our estimator, then we know that $S=(\sum \limits_{i=1}^{N} g(x_i))/N$.

Using Matlab, I found the expected value $S$ by generating 1000 random numbers from the weibull(1,5) distribution and calculate the sum. Here is my algorithm:

N=1000
sum=0;
for i=1:N;
  X = wblrnd(1,5);  
  res(i)=X.^(1/3); 
  sum=sum+res(i);
end
S=sum/N

Best Answer

There is no one way to implement either control or antithetic variates, however, a couple of examples may help.

Antithetic variables: Imagine instead of the random number generator you actually used, you generated a $U(0,1)$ variate, call it $u$, and ran it through the inverse CDF of the Weibull(1,5) distribution, thereby generating a Weibull(1,5) variate. For the next random number, use $1-u$ instead of generating a new $u$. For subsequent random numbers, alternate generating a new $u$ and using $1-u$. This helps to "balance" high and low values from your random number stream, thus reducing variability of your final estimates.

Control variates: These are "extra" variables that are correlated with the result, enabling you to do something like run a regression on your results against the control variates to get a more accurate estimate. In your case, for example, you know the true mean of the Weibull dist'n (5), so you could use the $x_i$ as a control variate. You would calculate the improved estimate:

$S^* = S - \frac{\widehat{cov}(x,res)}{\widehat{var}(x)} * (\bar{x} - 5)$

where the covariance and variance terms are estimated from the data. This helps correct the estimate for random number streams that are not, in some relevant way, totally representative of the underlying distribution.

Both methods, esp. control variates, are more general than these two examples might lead you to believe. The wikipedia links are at best rough introductions; plenty of books and papers covering both techniques are out there if you want to go more into depth.

Related Question