bivariateNormalCdf¶
Evaluates the bivariate normal distribution function.
Synopsis¶
bivariateNormalCdf (x, y, rho)
Required Arguments¶
- 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.
Return Value¶
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.
Description¶
Function bivariateNormalCdf
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\leq u_0\) and \(V\leq v_0\), where \((U,V)^T\) is a bivariate normal random variable with mean \(\mu=(\mu_U,\mu_V)^T\) and variance-covariance matrix
transform \((U,V)^T\) to a vector with zero means and unit variances. The
input to bivariateNormalCdf
would be X
= \((u_0-
\mu_U)/\sigma_U\), Y
= \((v_0-\mu_V)/\sigma_V\), and
\(\rho=\sigma U_V/(\sigma_U \sigma_V)\).
Function bivariateNormalCdf
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 \(|\rho|=1\), the distribution function is computed
based on the univariate statistic, \(Z=\min(x,y)\), and on the normal
distribution function normalCdf
, which can be found in Chapter 11 of the
PyIMSL Numerical Stat Library, “Probablility Distribution Functions and
Inverses.”
Example¶
Suppose (X, Y) is a bivariate normal random variable with mean (0, 0) and variance-covariance matrix
This example finds the probability that X is less than −2.0 and Y is less than 0.0.
from __future__ import print_function
from numpy import *
from pyimsl.math.bivariateNormalCdf import bivariateNormalCdf
x = -2.0
y = 0.0
rho = 0.9
p = bivariateNormalCdf(x, y, rho)
print("The probability that X is less than -2.0 and ", end=' ')
print("Y is less than 0.0 is %6.4f" % (p))
Output¶
The probability that X is less than -2.0 and Y is less than 0.0 is 0.0228