are.lmom.valid: Are the L-moments valid

are.lmom.validR Documentation

Are the L-moments valid

Description

The L-moments have particular constraints on magnitudes and relation to each other. This function evaluates and L-moment object whether the bounds for \lambda_2 > 0 (L-scale), |\tau_3| < 1 (L-skew), \tau_4 < 1 (L-kurtosis), and |\tau_5| < 1 are satisfied. An optional check on \tau_4 \ge (5\tau_3^2 - 1)/4 is made. Also for further protection, the finitenesses of the mean (\lambda_1) and \lambda_2 are also checked. These checks provide protection against say L-moments being computed on the logarithms of some data but the data themselves have values less than or equal to zero.

The TL-moments as implemented by the TL functions (TLmoms) are not applicable to the boundaries (well finiteness of course). The are.lmom.valid function should not be consulted on the TL-moments.

Usage

are.lmom.valid(lmom, checkt3t4=TRUE)

Arguments

lmom

An L-moment object created by lmoms, lmom.ub, pwm2lmom; and

checkt3t4

A logical triggering the above test on L-skew to L-kurtosis. This bounds in very small samples can be violated—usually the user will want this set and until (first release in 2017, v2.2.6) this bounds check was standard in lmomco for over a decade.

Value

TRUE

L-moments are valid.

FALSE

L-moments are not valid.

Author(s)

W.H. Asquith

References

Hosking, J.R.M., 1990, L-moments—Analysis and estimation of distributions using linear combinations of order statistics: Journal of the Royal Statistical Society, Series B, v. 52, pp. 105–124.

Hosking, J.R.M. and Wallis, J.R., 1997, Regional frequency analysis—An approach based on L-moments: Cambridge University Press.

See Also

lmom.ub, lmoms, pwm2lmom

Examples

lmr <- lmoms(rnorm(20))
if(are.lmom.valid(lmr)) print("They are.")
## Not run: 
X <- c(1.7106278,  1.7598761,  1.2111335,  0.3447490,  1.8312889,
       1.3938445, -0.5376054, -0.2341009, -0.4333601, -0.2545229)
are.lmom.valid(lmoms(X))
are.lmom.valid(pwm2lmom(pwm.pp(X, a=0.5)))

# Prior to version 2.2.6, the next line could leak through as TRUE. This was a problem.
# Nonfiniteness of the mean or L-scale should have been checked; they are for v2.2.6+
are.lmom.valid(lmoms(log10(c(1,23,235,652,0)), nmom=1)) # of other nmom

## End(Not run)

wasquith/lmomco documentation built on April 20, 2024, 7:20 p.m.