trinormalUC: Trivariate Normal Distribution Density and Random Variates

TrinormR Documentation

Trivariate Normal Distribution Density and Random Variates

Description

Density and random generation for the trivariate normal distribution distribution.

Usage

dtrinorm(x1, x2, x3, mean1 = 0, mean2 = 0, mean3 = 0,
         var1 = 1, var2 = 1, var3 = 1,
         cov12 = 0, cov23 = 0, cov13 = 0, log = FALSE)
rtrinorm(n,          mean1 = 0, mean2 = 0, mean3 = 0,
         var1 = 1, var2 = 1, var3 = 1,
         cov12 = 0, cov23 = 0, cov13 = 0)

Arguments

x1, x2, x3

vector of quantiles.

mean1, mean2, mean3

vectors of means.

var1, var2, var3

vectors of variances.

cov12, cov23, cov13

vectors of covariances.

n

number of observations. Same as rnorm.

log

Logical. If log = TRUE then the logarithm of the density is returned.

Details

The default arguments correspond to the standard trivariate normal distribution with correlation parameters equal to 0, which corresponds to three independent standard normal distributions. Let sd1 (say) be sqrt(var1) and written \sigma_1, etc. Then the general formula for each correlation coefficient is of the form \rho_{12} = cov_{12} / (\sigma_1 \sigma_2), and similarly for the two others. Thus if the var arguments are left alone then the cov can be inputted with \rhos.

Value

dtrinorm gives the density, rtrinorm generates random deviates (n by 3 matrix).

Warning

dtrinorm()'s arguments might change in the future! It's safest to use the full argument names to future-proof possible changes!

Note

For rtrinorm(), if the ith variance-covariance matrix is not positive-definite then the ith row is all NAs.

See Also

pnorm, trinormal, uninormal, binormal, rbinorm.

Examples

## Not run: nn <- 1000
tdata <- data.frame(x2 = sort(runif(nn)))
tdata <- transform(tdata, mean1 = 1 + 2 * x2,
                   mean2 = 3 + 1 * x2, mean3 = 4,
                   var1 = exp( 1), var2 = exp( 1), var3 = exp( 1),
                   rho12 = rhobitlink( 1, inverse = TRUE),
                   rho23 = rhobitlink( 1, inverse = TRUE),
                   rho13 = rhobitlink(-1, inverse = TRUE))
ymat <- with(tdata, rtrinorm(nn, mean1, mean2, mean3,
                             var1, var2, var3,
                             sqrt(var1)*sqrt(var1)*rho12,
                             sqrt(var2)*sqrt(var3)*rho23,
                             sqrt(var1)*sqrt(var3)*rho13))
pairs(ymat, col = "blue")

## End(Not run)

VGAM documentation built on Sept. 18, 2024, 9:09 a.m.