[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