Liouville copulas

Description

Multivariate density, survival copula and random generation for the Liouville copulas.

Liouville copula function

Usage

1
2
3
4
5
rliouv(n = 100, family, alphavec, theta, reverse = FALSE)

pliouv(x, theta, family, alphavec)

dliouv(x, family, alphavec, theta, is.log = FALSE)

Arguments

n

sample size

family

family of the Liouville copula. Either "clayton", "gumbel", "frank", "AMH" or "joe"

alphavec

vector of Dirichlet allocations (must be a vector of integers) Specifies (implictly) the dimension of sample

theta

parameter of the corresponding Archimedean copula

reverse

if TRUE, return sample from the corresponding survival copula

x

matrix of quantiles from a Liouville copula

is.log

if TRUE, will return the log-likelihood value

Details

rliouv generates draws from the Liouville copula. dliouv evaluates the density of an n by d matrix of observations. pliouv is the (survival) copula associated with the Liouville vector and is as such the multivariate distribution function for uniform observations.

Liouville copulas were introduced in McNeil and Neslehova (2010), generalizing Archimedean copulas. Like the latter, they are survival copulas, which means that the copula is evaluated using the (multivariate) survival function of Liouville vectors. See also sliouv for the latter.

The Liouville copula is by definition a survival copula. The function thus maps marginally observations from the unit interval to the positive half-line using the marginal inverse survival function isliouvm of the Liouville vector, and then evaluating the survival distribution at the resulting Liouville vector.

Value

either a matrix of dimension n by length(alphavec) with the corresponding quantile, probability, survival probability or sample from the Liouville vector

References

McNeil A.J. and Neslehova, J.G. (2010) From Archimedean to Liouville Copulas. J. Multivar. Anal., 101(8): 1772–1790.

See Also

Liouville_marginal

Examples

1
2
3
4
5
6
#Multivariate density of Clayton Liouville copula
x <- rliouv(n = 100, family = "clayton", alphavec <- c(2,3), theta = 2)
dliouv(x=x, family="clayton", alphavec=c(2,3), theta=2, TRUE)
#Distribution function, multivariate sample
x <- rliouv(n=100, family="frank", theta=1.5, alphavec=c(2,3))
pliouv(theta=1.5, x=x,family="frank", alphavec=c(2,3))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.