
dbinorm(x1, x2, mean1 = 0, mean2 = 0, var1 = 1, var2 = 1, cov12 = 0, log = FALSE)
pbinorm(x1, x2, mean1 = 0, mean2 = 0, var1 = 1, var2 = 1, cov12 = 0)
rbinorm(n, mean1 = 0, mean2 = 0, var1 = 1, var2 = 1, cov12 = 0)
pnorm2(x1, x2, mean1 = 0, mean2 = 0, var1 = 1, var2 = 1, cov12 = 0)
rnorm
.log = TRUE
then the logarithm of the density is returned.dbinorm
gives the density,
pbinorm
gives the cumulative distribution function,
rbinorm
generates random deviates ($n$ by 2 matrix).pbinorm()
may be negative!
Also,
pnorm2()
should be withdrawn soon;
use pbinorm()
instead because it is identical.sd1
(say) be sqrt(var1)
and
written $\sigma_1$, etc.
Then the general formula for the correlation coefficient is
$\rho = cov / (\sigma_1 \sigma_2)$
where $cov$ is argument cov12
.
Thus if arguments var1
and var2
are left alone then
cov12
can be inputted with $\rho$.
One can think of this function as an extension of
pnorm
to two dimensions, however note
that the argument names have been changed for
pbinorm()
is
based on Donnelly (1973),
the code was translated from FORTRAN to ratfor using struct, and
then from ratfor to C manually.
The function was originally called bivnor
, and TWY only
wrote a wrapper function.Donnelly, T. G. (1973) Algorithm 462: Bivariate Normal Distribution. Communications of the ACM, 16, 638.
pnorm
,
binormal
,
uninormal
.yvec <- c(-5, -1.96, 0, 1.96, 5)
ymat <- expand.grid(yvec, yvec)
cbind(ymat, pbinorm(ymat[, 1], ymat[, 2]))
rhovec <- seq(-0.95, 0.95, by = 0.01)
plot(rhovec, pbinorm(0, 0, cov12 = rhovec), type = "l", col = "blue", las = 1)
abline(v = 0, h = 0.25, col = "gray", lty = "dashed")
Run the code above in your browser using DataLab