rmseCOP {copBasic} | R Documentation |
Root Mean Square Error between a Fitted Copula and an Empirical Copula
Description
Compute the root mean square error (Chen and Guo, 2019, p. 29), which is computed using mean square error
as
where is the empirical copula (empirical joint probability) for the
th observation,
is the fitted copula having
parameters in
. The
comes from
EMPIRcop
. The is in effect saying that the best copula will have its joint probabilities plotting on a 1:1 line with the empirical joint probabilities, which is an
. From the
shown above, the Akaike information criterion (AIC)
aicCOP
and Bayesian information criterion (BIC) bicCOP
can be computed, which add a penalty for parameters. These goodness-of-fits can assist in deciding one copula favorability over another, and another goodness-of-fit using the absolute differences between
and
is found under
statTn
.
Usage
rmseCOP(u, v=NULL, cop=NULL, para=NULL, ...)
Arguments
u |
Nonexceedance probability |
v |
Nonexceedance probability |
cop |
A copula function; |
para |
Vector of parameters or other data structure, if needed, to pass to the copula; and |
... |
Additional arguments to pass to either copula (likely most commonly to the empirical copula). |
Value
The value for is returned.
Author(s)
W.H. Asquith
References
Chen, Lu, and Guo, Shenglian, 2019, Copulas and its application in hydrology and water resources: Springer Nature, Singapore, ISBN 978–981–13–0574–0.
See Also
Examples
## Not run:
S <- simCOP(80, cop=GHcop, para=5) # Simulate some probabilities, but we
# must then treat these as data and recompute empirical probabilities.
U <- lmomco::pp(S$U, sort=FALSE); V <- lmomco::pp(S$V, sort=FALSE)
# The parent distribution is Gumbel-Hougaard extreme value copula.
# But in practical application we do not know that but say we speculate that
# perhaps the Galambos extreme value might be the parent. Then maximum
# likelihood is used to fit the single parameter.
pGL <- mleCOP(U,V, cop=GLcop, interval=c(0,20))$par
rmses <- c(rmseCOP(U,V, cop=GLcop, para=pGL),
rmseCOP(U,V, cop=P),
rmseCOP(U,V, cop=PSP))
names(rmses) <- c("GLcop", "P", "PSP")
print(rmses) # We will see that the first RMSE is the smallest as the
# Galambos has the nearest overall behavior than the P and PSP copulas.
## End(Not run)