[R] bivariate normal distribution in likelihood
Robert A LaBudde
ral at lcfltd.com
Tue May 1 07:27:16 CEST 2007
At 11:32 PM 4/30/2007, Deepankar wrote:
>Hi all,
>
>I am trying to do a maximum likelihood estimation. In my likelihood
>function, I have to evaluate a double integral of the bivariate
>normal density over a subset of the points of the plane. For
>instance, if I denote by y the y co-ordinate and by x, the x
>co-ordinate then the area over which I have to integrate is the
>following set of points, A:
>A = {x>=0 & y < 3x+10}
>
>I have used the following code to calculate this double integral:
>
>x <- rmvnorm(100000, mean=me, sigma=sig)
>c <- nrow(x)
>x1 <- x[ ,1]
>x2 <- x[ ,2]
>e1 <- as.numeric(x2 < 3*x1 + 10 & x1>0)
>p1 <- sum(e1)/c
>
>In this code, I provide the mean and covariance while drawing the
>bivariate random normal variables and get "p1" as the required
>answer. The problem is that I have to draw at least 100,000
>bivariate random normals to get a reasonable answer; even then it is
>not very accurate.
>
>Is there some other way to do the same thing more accurately and
>more efficiently? For instance, can this be done using the bivariate
>normal distribution function "pmvnorm"? Also feel free to point our
>errors if you see one.
Simple random sampling is a poor way to evaluate an integral
(expectation). It converges on the order of 1/sqrt(N).
Stratified random sampling would be better, as it converges on the
order of 1/N.
Even better is product Gauss-Hermite quadrature which will give a
very accurate answer with a few dozen points.
================================================================
Robert A. LaBudde, PhD, PAS, Dpl. ACAFS e-mail: ral at lcfltd.com
Least Cost Formulations, Ltd. URL: http://lcfltd.com/
824 Timberlake Drive Tel: 757-467-0954
Virginia Beach, VA 23464-3239 Fax: 757-467-2947
"Vere scire est per causas scire"
More information about the R-help
mailing list