cmvnorm {condMVNorm} | R Documentation |
Conditional Multivariate Normal Density and Random Deviates
Description
These functions provide the density function and a random number
generator for the conditional multivariate normal
distribution, [Y given X], where Z = (X,Y) is the fully-joint multivariate normal distribution with mean equal to mean
and covariance matrix
sigma
.
Usage
dcmvnorm(x, mean, sigma, dependent.ind, given.ind,
X.given, check.sigma=TRUE, log = FALSE)
rcmvnorm(n, mean, sigma, dependent.ind, given.ind,
X.given, check.sigma=TRUE,
method=c("eigen", "svd", "chol"))
Arguments
x |
vector or matrix of quantiles of Y. If |
n |
number of random deviates. |
mean |
mean vector, which must be specified. |
sigma |
a symmetric, positive-definte matrix of dimension n x n, which must be specified. |
dependent.ind |
a vector of integers denoting the indices of dependent variable Y. |
given.ind |
a vector of integers denoting the indices of conditioning variable X. If specified as integer vector of length zero or left unspecified, the unconditional distribution is used. |
X.given |
a vector of reals denoting the conditioning value of X. This should be of the same length as |
check.sigma |
logical; if |
log |
logical; if |
method |
string specifying the matrix decomposition used to
determine the matrix root of |
See Also
pcmvnorm
, pmvnorm
, dmvnorm
, qmvnorm
Examples
# 10-dimensional multivariate normal distribution
n <- 10
A <- matrix(rnorm(n^2), n, n)
A <- A %*% t(A)
# density of Z[c(2,5)] given Z[c(1,4,7,9)]=c(1,1,0,-1)
dcmvnorm(x=c(1.2,-1), mean=rep(1,n), sigma=A,
dependent.ind=c(2,5), given.ind=c(1,4,7,9),
X.given=c(1,1,0,-1))
dcmvnorm(x=-1, mean=rep(1,n), sigma=A, dep=3, given=c(1,4,7,9,10),
X=c(1,1,0,0,-1))
dcmvnorm(x=c(1.2,-1), mean=rep(1,n), sigma=A, dep=c(2,5),
given=integer())
# gives an error since `x' and `dep' are incompatibe
#dcmvnorm(x=-1, mean=rep(1,n), sigma=A, dep=c(2,3),
# given=c(1,4,7,9,10), X=c(1,1,0,0,-1))
rcmvnorm(n=10, mean=rep(1,n), sigma=A, dep=c(2,5),
given=c(1,4,7,9,10), X=c(1,1,0,0,-1),
method="eigen")
rcmvnorm(n=10, mean=rep(1,n), sigma=A, dep=3,
given=c(1,4,7,9,10), X=c(1,1,0,0,-1),
method="chol")