Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

matrix_tools

Tools to Work with Matrices


Description

p2P() creates a matrix from a given vector of parameters. P2p() creates a numeric vector from a given matrix, currently useful for elliptical copulas.

getSigma() returns the d * d symmetric matrix Σ which is called “Rho” as well, written (capital Greek rho !) as P (and hence sometimes erronously pronounced "Pee"). Note that getSigma() works for all elliptical copulas and uses p2P() for the “unstuctured” case, dispstr = "un".

extremePairs() identifies pairs with the largest (or smallest or both) entries in a symmetric matrix.

Usage

p2P(param, d = floor(1 + sqrt(2*length(param))))
P2p(P)
getSigma(copula)
extremePairs(x, n = 6, method = c("largest", "smallest", "both"),
             use.names = FALSE)

Arguments

param

a parameter vector.

d

dimension of the resulting matrix. The default is correct under the assumption (of p2P() in general!) that param is the lower-triangular part of a correlation matrix P and hence corresponds to ellipCopula(.., dispstr = "un").

P

a matrix which should be converted to a vector.

copula

an elliptical copula, i.e., an object (extending) class ellipCopula; typically resulting from tCopula() or normalCopula().

x

a symmetric matrix.

n

the number of pairs with smallest (or largest) values to be displayed.

method

a character string indicating the method to be used (with "largest" to comute the n pairs with largest entries in x (sorted in decreasing order); with "smallest" to compute the n pairs with smallest entries in x (sorted in increasing order); and with "both" to comute the 2n pairs with n largest entries and n smallest entries (sorted in decreasing order)).

use.names

A logical indicating whether colnames(x) are used as labels (if !is.null(colnames(x))).

Details

These auxiliary functions are often used when working with elliptical copulas.

Value

p2P:

a symmetric matrix with ones on the diagonal and the values of param filled column-wise below the diagonal (which corresponds to row-wise filling above the diagonal).

P2p:

vector of column-wise below-diagonal entries of P (equal to the row-wise above-diagonal entries in case of a symmetric matrix).

getSigma:

matrix as from p2P() for all cases of elliptical copulas.

extremePairs:

a data.frame consisting of three columns (row (index or name), col (index or name), value).

See Also

Examples

## display the definitions
p2P
P2p
extremePairs

param <- (2:7)/10
tC <- tCopula(param, dim = 4, dispstr = "un", df = 3)
## consistency of the three functions :
P <- p2P(param) # (using the default 'd')
stopifnot(identical(param, P2p(P)),
	  identical(P, getSigma(tC)))

## Toeplitz case:
(tCt <- tCopula((2:6)/10, dim = 6, disp = "toep"))
(rhoP <- tCt@getRho(tCt))
stopifnot(identical(getSigma (tCt),
		    toeplitz (c(1, rhoP))))

## "AR1" case:
nC.7 <- normalCopula(0.8, dim = 7, dispstr = "ar1")
(Sar1.7 <- getSigma(nC.7))
0.8^(0:(7-1)) #  1  0.8  0.64  0.512 ..
stopifnot(all.equal(Sar1.7, toeplitz(0.8^(0:(7-1)))))

copula

Multivariate Dependence with Copulas

v1.0-1
GPL (>= 3) | file LICENCE
Authors
Marius Hofert [aut] (<https://orcid.org/0000-0001-8009-4665>), Ivan Kojadinovic [aut] (<https://orcid.org/0000-0002-2903-1543>), Martin Maechler [aut, cre] (<https://orcid.org/0000-0002-8685-9910>), Jun Yan [aut] (<https://orcid.org/0000-0003-4401-7296>), Johanna G. Nešlehová [ctb] (evTestK(), <https://orcid.org/0000-0001-9634-4796>), Rebecca Morger [ctb] (fitCopula.ml(): code for free mixCopula weight parameters)
Initial release
2020-12-07

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.