Bivariate Normal Distribution Cumulative Distribution Function
Density, cumulative distribution function and random generation for the bivariate normal distribution distribution.
dbinorm(x1, x2, mean1 = 0, mean2 = 0, var1 = 1, var2 = 1, cov12 = 0, log = FALSE) pbinorm(q1, q2, 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)
x1, x2, q1, q2 |
vector of quantiles. |
mean1, mean2, var1, var2, cov12 |
vector of means, variances and the covariance. |
n |
number of observations.
Same as |
log |
Logical.
If |
The default arguments correspond to the standard bivariate normal
distribution with correlation parameter rho = 0.
That is, two independent standard normal distributions.
Let 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 VGAM
0.9-1 onwards.
dbinorm
gives the density,
pbinorm
gives the cumulative distribution function,
rbinorm
generates random deviates (n by 2 matrix).
Being based on an approximation, the results of pbinorm()
may be negative!
Also,
pnorm2()
should be withdrawn soon;
use pbinorm()
instead because it is identical.
For rbinorm()
,
if the ith variance-covariance matrix is not
positive-definite then the ith row is all NA
s.
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.
yvec <- c(-5, -1.96, 0, 1.96, 5) ymat <- expand.grid(yvec, yvec) cbind(ymat, pbinorm(ymat[, 1], ymat[, 2])) ## Not run: 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") ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.