Evaluates the bivariate normal distribution function.
#include <imsls.h>
float imsls_f_bivariate_normal_cdf (float x, float y, float rho)
The type double function is imsls_d_bivariate_normal_cdf.
float x
(Input)
The x-coordinate of the point for which the bivariate normal
distribution function is to be evaluated.
float y
(Input)
The y-coordinate of the point for which the bivariate normal
distribution function is to be evaluated.
float rho
(Input)
Correlation coefficient.
The probability that a bivariate normal random variable with correlation rho takes a value less than or equal to x and less than or equal to y.
Function imsls_f_bivariate_normal_cdf evaluates the distribution function F of a bivariate normal distribution with means of zero, variances of one, and correlation of rho; that is, with ρ = rho, and |ρ| < 1,
To determine the probability that U ≤ u0 and V ≤ v0, where (U, V)T is a bivariate normal random variable with mean μ = (μU, μV)T and variance-covariance matrix
transform (U, V)T to a vector with zero means and unit variances. The input to imsls_f_bivariate_normal_cdf would be X = (u0 − μU)/σU, Y = (v0 − μV)/σV, and ρ = σUV/(σUσV).
Function imsls_f_bivariate_normal_cdf uses the method of Owen (1962, 1965). Computation of Owen’s T-function is based on code by M. Patefield and D. Tandy (2000). For |ρ| = 1, the distribution function is computed based on the univariate statistic, Z = min(x, y), and on the normal distribution function imsls_f_normal_cdf.
Suppose (X, Y) is a bivariate normal random variable with mean (0, 0) and variance-covariance matrix as follows:
In this example, we find the probability that X is less than −2.0 and Y is less than 0.0.
#include <imsls.h>
#include <stdio.h>
int main()
{
float rho = 0.9, x = -2.0, y = 0.0, p;
p = imsls_f_bivariate_normal_cdf(x, y, rho);
printf(" The probability that X is less than %4.1f\n"
" and Y is less than %3.1f is %6.4f\n", x, y, p);
}
The probability that X is less than -2.0
and Y is less than 0.0 is 0.0228