uvlmoms: Bivariate Skewness after Joe (2014) or the Univariate... In wasquith/copBasic: General Bivariate Copula Theory and Many Utility Functions

Description

Joe (2014, pp. 65–66) suggests two quantile-based measures of bivariate skewness defined for uniform random variables U and V combined as either ψ_{u+v-1} = u + v - 1 or ψ_{u-v} = u - v for which the \mathrm{E}[u] = \mathrm{E}[v] = 0. The bivariate skewness is the quantity η:

η(p; ψ) = \frac{x(1-p) - 2x(\frac{1}{2}) + x(p)}{x(1-p) - x(p)} \mbox{,}

where 0 < p < \frac{1}{2}, x(F) is the quantile function for nonexceedance probability F for either the quantities X = ψ_{u+v-1} or X = ψ_{u-v} using either the empirical quantile function or a fitted distribution. Joe (2014, p. 66) reports that p = 0.05 to “achieve some sensitivity to the tails.” How these might be related (intuitively) to L-coskew (see function lcomoms2() of the lmomco package) of the L-comoments or bivariate L-moments (bilmoms) is unknown, but see the Examples section of joeskewCOP.

Structurally the above definition for η based on quantiles is oft shown in comparative literature concerning L-moments. But why stop there? Why not compute the L-moments themselves to arbitrary order for η by either definition (the uvlmoms variation)? Why not fit a distribution to the computed L-moments for estimation of x(F)? Or simply compute “skewness” according to the definition above (the uvskew variation).

Usage

 1 2 3 uvlmoms(u,v=NULL, umv=TRUE, p=NA, type="gno", getlmoms=TRUE, ...) uvskew( u,v=NULL, umv=TRUE, p=0.05, type=6, getlmoms=FALSE, ...) 

Arguments

 u Nonexceedance probability u in the X direction; v Nonexceedance probability v in the Y direction and if NULL then u is treated as a two column R data.frame; umv A logical controlling the computation of ψ: ψ = u - v (umv = TRUE) or ψ = u + v - 1 (umv = FALSE). The "m" is to read “minus”; p A suggested p value is p = 0.05. If is.na(NA), then getlmoms is set to TRUE (see below); type The type argument is mutable, and is a syntax match to the canoncial use in package lmomco. Variation from that package however is permitted. Either type is an integer between 1 and 9 selecting one of the nine quantile algorithms described for the quantile function in R. The default 6 uses the Weibull plotting positions and differs from R's default of 7. Otherwise type must be a valid distribution abbreviation for the lmomco package as in the abbreviation list dist.list function of that package. The gno shown as a default for the generalized normal distribution (see distribution type "gno" in package lmomco); getlmoms A logical triggering whether the L-moments of either ψ_{u+v-1} or ψ_{u - v} are returned instead computing the above definition of “skewness;” and ... Additional arguments to pass to the lmomco function lmoms, such as the number of L-moments nmoms.

Value

An R list of the univariate L-moments of η is returned (see documentation for lmoms in the lmomco package). Or the skewness of η can be either (1) based on the empirical distribution based on plotting positions by the quantile function in R using the type as described, or (2) based on the fitted quantile function for the parameters of a distribution for the lmomco package.

W.H. Asquith

References

Asquith, W.H., 2011, Distributional analysis with L-moment statistics using the R environment for statistical computing: Createspace Independent Publishing Platform, ISBN 978–146350841–8.

Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.

COP
  1 2 3 4 5 6 7 8 9 10 11 12 13 ## Not run: set.seed(234) UV <- simCOP(n=100, cop=GHcop, para=1.5, graphics=FALSE) lmr <- uvlmoms(UV); print(lmr) # L-kurtosis = 0.16568268 uvskew(UV, p=0.10) # -0.1271723 uvskew(UV, p=0.10, type="gno") # -0.1467011 ## End(Not run) ## Not run: pss <- seq(0.01,0.49, by=0.01) ETA <- sapply(1:length(pss), function(i) uvskew(UV, p=pss[i], type=5, uvm1=FALSE) ) plot(pss, ETA, type="l", xlab="P FACTOR", ylab="BIVARIATE SKEWNESS") # ## End(Not run)