| matrix_tools | R Documentation |
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 \times d symmetric
matrix \Sigma 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.
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)
param |
a parameter vector. |
d |
dimension of the resulting |
P |
a |
copula |
an elliptical copula, i.e., an object (extending)
class |
x |
a symmetric |
n |
the number of pairs with smallest (or largest) values to be displayed. |
method |
a |
use.names |
A |
These auxiliary functions are often used when working with elliptical copulas.
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).
ellipCopula, tCopula, normalCopula.
## display the two simple definitions:
p2P
P2p
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)))))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.