SSJ
V. 1.1.9.

umontreal.iro.lecuyer.probdist
Class BiNormalDist

java.lang.Object
  extended by umontreal.iro.lecuyer.probdist.ContinuousDistribution2Dim
      extended by umontreal.iro.lecuyer.probdist.BiNormalDist
Direct Known Subclasses:
BiNormalDonnellyDist, BiNormalGenzDist

public class BiNormalDist
extends ContinuousDistribution2Dim

Extends the class ContinuousDistribution2Dim for the bivariate normal distribution. It has means E[X] = μ1, E[Y] = μ2, and variances var [X] = σ12, var [Y] = σ22 such that σ1 > 0 and σ2 > 0. The correlation between X and Y is r. Its density function is

f (x, y) = e-T/(2πσ1σ2(1-r^2)1/2)

T = [((x - μ1)/σ1)2 -2r((x - μ1)/σ1)((y - μ2)/σ2) + ((y - μ2)/σ2)2]/(2(1 - r2))

and the corresponding distribution function is (the cdf method)

Φ(μ1, σ1, x, μ2, σ2, y, r) = ∫-∞xdx∫-∞ydy e-T/(2πσ1σ2(1 - r^2)1/2).

We also define the upper distribution function (the barF method) as

bar(Φ)(μ1, σ1, x, μ2, σ2, y, r) = ∫∞xdx∫∞ydy e-T/(2πσ1σ2(1 - r^2)1/2).

When μ1 = μ2 = 0 and σ1 = σ2 = 1, we have the standard binormal distribution, with corresponding distribution function

Φ(x, y, r) = ∫∞xdx∫∞ydy e-S/(2π(1 - r^2)1/2)

S = (x2 -2rxy + y2)/(2(1 - r2)).


Field Summary
 
Fields inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution2Dim
decPrec
 
Constructor Summary
BiNormalDist(double rho)
          Constructs a BiNormalDist object with default parameters μ1 = μ2 = 0, σ1 = σ2 = 1 and correlation ρ = rho.
BiNormalDist(double mu1, double sigma1, double mu2, double sigma2, double rho)
          Constructs a BiNormalDist object with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.
 
Method Summary
 double barF(double x, double y)
          .
static double barF(double x, double y, double rho)
          Computes the standard upper binormal distribution with μ1 = μ2 = 0 and σ1 = σ2 = 1.
static double barF(double mu1, double sigma1, double x, double mu2, double sigma2, double y, double rho)
          Computes the upper binormal distribution function with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.
 double cdf(double x, double y)
          .
static double cdf(double x, double y, double rho)
          Computes the standard binormal distribution with μ1 = μ2 = 0 and σ1 = σ2 = 1.
static double cdf(double mu1, double sigma1, double x, double mu2, double sigma2, double y, double rho)
          Computes the binormal distribution function with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.
 double density(double x, double y)
          Returns f (x, y), the density of (X, Y) evaluated at (x, y).
static double density(double x, double y, double rho)
          Computes the standard binormal density function with μ1 = μ2 = 0 and σ1 = σ2 = 1.
static double density(double mu1, double sigma1, double x, double mu2, double sigma2, double y, double rho)
          Computes the binormal density function with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.
 double getMu1()
          Returns the parameter μ1.
 double getMu2()
          Returns the parameter μ2.
 double getSigma1()
          Returns the parameter σ1.
 double getSigma2()
          Returns the parameter σ2.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BiNormalDist

public BiNormalDist(double rho)
Constructs a BiNormalDist object with default parameters μ1 = μ2 = 0, σ1 = σ2 = 1 and correlation ρ = rho.


BiNormalDist

public BiNormalDist(double mu1,
                    double sigma1,
                    double mu2,
                    double sigma2,
                    double rho)
Constructs a BiNormalDist object with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.

Method Detail

density

public double density(double x,
                      double y)
Description copied from class: ContinuousDistribution2Dim
Returns f (x, y), the density of (X, Y) evaluated at (x, y).

Specified by:
density in class ContinuousDistribution2Dim
Parameters:
x - value x at which the density is evaluated
y - value y at which the density is evaluated
Returns:
density function evaluated at (x, y)

density

public static double density(double x,
                             double y,
                             double rho)
Computes the standard binormal density function with μ1 = μ2 = 0 and σ1 = σ2 = 1.


density

public static double density(double mu1,
                             double sigma1,
                             double x,
                             double mu2,
                             double sigma2,
                             double y,
                             double rho)
Computes the binormal density function with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.


cdf

public static double cdf(double x,
                         double y,
                         double rho)
Computes the standard binormal distribution with μ1 = μ2 = 0 and σ1 = σ2 = 1. The simple algorithm used here is slower and less precise than the cdf in both BiNormalGenzDist and in BiNormalDonnellyDist.


cdf

public double cdf(double x,
                  double y)
Description copied from class: ContinuousDistribution2Dim
. Computes and returns the distribution function F(x, y):

F(x, y) = P[X <= x, Y <= y] = ∫-∞xds∫-∞ydt f (s, t).

Specified by:
cdf in class ContinuousDistribution2Dim
Parameters:
x - value x at which the distribution function is evaluated
y - value y at which the distribution function is evaluated
Returns:
distribution function evaluated at (x, y)

cdf

public static double cdf(double mu1,
                         double sigma1,
                         double x,
                         double mu2,
                         double sigma2,
                         double y,
                         double rho)
Computes the binormal distribution function with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.


barF

public static double barF(double x,
                          double y,
                          double rho)
Computes the standard upper binormal distribution with μ1 = μ2 = 0 and σ1 = σ2 = 1.


barF

public double barF(double x,
                   double y)
Description copied from class: ContinuousDistribution2Dim
. Returns the upper cumulative distribution function bar(F)(x, y):

bar(F)(x, y) = P[X >= x, Y >= y] = ∫∞xds∫∞ydt f (s, t).

The default implementation computes bar(F)(x, y) = 1 + F(x, y) - F(∞, y) - F(x,∞).

Overrides:
barF in class ContinuousDistribution2Dim
Parameters:
x - value x at which the upper distribution is evaluated
y - value y at which the upper distribution is evaluated
Returns:
upper distribution function evaluated at (x, y)

barF

public static double barF(double mu1,
                          double sigma1,
                          double x,
                          double mu2,
                          double sigma2,
                          double y,
                          double rho)
Computes the upper binormal distribution function with parameters μ1 = mu1, μ2 = mu2, σ1 = sigma1, σ2 = sigma2 and ρ = rho.


getMu1

public double getMu1()
Returns the parameter μ1.


getMu2

public double getMu2()
Returns the parameter μ2.


getSigma1

public double getSigma1()
Returns the parameter σ1.


getSigma2

public double getSigma2()
Returns the parameter σ2.


SSJ
V. 1.1.9.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.