Learn R Programming

ElliptCopulas (version 0.1.4.1)

conv_funct: Conversion Functions for Elliptical Distributions

Description

An elliptical random vector X of density \(|det(\Sigma)|^{-1/2} g_d(x' \Sigma^{-1} x)\) can always be written as \(X = \mu + R * A * U\) for some positive random variable \(R\) and a random vector \(U\) on the \(d\)-dimensional sphere. Furthermore, there is a one-to-one mapping between g_d and its one-dimensional marginal g_1.

Usage

Convert_gd_To_g1(grid, g_d, d)

Convert_g1_To_Fg1(grid, g_1)

Convert_g1_To_Qg1(grid, g_1)

Convert_g1_To_f1(grid, g_1)

Convert_gd_To_fR2(grid, g_d, d)

Value

One of the following

  • g_1 the \(1\)-dimensional density generator.

  • Fg1 the \(1\)-dimensional marginal cumulative distribution function.

  • Qg1 the \(1\)-dimensional marginal quantile function (approximately equal to the inverse function of Fg1).

  • f1 the density of a \(1\)-dimensional margin if \(\mu = 0\) and \(A\) is the identity matrix.

  • fR2 the density function of \(R^2\).

The function Convert_gd_To_g1 returns a numerical vector of (approximated) values of g_1 on the same grid as gd. In all other cases, a function is returned (see the examples section).

Arguments

grid

the grid on which the values of the functions in parameter are given.

g_d

the \(d\)-dimensional density generator.

d

the dimension of the random vector.

g_1

the \(1\)-dimensional density generator.

See Also

DensityGenerator.normalize to compute the normalized version of a given \(d\)-dimensional generator.

Examples

Run this code
grid = seq(0,100,by = 0.01)
g_d = DensityGenerator.normalize(grid = grid, grid_g = 1/(1+grid^3), d = 3)
g_1 = Convert_gd_To_g1(grid = grid, g_d = g_d, d = 3)
Fg_1 = Convert_g1_To_Fg1(grid = grid, g_1 = g_1)
Qg_1 = Convert_g1_To_Qg1(grid = grid, g_1 = g_1)
f1 = Convert_g1_To_f1(grid = grid, g_1 = g_1)
fR2 = Convert_gd_To_fR2(grid = grid, g_d = g_d, d = 3)
plot(grid, g_d, type = "l", xlim = c(0,10))
plot(grid, g_1, type = "l", xlim = c(0,10))
plot(Fg_1, xlim = c(-3,3))
plot(Qg_1, xlim = c(0.01,0.99))
plot(f1, xlim = c(-3,3))
plot(fR2, xlim = c(0,3))

Run the code above in your browser using DataLab