Learn R Programming

goft (version 1.3.1)

gp.test: Bootstrap test for the generalized Pareto distribution

Description

Test of fit for the generalized Pareto distribution (gPd) with unknown parameters by Villasenor-Alva and Gonzalez-Estrada (2009).

Usage

gp.test(x, B = 999)

Arguments

x
numeric data vector containing a random sample of positive real numbers.
B
number of bootstrap samples used to approximate p-values. Default is B=999.

Value

A list with class "htest" containing the following components.
p.value
an approximated p-value of the test using parametric bootstrap.
method
the character string "Bootstrap test of fit for the generalized Pareto distribution".
data.name
a character string giving the name of the data set.
pvalues
approximated p-values of the tests for $H_0^-$ and $H_0^+$

Details

This bootstrap test for the null hypothesis $H_0:$ a random sample has a gPd with unknown shape parameter $gamma$ is an intersection-union test for the hypotheses $H_0^-:$ a random sample has a gPd with $gamma <0 $,="" and="" $h_0^+:$="" a="" random="" sample="" has="" gpd="" with="" $gamma="">=0$. Thus, heavy and non-heavy tailed gPd's are included in the null hypothesis. The parametric bootstrap is performed on $gamma$ for each of the two hypotheses.

The gPd function with unknown shape and scale parameters $gamma$ and $sigma$ is given by

$$F(x) = 1 - \left[ 1 + \frac{\gamma x}{ \sigma } \right] ^ { - 1 /\gamma},$$

where $gamma$ is a real number, $sigma > 0$ and $1 + gamma x / sigma > 0$. When $gamma = 0$, F(x) becomes the exponential distribution with scale parameter $sigma$: $$F(x) = 1 -exp\left(-x/\sigma \right).$$

References

Villasenor-Alva, J.A. and Gonzalez-Estrada, E. (2009). A bootstrap goodness of fit test for the generalized Pareto distribution. Computational Statistics and Data Analysis,53,11,3835-3841. http://dx.doi.org/10.1016/j.csda.2009.04.001

See Also

gp.fit for fitting a gPd to data.

Examples

Run this code
# Testing the gPd hypothesis on the excesses above the threshold 0.165 ppm of the ozone
# levels given in the o3 data set
data(o3)
o3levels <- o3$ozone_level - 0.165  # ozone levels minus the threshold 0.165 ppm     
gp.test(o3levels, B = 9999)   # testing the gPd hypothesis using 9999 bootstrap samples            

Run the code above in your browser using DataLab