matrix_tools {copula} | R Documentation |
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 symmetric
matrix
which is called “Rho” as well, written
(capital Greek
!) as
(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 |
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 |
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 ofparam
filled column-wise below the diagonal (which corresponds to row-wise filling above the diagonal).P2p
:vector
of column-wise below-diagonal entries ofP
(equal to the row-wise above-diagonal entries in case of a symmetric matrix).getSigma
:matrix
as fromp2P()
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
ellipCopula
, tCopula
, normalCopula
.
Examples
## 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)))))