copBasic (version 2.1.5)

rmseCOP: The Root Mean Square Error between a Fitted Copula and an Empirical Copula

Description

Compute the root mean square error \(\mathrm{RMSE}_\mathbf{C}\) (Chen and Guo, 2019, p. 29), which is computed using mean square error \(\mathrm{MSE}\) as

$$\mathrm{MSE}_\mathbf{C} = \frac{1}{n}\sum_{i=1}^n \bigl(\mathbf{C}_n(u_i,v_i) - \mathbf{C}_{\Theta_m}(u_i, v_i)\bigr)^2\mbox{ and}$$ $$\mathrm{RMSE}_\mathbf{C} = \sqrt{\mathrm{MSE}_\mathbf{C}}\mbox{,}$$

where \(\mathbf{C}_n(u_i,v_i)\) is the empirical copula (empirical joint probability) for the \(i\)th observation, \(\mathbf{C}_{\Theta_m}(u_i, v_i)\) is the fitted copula having \(m\) parameters in \(\Theta\). The \(\mathbf{C}_n(u_i,v_i)\) comes from EMPIRcop. The \(\mathrm{RMSE}_\mathbf{C}\) 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 \(\mathrm{RMSE}_\mathbf{C}=0\). From the \(\mathrm{MSE}_\mathbf{C}\) shown above, the Akaike information criterion (AIC) aicCOP and Bayesian information criterion (BIC) bicCOP can be computed, which add a penalty for \(m\) parameters. These goodness-of-fits can assist in deciding one copula favorability over another, and another goodness-of-fit using the absolute differences between \(\mathbf{C}_n(u,v)\) and \(\mathbf{C}_{\Theta_m}(u, v)\) is found under statTn.

Usage

rmseCOP(u,v, cop=NULL, para=NULL, ...)

Arguments

u

Nonexceedance probability \(u\) in the \(X\) direction;

v

Nonexceedance probability \(v\) in the \(Y\) direction;

cop

A copula function;

para

Vector of parameters or other data structure, if needed, to pass to the copula;

...

Additional arguments to pass to either copula (likely most commonly to the empirical copula).

Value

The value for \(\mathrm{RMSE}_\mathbf{C}\) is returned.

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

EMPIRcop, aicCOP, bicCOP

Examples

Run this code
# 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.
# }

Run the code above in your browser using DataLab