[R] from a normal bivariate distribution to the marginal one

David Winsemius dwinsemius at comcast.net
Wed Jan 23 16:02:47 CET 2008


Elisabetta Petracci <elisabetta.petracci at unimi.it> wrote in
news:479730AA.3040505 at unimi.it: 

> Hello,
> 
> I'm quite new with R and so I would like to know if there is a
> command to calculate an integral.
> In particular I simulated a bivariate normal distribution using
> these simple lines:
> 
> rbivnorm <- function(n,       # sample size
> 
>                     mux,     # expected value of x
> 
>                     muy,     # expected value of Y
> 
>                     sigmax,  # standard deviation of X
> 
>                     sigmay,  # standard deviation of Y
> 
>                     rho){    # correlation coefficient
> 
>        
>            x <- rnorm(n,mux,sigmax)
>            y <- rnorm(n,muy+rho*sigmay*(x-mux)/sigmax,
>            sigmay*sqrt(1-rho2)) 
> 
>            cbind(x,y)
>            }
> 
> In this way I've sampled from a normal bivariate distribution and
> I've obtained two vectors of values:x and y..
> 
> Now, I would like to find the marginal distribution of y from the 
> bivariate distribution.
> Is there a command to do this?

It appears you left out a "^" between rho and 2.

There is an integrate() function but it requires a function (not a 
finite set of points). I think that what you may want is density(). 
Try:

mv.x.y<-rbivnorm(200,1,4,0.3,0.4,0.3)
plot(mv.x.y)

y.dens<-density(mv.x.y[,2])
plot(y.dens)

If you want the cdf rather than an estimate of the pdf, then look at 
ecdf(). 

-- 
David Winsemius



More information about the R-help mailing list