Learn R Programming

lineqGPR (version 0.1.1)

tmvrnorm.ExpT: "tmvrnorm" Sampler for "ExpT" (Exponential Tilting) S3 Class

Description

Sampler for truncated multivariate normal distributions via exponential tilting using the package TruncatedNormal (Botev, 2017).

Usage

# S3 method for ExpT
tmvrnorm(object, nsim, control = NULL, ...)

Arguments

object

an object with "ExpT" S3 class containing: mu (mean vector), Sigma (covariance matrix), lb (lower bound vector), ub (upper bound vector).

nsim

an integer corresponding to the number of simulations.

control

extra parameters required for the MC/MCMC sampler.

...

further arguments passed to or from other methods.

Value

A matrix with the simulated samples. Samples are indexed by columns.

References

Botev, Z. I. (2017), "The normal law under linear restrictions: simulation and estimation via minimax tilting". Journal of the Royal Statistical Society: Series B (Statistical Methodology), 79(1):125-148. [link]

See Also

tmvrnorm.RSM, tmvrnorm.HMC

Examples

Run this code
# NOT RUN {
n <- 100
x <- seq(0, 1, length = n)
Sigma <- kernCompute(x1 = x, type = "gaussian", par = c(1,0.2))
tmgPar <- list(mu = rep(0,n), Sigma = Sigma + 1e-9*diag(n), lb = rep(-1,n), ub = rep(1,n))
class(tmgPar) <- "ExpT"
y <- tmvrnorm(tmgPar, nsim = 10)
matplot(x, y, type = 'l', ylim = c(-1,1),
        main = "Constrained samples using expontial tilting")
abline(h = c(-1,1), lty = 2)

# }

Run the code above in your browser using DataLab