R: Stable Distribution

dstable {stable} | R Documentation

## Stable Distribution

### Description

These functions provide information about the stable distribution with the location, the dispersion, the skewness and the tail thickness respectively modelled by the parameters `loc`, `disp`, `skew` and `tail`.

### Usage

    dstable(x, loc = 0, disp = 1/sqrt(2), skew = 0, tail = 2,
      npt = 501, up = 10, eps = 1e-06, integration = "Romberg")

    pstable(q, loc = 0, disp = 1/sqrt(2), skew = 0, tail = 2,
      eps = 1e-06)

    qstable(p, loc = 0, disp = 1/sqrt(2), skew = 0, tail = 2,
      eps = 1e-06)

    rstable(n = 1, loc = 0, disp = 1/sqrt(2), skew = 0, tail = 2,
      eps = 1e-06)

    hstable(x, loc = 0, disp = 1/sqrt(2), skew = 0, tail = 2,
      eps = 1e-06)

### Arguments

`x, q` | vector of quantiles.
`loc` | vector of (real) location parameters.
`disp` | vector of (positive) dispersion parameters.
`skew` | vector of skewness parameters (in [-1,1]).
`tail` | vector of parameters (in [0,2]) related to the tail thickness.
`npt, up, integration` | As detailed herein – only available when using `dstable`.
`eps` | scalar giving the required precision in computation.
`p` | vector of probabilites.
`n` | number of observations.

### Details

`dstable`, `pstable`, `qstable` and `hstable` compute the density, the distribution, the quantile and the hazard functions of a stable variate. `rstable` generates random deviates with the prescribed stable distribution.

`loc` is a location parameter in the same way as the mean in the normal distribution: it can take any real value.

`disp` is a dispersion parameter in the same way as the standard deviation in the normal distribution: it can take any positive value.

`skew` is a skewness parameter: it can take any value in (-1,1). The distribution is right-skewed, symmetric and left-skewed when `skew` is negative, null or positive respectively.

`tail` is a tail parameter (often named the characteristic exponent): it can take any value in (0,2) (with `tail=1` and `tail=2` yielding the Cauchy and the normal distributions respectively when symmetry holds).

If `loc`, `disp`, `skew`, or `tail` are not specified they assume the default values of 0, 1/sqrt(2), 0 and 2 respectively. This corresponds to a normal variate with mean=0 and variance=1/2 disp^2.

The stable characteristic function is given by

phi(t) = i loc t - disp |t|^tail [1+i skew sign(t) omega(t,tail)]

where

omega(t,tail) = (2/pi) log|t|

when `tail=1`, and

omega(t,tail) = tan(pi alpha / 2)

otherwise.

The characteristic function is inverted using Fourier's transform to obtain the corresponding stable density. This inversion requires the numerical evaluation of an integral from 0 to infinity. Two algorithms are proposed for this. The default is Romberg's method (`integration`="Romberg") which is used to evaluate the integral with an error bounded by `eps`. The alternative method is Simpson's integration (`integration`="Simpson"): it approximates the integral from 0 to infinity by an integral from 0 to `up` with `npt` points subdividing (O, up). These three extra arguments – `integration`, `up` and `npt` – are only available when using `dstable`. The other functions are all based on Romberg's algorithm.

### Functions

- `dstable`: density

- `pstable`: cdf

- `qstable`: quantiles

- `rstable`: random deviates

- `hstable`: hazard

### Author(s)

Philippe Lambert (Catholic University of Louvain, Belgium, phlambert@stat.ucl.ac.be)

Jim Lindsey

### References

Lambert, P. and Lindsey, J.K. (1999) Analysing financial returns using regression models based on non-symmetric stable distributions. Applied Statistics, 48, 409-424.

### See Also

`stablereg` to fit generalized nonlinear regression models for the stable distribution parameters.

### Examples

    par(mfrow=c(2,2))
    x <- seq(-5,5,by=0.1)

    # Influence of loc (location)
    plot(x,dstable(x,loc=-2,disp=1/sqrt(2),skew=-0.8,tail=1.5),
      type="l",ylab="",main="Varying LOCation")
    lines(x,dstable(x,loc=0,disp=1/sqrt(2),skew=-0.8,tail=1.5))
    lines(x,dstable(x,loc=2,disp=1/sqrt(2),skew=-0.8,tail=1.5))

    # Influence of disp (dispersion)
    plot(x,dstable(x,loc=0,disp=0.5,skew=0,tail=1.5),
      type="l",ylab="",main="Varying DISPersion")
    lines(x,dstable(x,loc=0,disp=1/sqrt(2),skew=0,tail=1.5))
    lines(x,dstable(x,loc=0,disp=0.9,skew=0,tail=1.5))

    # Influence of skew (skewness)
    plot(x,dstable(x,loc=0,disp=1/sqrt(2),skew=-0.8,tail=1.5),
      type="l",ylab="",main="Varying SKEWness")
    lines(x,dstable(x,loc=0,disp=1/sqrt(2),skew=0,tail=1.5))
    lines(x,dstable(x,loc=0,disp=1/sqrt(2),skew=0.8,tail=1.5))

    # Influence of tail (tail)
    plot(x,dstable(x,loc=0,disp=1/sqrt(2),skew=0,tail=0.8),
      type="l",ylab="",main="Varying TAIL thickness")
    lines(x,dstable(x,loc=0,disp=1/sqrt(2),skew=0,tail=1.5))
    lines(x,dstable(x,loc=0,disp=1/sqrt(2),skew=0,tail=2))

    stabledist::dstable(x=1, 1, 0)

[Package stable version 1.1.4 Index]