Learn R Programming

GLmom (version 1.3.1)

glme.like: Calculate the likelihood for Generalized L-moments estimation of GEV distribution

Description

This function calculates the likelihood (or more precisely, a penalized negative log-likelihood) for the Generalized L-moments estimation of the Generalized Extreme Value (GEV) distribution.

Usage

glme.like(
  par = par,
  xdat = xdat,
  slmgev = slmgev,
  covinv = covinv,
  lcovdet = lcovdet,
  mu = mu,
  std = std,
  lme = lme,
  pen = pen,
  p = p,
  c1 = c1,
  c2 = c2
)

Value

A numeric value representing the penalized negative log-likelihood. A lower value indicates a better fit.

Arguments

par

A vector of GEV parameters (location, scale, shape).

xdat

A numeric vector of data.

slmgev

Sample L-moments of the data.

covinv

Inverse of the covariance matrix of the sample L-moments.

lcovdet

Log determinant of the covariance matrix.

mu

Mean for the normal penalization (used when pen='norm').

std

Standard deviation for the normal penalization (used when pen='norm').

lme

L-moment estimates of the parameters.

pen

Penalization method: 'norm', 'beta', 'ms', 'park', 'cannon', 'cd', or 'no'.

p

Shape parameter for beta penalty.

c1

Scaling parameter for beta penalty.

c2

Upper limit parameter for beta penalty.

Author

Yonggwan Shin, Seokkap Ko, Jihong Park, Yire Shin, Jeong-Soo Park

Details

The function performs the following steps: 1. Checks if the parameters are within valid ranges. 2. Calculates the expected L-moments based on the current parameters. 3. Computes the difference between expected and sample L-moments. 4. Calculates the generalized L-moments distance. 5. Applies a penalization term based on the specified method. 6. Returns the sum of the L-moments distance and the penalization term.

References

Shin, Y., Shin, Y., Park, J. & Park, J.-S. (2025). Generalized method of L-moment estimation for stationary and nonstationary extreme value models. arXiv preprint arXiv:2512.20385. tools:::Rd_expr_doi("10.48550/arXiv.2512.20385")

See Also

glme.gev which calls this function for optimization.

Examples

Run this code
data(streamflow)
x <- streamflow$r1
slm <- lmomco::lmoms(x, nmom = 3)
cov_mat <- lmomco::lmoms.cov(x, nmom = 3)
lme_par <- lmomco::pargev(slm)$para
glme.like(par = lme_par, xdat = x, slmgev = slm,
          covinv = solve(cov_mat), lcovdet = log(det(cov_mat)),
          mu = -0.5, std = 0.2, lme = lme_par, pen = "beta",
          p = 6, c1 = 10, c2 = 5)

Run the code above in your browser using DataLab