mccullochquantile: McCulloch's Quantile Estimator of the Parameters of an...

Description Usage Arguments Details Value Author(s) References Examples

Description

Estimates the parameters of an α-stable distribution using the quantile estimator of McCulloch (1986).

Usage

1

Arguments

x

A numeric vector of data. Missing values (NA) are allowed, but will be removed during the calculation.

symm

Logical, TRUE to assume a symmetric α-stable distribution. Default is FALSE.

Details

Estimates the parameters of an α-stable distribution using McCulloch's quantile-based estimator. This estimator is fast but not as accurate as other approaches (e.g., maximum likelihood). It is useful as a starting value in more accurate (but more computationally intensive) estimates.

Value

A vector of length 5 containing the parameter estimates (in this order):

alpha the index of stability
beta the skewness parameter
c the scale parameter
delta the location parameter
zeta the shifted location parameter (of Zolotarev)

Author(s)

Based on J. H. McCulloch's GAUSS implementation, which can be found on McCulloch's homepage: http://www.econ.ohio-state.edu/jhm/jhm.html .

S-PLUS/C code and R port by Christopher G. Green christopher.g.green@gmail.com.

References

J. Huston McCulloch, "Simple Consistent Estimators of Stable Distribution Parameters", Communications in Statistics, Simulation, 1986 (15:4), 1109-1136.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
  mccullochquantile( rnorm(1000), symm=TRUE )

  # test case from mcculloch's paper
  require(stabledist) # for rstable

  # test how well the estimate works for different sample sizes
  results <- sapply(c(10, 100, 1000, 10000), 
  	function(n) sapply(1:1000, 
  		function(i,n) abs(mccullochquantile(rstable(n,1.45,0),symm=TRUE)$alpha - 1.45), 
  			n=n))
  
  colMeans(results)
  apply(results, 2, sd)
  
  # an asymmetric case 
  results <- sapply(c(10, 100, 1000, 10000), 
  	function(n) sapply(1:1000, 
  		function(i,n) abs(mccullochquantile(rstable(n,1.45,0.2))$beta - 0.2), 
  			n=n))
  
  colMeans(results)
  apply(results, 2, sd)

christopherggreen/cggmisc documentation built on May 13, 2019, 7:04 p.m.