Learn R Programming

lfstat (version 0.9.12)

evfit: Fit an extreme value distribution to observations

Description

Fits an extreme value distribution using L-moments to the values provided. In the presence of zero flow observations a mixed distribution is fitted.

Usage

evfit(x, distribution, zeta = NULL, check = TRUE,
      extreme = c("minimum", "maximum"))

Value

An object of class 'evfit' containing the L-moments and the estimated parameters is returned. Objects of class 'evfit' are basically a list with the following elements:

values

the values x used for fitting.

freq.zeros

a character vector of length one. Frequency of zero flow observations.

is.censored

logical, if the censored time was used for fitting.

parameters

a list as long as distribution containing the estimated parameters for each distribution.

lmom

sample L-moments of the censored series (only containing non-zero values).

extreme

character vector of length one, indicating what kind of extreme value was fitted.

T_Years_Event

optional. If quantiles have been computed they a stored in a matrix with return periods in rows and distributions in columns.

Arguments

x

numeric vector. Data which is an extreme value distribution is fitted to.

distribution

A character vector of distributions to fit. Basically all distributions provided by Hosking's lmom-package and their reversed counterparts can be chosen. See reversing.

zeta

numeric vector of length one for manually setting a lower bound. Only a few distributions allow for a lower bound, namely 'gpa', 'ln3', 'wak' and 'wei'. The default value of NULL results in not bounding the distribution, therefore the parameter zeta is estimated.

check

logical, should check_distribution get called?

extreme

character vector of length one. Can be either 'minimum' or 'maximum'. Helps to choose a correct distribution.

Details

This function is vectorized over distribution.

According to paragraph 7.4.2 of the WNO manual, special care has to be taken in the presence of zero flow observations. A cdf called G(x) is fitted to the non-zero values of the original time series.

If a distribution is fitted which allows for finite lower bound (zeta), and zeta is estimated being negative, estimation is repeated constraining zeta = 0. If this behavior is not desired, the parameter zeta has to be set explicitly.

See Also

There are methods for printing summarizing objects of class 'evfit'.

evfit

Examples

Run this code
data("ngaruroro")
ng <- as.xts(ngaruroro)
minima <- as.vector(apply.yearly(ng$discharge, min, na.rm = TRUE))
evfit(x = minima, distribution = c("wei", "gevR"),
      extreme = "minimum")

Run the code above in your browser using DataLab