L-moments of the Asymmetric Triangular Distribution

Share:

Description

This function estimates the L-moments of the Asymmetric Triangular distribution given the parameters (ν, ω, and ψ) from partri. The first three L-moments in terms of the parameters are

λ_1 = \frac{(ν+ω+ψ)}{3}\mbox{,}

λ_2 = \frac{1}{15}\biggl[\frac{(ν-ω)^2}{(ψ-ν)^{\phantom{1}}} - (ν+ω) + 2ψ\biggr] \mbox{, and}

λ_3 = G + H_1 + H_2 + J \mbox{,}

where G is dependent on the integral definining the L-moments in terms of the quantile function (Asquith, 2011, p. 92) with limits of integration of [0,P], H_1 and H_2 are dependent on the integral defining the L-moment in terms of the quantile function with limits of integration of [P,1], and J is dependent on the λ_2 and λ_1. Finally, the variables G, H_1, H_2, and J are

G = \frac{2}{7}\frac{(ν+6ω)(ω-ν)^3}{(ψ-ν)^3}\mbox{,}

H_1 = \frac{12}{7}\frac{(ω-ψ)^4}{(ν-ψ)^3} - 2ψ\frac{(ν-ω)^3}{(ν-ψ)^3} + 2ψ\mbox{,}

H_2 = \frac{4}{5}\frac{(5ν-6ω+ψ)(ω-ψ)^2}{(ν-ψ)^2}\mbox{, and}

J = -\frac{1}{15}\biggl[\frac{3(ν-ω)^2}{(ψ-ν)} + 7(ν+ω) + 16ψ\biggl]\mbox{.}

The higher L-moments are even more ponderous and simpler expressions for the L-moment ratios appear elusive. Bounds for τ_3 and τ_4 are |τ_3| ≤ 0.14285710 and 0.04757138 < τ_4 < 0.09013605. An approximation for τ_4 is

τ_4 = 0.09012180 - 1.777361τ_3^2 - 17.89864τ_3^4 + 920.4924τ_3^6 - 37793.50τ_3^8 \mbox{,}

where the residual standard error is {<}1.750\times 10^{-5} and the absolute value of the maximum residual is <9.338\times 10^{-5}. The L-moments of the Symmetrical Triangular distribution for τ_3 = 0 are considered by Nagaraja (2013) and therein for a symmetric triangular distribution having λ_1 = 0.5 then λ_4 = 0.0105 and τ_4 = 0.09. These L-kurtosis values agree with results of this function that are based on the theoLmoms.max.ostat function. The 4th and 5th L-moments λ_4 and λ_5, respectively, are computed using expectations of order statistic maxima (expect.max.ostat) and are defined (Asquith, 2011, p. 95) as

λ_4 = 5\mathrm{E}[X_{4:4}] - 10\mathrm{E}[X_{3:3}] + 6\mathrm{E}[X_{2:2}] - \mathrm{E}[X_{1:1}]

and

λ_5 = 14\mathrm{E}[X_{5:5}] - 35\mathrm{E}[X_{4:4}] + 30\mathrm{E}[X_{3:3}] - 10\mathrm{E}[X_{2:2}] + \mathrm{E}[X_{1:1}]\mbox{.}

These expressions are solved using the expect.max.ostat function to compute the \mathrm{E}[X_{r:r}].

For the symmetrical case of ω = (ψ + ν)/2, then

λ_1 = \frac{(ν+ψ)}{2}\mbox{\ and}

λ_2 = \frac{7}{60}\biggl[ψ - ν\biggr]\mbox{,}

which might be useful for initial parameter estimation through

ψ = λ_1 + \frac{30}{7}λ_2 \mbox{\ and}

ν = λ_1 - \frac{30}{7}λ_2 \mbox{.}

Usage

1
lmomtri(para, paracheck=TRUE, nmom=c("3", "5"))

Arguments

para

The parameters of the distribution.

paracheck

