# GpdModelling: GPD Distributions for Extreme Value Theory In fExtremes: Rmetrics - Modelling Extreme Events in Finance

## Description

A collection and description to functions to fit and to simulate processes that are generated from the generalized Pareto distribution. Two approaches for parameter estimation are provided: Maximum likelihood estimation and the probability weighted moment method.

The GPD modelling functions are:

 `gpdSim` generates data from the GPD, `gpdFit` fits empirical or simulated data to the distribution, `print` print method for a fitted GPD object of class ..., `plot` plot method for a fitted GPD object, `summary` summary method for a fitted GPD object.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```gpdSim(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000, seed = NULL) gpdFit(x, u = quantile(x, 0.95), type = c("mle", "pwm"), information = c("observed", "expected"), title = NULL, description = NULL, ...) ## S4 method for signature 'fGPDFIT' show(object) ## S3 method for class 'fGPDFIT' plot(x, which = "ask", ...) ## S3 method for class 'fGPDFIT' summary(object, doplot = TRUE, which = "all", ...) ```

## Arguments

 `description` a character string which allows for a brief description. `doplot` a logical. Should the results be plotted? `information` whether standard errors should be calculated with `"observed"` or `"expected"` information. This only applies to the maximum likelihood method; for the probability-weighted moments method `"expected"` information is used if possible. `model` [gpdSim] - a list with components `shape`, `location` and `scale` giving the parameters of the GPD distribution. By default the shape parameter has the value 0.25, the location is zero and the scale is one. `n` [rgpd][gpdSim\ - the number of observations to be generated. `object` [summary] - a fitted object of class `"gpdFit"`. `seed` [gpdSim] - an integer value to set the seed for the random number generator. `title` a character string which allows for a project title. `type` a character string selecting the desired estimation mehtod, either `"mle"` for the maximum likelihood mehtod or `"pwm"` for the probability weighted moment method. By default, the first will be selected. Note, the function `gpd` uses `"ml"`. `u` the threshold value. `which` if `which` is set to `"ask"` the function will interactively ask which plot should be displayed. By default this value is set to `FALSE` and then those plots will be displayed for which the elements in the logical vector `which` ar set to `TRUE`; by default all four elements are set to `"all"`. `x` [dgpd] - a numeric vector of quantiles. [gpdFit] - the data vector. Note, there are two different names for the first argument `x` and `data` depending which function name is used, either `gpdFit` or the EVIS synonyme `gpd`. [print][plot] - a fitted object of class `"gpdFit"`. `xi, mu, beta` `xi` is the shape parameter, `mu` the location parameter, and `beta` is the scale parameter. `...` control parameters and plot parameters optionally passed to the optimization and/or plot function. Parameters for the optimization function are passed to components of the `control` argument of `optim`.

## Details

Generalized Pareto Distribution:

Compute density, distribution function, quantile function and generates random variates for the Generalized Pareto Distribution.

Simulation:

`gpdSim` simulates data from a Generalized Pareto distribution.

Parameter Estimation:

`gpdFit` fits the model parameters either by the probability weighted moment method or the maxim log likelihood method. The function returns an object of class `"gpd"` representing the fit of a generalized Pareto model to excesses over a high threshold. The fitting functions use the probability weighted moment method, if method `method="pwm"` was selected, and the the general purpose optimization function `optim` when the maximum likelihood estimation, `method="mle"` or `method="ml"` is chosen.

Methods:

`print.gpd`, `plot.gpd` and `summary.gpd` are print, plot, and summary methods for a fitted object of class `gpdFit`. The plot method provides four different plots for assessing fitted GPD model.

gpd* Functions:

`gpdqPlot` calculates quantile estimates and confidence intervals for high quantiles above the threshold in a GPD analysis, and adds a graphical representation to an existing plot. The GPD approximation in the tail is used to estimate quantile. The `"wald"` method uses the observed Fisher information matrix to calculate confidence interval. The `"likelihood"` method reparametrizes the likelihood in terms of the unknown quantile and uses profile likelihood arguments to construct a confidence interval.

`gpdquantPlot` creates a plot showing how the estimate of a high quantile in the tail of a dataset based on the GPD approximation varies with threshold or number of extremes. For every model `gpdFit` is called. Evaluation may be slow. Confidence intervals by the Wald method may be fastest.

`gpdriskmeasures` makes a rapid calculation of point estimates of prescribed quantiles and expected shortfalls using the output of the function `gpdFit`. This function simply calculates point estimates and (at present) makes no attempt to calculate confidence intervals for the risk measures. If confidence levels are required use `gpdqPlot` and `gpdsfallPlot` which interact with graphs of the tail of a loss distribution and are much slower.

`gpdsfallPlot` calculates expected shortfall estimates, in other words tail conditional expectation and confidence intervals for high quantiles above the threshold in a GPD analysis. A graphical representation to an existing plot is added. Expected shortfall is the expected size of the loss, given that a particular quantile of the loss distribution is exceeded. The GPD approximation in the tail is used to estimate expected shortfall. The likelihood is reparametrised in terms of the unknown expected shortfall and profile likelihood arguments are used to construct a confidence interval.

`gpdshapePlot` creates a plot showing how the estimate of shape varies with threshold or number of extremes. For every model `gpdFit` is called. Evaluation may be slow.

`gpdtailPlot` produces a plot of the tail of the underlying distribution of the data.

## Value

`gpdSim`
returns a vector of datapoints from the simulated series.

`gpdFit`
returns an object of class `"gpd"` describing the fit including parameter estimates and standard errors.

`gpdQuantPlot`
returns invisible a table of results.

`gpdShapePlot`
returns invisible a table of results.

`gpdTailPlot`
returns invisible a list object containing details of the plot is returned invisibly. This object should be used as the first argument of `gpdqPlot` or `gpdsfallPlot` to add quantile estimates or expected shortfall estimates to the plot.

## Author(s)

Alec Stephenson for the functions from R's `evd` package,
Alec Stephenson for the functions from R's `evir` package,
Alexander McNeil for the EVIS functions underlying the `evir` package,
Diethelm Wuertz for this R-port.

## References

Embrechts, P., Klueppelberg, C., Mikosch, T. (1997); Modelling Extremal Events, Springer.

Hosking J.R.M., Wallis J.R., (1987); Parameter and quantile estimation for the generalized Pareto distribution, Technometrics 29, 339–349.

## Examples

 ```1 2 3 4 5 6 7``` ```## gpdSim - x = gpdSim(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000) ## gpdFit - par(mfrow = c(2, 2), cex = 0.7) fit = gpdFit(x, u = min(x), type = "pwm") print(fit) summary(fit) ```

### Example output

```Loading required package: timeDate

Rmetrics Package fBasics
Analysing Markets and calculating Basic Statistics
Copyright (C) 2005-2014 Rmetrics Association Zurich
Educational Software for Financial Engineering and Computational Science
Rmetrics is free software and comes with ABSOLUTELY NO WARRANTY.
https://www.rmetrics.org --- Mail to: info@rmetrics.org

Title:
GPD Parameter Estimation

Call:
gpdFit(x = x, u = min(x), type = "pwm")

Estimation Method:
gpd pwm

Estimated Parameters:
xi      beta
0.2340748 0.9878098

Description
Fri Jul 21 15:35:16 2017 by user: anon

Title:
GPD Parameter Estimation

Call:
gpdFit(x = x, u = min(x), type = "pwm")

Estimation Type:
gpd pwm

Estimated Parameters:
xi      beta
0.2340748 0.9878098

Description
Fri Jul 21 15:35:16 2017 by user: anon
```

fExtremes documentation built on Nov. 17, 2017, 2:21 p.m.