| NORMcop | R Documentation |
The Normal copula (Gaussian copula) (Salvadori et al., 2007, pp. 255–256) is
\mathbf{C}_{\Theta}(u,v) = \mathbf{NORM}(u,v; \Theta) =
\int_{-\infty}^{\Phi^{(-1)}(u)}\!\!\!\!\int_{-\infty}^{\Phi^{(-1)}(v)}\!\!\!\!\!\!\!\!
\frac{1}{2\pi\sqrt{1-\Theta^2}}
\mathrm{exp}\biggl(-\frac{s^2 - 2\Theta s t + t^2}{ 2(1-\Theta^2) } \biggr)\,\mathrm{d}s\,\mathrm{d}t\mbox{,}
where \Theta \in [-1,1] and \Phi^{(-1)}(x) is the quantile function of the univariate normal distribution. The copula, as \Theta \rightarrow -1^{+}, limits to the countermonotonicity copula (\mathbf{W}(u,v); W), as \Theta \rightarrow 0 limits, to the independence coupla (\mathbf{P}(u,v); P), and as \Theta \rightarrow 1^{-}, limits to the comonotonicity copula (\mathbf{M}(u,v); M). The copula has lower-tail and upper-tail dependency parameters equal to zero, but such is not true for the closely related t-Student copula (Tcop). The Spearman Rho (rhoCOP) is \rho_\mathbf{C} = (6/\pi)\cdot\mathrm{asin}(\Theta/2) and Kendall Tau (tauCOP) is \tau_\mathbf{C} = (2/\pi)\cdot\mathrm{asin}(\Theta). The parameter \Theta is readily computed by \Theta = 2\cdot\mathrm{sin}(\pi\cdot\rho_\mathbf{C}/6) or by \Theta = \mathrm{sin}(\pi\cdot\tau_\mathbf{C}/2).
NORMcop(u, v, para=NULL, rho=NULL, tau=NULL, fit=c("rho", "tau"), ...)
u |
Nonexceedance probability |
v |
Nonexceedance probability |
para |
A vector (single element) of parameters—the |
rho |
Optional Spearman Rho from which the parameter will be estimated and presence of |
tau |
Optional Kendall Tau from which the parameter will be estimated; |
fit |
If |
... |
Additional arguments to pass. |
Value(s) for the copula are returned. Otherwise if either rho or tau is given, then the \Theta is computed and a list having
para |
The parameter |
rho |
Spearman Rho if the |
tau |
Kendall Tau if the |
and if para=NULL and rho and tau=NULL, then the values within u and v are used to compute Spearman Rho (fit="rho") or Kendall Tau (fit="tau") and then compute the parameter, and this is returned in the aforementioned list.
A mimic of the wrappers on mvtnorm::pmvnorm() from the copula package (v1.1-6) are made within NORMcop. The rest of the implementation is unique to copBasic. An implementation of a function in the copBasic style that would natively interconnect to copula package version of the copula could be as follows:
"NORMcop" <- # pCoupla() from package copula is analogous to COP()
function(u,v, para=NULL, ...) {
if(length(u) == 1) u <- rep(u, length(v)) # see asCOP() for reasoning of
if(length(v) == 1) v <- rep(v, length(u)) # this "vectorization" hack
para <- copula::normalCopula( c(para), dim=2)
return( copula::pCopula(matrix(c(u,v), ncol=2), para) )
}
W.H. Asquith
Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in Nature—An approach using copulas: Springer, 289 p.
Tcop
## Not run:
para <- NORMcop(para=NULL, rho=0.9, taildep=0.3) # 0.907981
UV <- simCOP(1000, cop=NORMcop, para=para$para) # compare to similar Tcop example
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.