A logical controlling whether the parameters and checked for validity. Overriding of this check might help in numerical optimization of parameters for modes near either the minimum or maximum. The argument here makes code base within partri a little shorter.

nmom

The L-moments greater the r > 3 require numerical integration using the expectations of the maxima order statistics of the fitted distribution. If this argument is set to "3" then executation of lmomtri is stopped at r = 3 and the first three L-moments returned, otherwise the 4th and 5th L-moments are computed.

Value

An R list is returned.

lambdas

Vector of the L-moments. First element is λ_1, second element is λ_2, and so on.

ratios

Vector of the L-moment ratios. Second element is τ, third element is τ_3 and so on.

trim

Level of symmetrical trimming used in the computation, which is 0.

leftrim

Level of left-tail trimming used in the computation, which is NULL.

rightrim

Level of right-tail trimming used in the computation, which is NULL.

E33err

A percent error between the expectation of the X_{3:3} order statistic by analytical expression versus a theoretical by numerical integration using the
expect.max.ostat function. This will be NA if nmom == "3".

source

An attribute identifying the computational source of the L-moments: “lmomtri”.

Note

The expression for τ_4 in terms of τ_3 is

1
2
3
4
5
6
7
  "tau4tri" <- function(t3) {
     t3[t3 < -0.14285710 | t3 >  0.14285710] <- NA
     b <- 0.09012180
     a <- c(0, -1.777361, 0, -17.89864, 0,  920.4924, 0, -37793.50)
     t4 <- b + a[2]*t3^2 + a[4]*t3^4 + a[6]*t3^6 + a[8]*t3^8
     return(t4)
  }

Author(s)

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.

Nagaraja, H.N., 2013, Moments of order statistics and L-moments for the symmetric triangular distribution: Statistics and Probability Letters, v. 83, no. 10, pp. 2357–2363.

See Also

partri, cdftri, pdftri, quatri

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
lmr <- lmoms(c(46, 70, 59, 36, 71, 48, 46, 63, 35, 52))
lmr
lmomtri(partri(lmr), nmom="5")

par <- vec2par(c(-405, -390, -102), type="tri")
lmomtri(par, nmom="5")$lambdas
# -299           39.4495050    5.5670228    1.9317914    0.8007511
theoLmoms.max.ostat(para=par, qua=quatri, nmom=5)$lambdas
# -299.0000126   39.4494885    5.5670486    1.9318732    0.8002989
# The -299 is the correct by exact solution as are 39.4495050 and 5.5670228, the 4th and
# 5th L-moments diverge from theoLmoms.max.ostat() because the exact solutions and not
# numerical integration of the quantile function was used for E11, E22, and E33.
# So although E44 and E55 come from expect.max.ostat() within both lmomtri() and
# theoLmoms.max.ostat(), the Lambda4 and Lambda5 are not the same because the E11, E22,
# and E33 values are different.

## Not run: 
# At extreme limit of Tau3 for the triangular distribution, L-moment ratio diagram
# shows convergence to the trajectory of the Generalized Pareto distribution.
"tau4tri" <- function(t3) { t3[t3 < -0.14285710 | t3 >  0.14285710] <- NA
   b <- 0.09012180; a <- c(0, -1.777361, 0, -17.89864, 0,  920.4924, 0, -37793.50)
   t4 <- b + a[2]*t3^2 + a[4]*t3^4 + a[6]*t3^6 + a[8]*t3^8; return(t4)
}
F <- seq(0,1, by=0.001)
lmr  <- vec2lmom(c(10,9,0.142857, tau4tri(0.142857)))
parA <- partri(lmr); parB <- pargpa(lmr)
xA <- qlmomco(F,  parA); xB <- qlmomco(F, parB); x <- sort(unique(c(xA,xB)))
plot(x,  pdftri(x,parA), type="l", col=8, lwd=4) # Compare Asym. Tri. to 
lines(x, pdfgpa(x,parB),           col=2)        # Gen. Pareto

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.