Skip to contents

This function calculates the (modified) profile likelihood based on the \(p^*\) formula. There are two small-sample corrections that use a proxy for \(\ell_{\lambda; \hat{\lambda}}\), which are based on Severini's (1999) empirical covariance and the Fraser and Reid tangent exponential model approximation.

Usage

gpd.pll(
  psi,
  param = c("scale", "shape", "quant", "VaR", "ES", "Nmean", "Nquant"),
  mod = "profile",
  mle = NULL,
  dat,
  m = NULL,
  N = NULL,
  p = NULL,
  q = NULL,
  correction = TRUE,
  threshold = NULL,
  plot = TRUE,
  ...
)

Arguments

psi

parameter vector over which to profile (unidimensional)

param

string indicating the parameter to profile over

mod

string indicating the model. See Details.

mle

maximum likelihood estimate in \((\psi, \xi)\) parametrization if \(\psi \neq \xi\) and \((\sigma, \xi)\) otherwise (optional).

dat

sample vector of excesses, unless threshold is provided (in which case user provides original data)

m

number of observations of interest for return levels. Required only for args values 'VaR' or 'ES'

N

size of block over which to take maxima. Required only for args Nmean and Nquant.

p

tail probability, equivalent to \(1/m\). Required only for args quant.

q

level of quantile for N-block maxima. Required only for args Nquant.

correction

logical indicating whether to use spline.corr to smooth the tem approximation.

threshold

numerical threshold above which to fit the generalized Pareto distribution

plot

logical; should the profile likelihood be displayed? Default to TRUE

...

additional arguments such as output from call to Vfun if mode='tem'.

Value

a list with components

  • mle: maximum likelihood estimate

  • psi.max: maximum profile likelihood estimate

  • param: string indicating the parameter to profile over

  • std.error: standard error of psi.max

  • psi: vector of parameter \(psi\) given in psi

  • pll: values of the profile log likelihood at psi

  • maxpll: value of maximum profile log likelihood

  • family: a string indicating "gpd"

  • threshold: value of the threshold, by default zero

In addition, if mod includes tem

  • normal:maximum likelihood estimate and standard error of the interest parameter \(psi\)

  • r:values of likelihood root corresponding to \(\psi\)

  • q:vector of likelihood modifications

  • rstar:modified likelihood root vector

  • rstar.old:uncorrected modified likelihood root vector

  • tem.psimax:maximum of the tangent exponential model likelihood

In addition, if mod includes modif

  • tem.mle: maximum of tangent exponential modified profile log likelihood

  • tem.profll: values of the modified profile log likelihood at psi

  • tem.maxpll: value of maximum modified profile log likelihood

  • empcov.mle: maximum of Severini's empirical covariance modified profile log likelihood

  • empcov.profll: values of the modified profile log likelihood at psi

  • empcov.maxpll: value of maximum modified profile log likelihood

Details

The three mod available are profile (the default), tem, the tangent exponential model (TEM) approximation and modif for the penalized profile likelihood based on \(p^*\) approximation proposed by Severini. For the latter, the penalization is based on the TEM or an empirical covariance adjustment term.

Examples

if (FALSE) {
dat <- rgp(n = 100, scale = 2, shape = 0.3)
gpd.pll(psi = seq(-0.5, 1, by=0.01), param = 'shape', dat = dat)
gpd.pll(psi = seq(0.1, 5, by=0.1), param = 'scale', dat = dat)
gpd.pll(psi = seq(20, 35, by=0.1), param = 'quant', dat = dat, p = 0.01)
gpd.pll(psi = seq(20, 80, by=0.1), param = 'ES', dat = dat, m = 100)
gpd.pll(psi = seq(15, 100, by=1), param = 'Nmean', N = 100, dat = dat)
gpd.pll(psi = seq(15, 90, by=1), param = 'Nquant', N = 100, dat = dat, q = 0.5)
}