DistributionFits {fBasics}R Documentation

Parameter Fit of a Distribution

Description

A collection and description of moment and maximum likelihood estimators to fit the parameters of a distribution. Included are estimators for the Student-t, for the stable, for the generalized hyperbolic hyperbolic, for the normal inverse Gaussian, and for empirical distributions.

The functions are:

tFit MLE parameter fit for a Student t-distribution,
stableFit MLE and Quantile Method stable parameter fit,
ghFit MLE parameter fit for a generalized hyperbolic distribution,
hypFit MLE parameter fit for a hyperbolic distribution,
nigFit MLE parameter fit for a normal inverse Gaussian distribution,
ssdFit smoothing spline estimation ,
print.ssd S3 print method for objects returned from 'ssdFit'.

Usage

tFit(x, df = 4, doplot = TRUE, span = "auto", title = NULL, 
        description = NULL, ...)
        
stableFit(x, alpha = 1.75, beta = 0, gamma = 1, delta = 0, 
        type = c("q", "mle"), doplot = TRUE, title = NULL, description = NULL)
        
ghFit(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1, doplot = TRUE, 
    span = "auto", title = NULL, description = NULL, ...)     
hypFit(x, alpha = 1, beta = 0, delta = 1, mu = 0, doplot = TRUE, 
    span = "auto", title = NULL, description = NULL, ...)
nigFit(x, alpha = 1, beta = 0, delta = 1, mu = 0, doplot = TRUE, 
    span = "auto", title = NULL, description = NULL, ...)
   
## S3 method for class 'fDISTFIT':
print(x, ...)
 
ssdFit(x, alpha = 1.4, seed = NULL, title = NULL, description = NULL)

## S3 method for class 'ssd':
print(x, ...)

Arguments

alpha, beta, gamma, delta, mu, lambda [ssdFit] -
alpha is the parameter defining cross-validation score for smoothing parameter selection.
[stable] -
The parameters are alpha, beta, gamma, and delta:
value of the index parameter alpha with alpha = (0,2]; skewness parameter beta, in the range [-1, 1]; scale parameter gamma; and shift parameter delta.
[hyp] -
The parameters are alpha, beta, delta, mu, and and lambda:
shape parameter alpha; skewness parameter beta, abs(beta) is in the range (0, alpha); scale parameter delta, delta must be zero or positive; location parameter mu, by default 0; and lambda parameter lambda, by default 1. These is the meaning of the parameters in the first parameterization pm=1 which is the default parameterization selection. In the second parameterization, pm=2 alpha and beta take the meaning of the shape parameters (usually named) zeta and rho. In the third parameterization, pm=3 alpha and beta take the meaning of the shape parameters (usually named) xi and chi. In the fourth parameterization, pm=4 alpha and beta take the meaning of the shape parameters (usually named) a.bar and b.bar.
description a character string which allows for a brief description.
df [tFit] -
the number of degrees of freedom for the Student distribution, df > 2, maybe non-integer. By default a value of 4 is assumed.
doplot [tFit][hypFit][nigFit] -
a logical. Should a plot be displayed?
seed [ssdFit] -
Seed to be used for the random generation of "knots."
span x-coordinates for the plot, by default 100 values automatically selected and ranging between the 0.001, and 0.999 quantiles. Alternatively, you can specify the range by an expression like span=seq(min, max, times = n), where, min and max are the left and right endpoints of the range, and n gives the number of the intermediate points.
title a character string which allows for a project title.
type a character string which allows to select the method for parameter estimation: "mle", the maximum log likelihood approach, or "qm", McCulloch's quantile method.
x [*Fit] -
a numeric vector.
[print.ssd] -
an S3 object of class "ssd" as returned from the function ssdFit.
... parameters parsed to the function density and to the print.ssd function.

Details

Maximum Likelihood Estimation:
The function nlm is used to minimize the "negative" maximum log-likelihood function. nlm carries out a minimization using a Newton-type algorithm.

Spline Smoothed Distribution:
Estimates are done using smoothing spline ANOVA models with cubic spline marginals for numerical variables.

Value

The functions tFit, hypFit and nigFit return a list with the following components:

estimate the point at which the maximum value of the log liklihood function is obtained.
minimum the value of the estimated maximum, i.e. the value of the log liklihood function.
code an integer indicating why the optimization process terminated.
1: relative gradient is close to zero, current iterate is probably solution;
2: successive iterates within tolerance, current iterate is probably solution;
3: last global step failed to locate a point lower than estimate. Either estimate is an approximate local minimum of the function or steptol is too small;
4: iteration limit exceeded;
5: maximum step size stepmax exceeded five consecutive times. Either the function is unbounded below, becomes asymptotic to a finite value from above in some direction or stepmax is too small.
gradient the gradient at the estimated maximum.
steps number of function calls.


The function ssdFit returns an S3 object of class "ssd" which contains as information the parameters to compute density, probability, quantiles, and random deviates for the functions [dpqr]ssd.

Note

The function ssdFit does not implement the full functionality provided by R's contributed package "gss". Only the "cubic" spline method is provided and most of the optional arguments are set to default values. Since the original "gss" package does not interfere with Rmetrics you can load it in parallel, and use the function ssden in place of ssdFit.

It's worth to note that the "gss" package does not work under SPlus, but the modified and adapted functions ssdFit and *ssd can be used.

Author(s)

Chong Gu for the code from R's contributed package 'gss',
Diethelm Wuertz for the Rmetrics R-port.

Examples

## SOURCE("fBasics.13D-DistributionFits")

## tFit -
   xmpBasics("\nStart: MLE Fit to Student's t Density > ")
   par(mfrow = c(2,2), cex = 0.7, err = -1)
   options(warn = -1)
   # Simulated random variates t(4):
   set.seed(1953)
   s = rt(n = 1000, df = 4) 
   # Note, this may take some time.
   # Starting vector:
   df.startvalue = 2*var(s)/(var(s)-1)
   tFit(s, df.startvalue, doplot = TRUE)
   
## ghFit -

## hypFit -
   xmpBasics("\nNext: MLE Fit to Hyperbolic Density > ")
   # Simulated random variates HYP(1, 0.3, 1, -1):
   set.seed(1953)
   s = rhyp(n = 1000, alpha = 1.5, beta = 0.3, delta = 0.5, mu = -1) 
   # Note, this may take some time.
   # Starting vector (1, 0, 1, mean(s)):
   hypFit(s, alpha = 1, beta = 0, delta = 1, mu = mean(s), 
     doplot = TRUE, width = 0.5)
   
## nigFit -
   xmpBasics("\nNext: MLE Fit to Normal Inverse Gaussian Density > ")
   # Simulated random variates HYP(1.5, 0.3, 0.5, -1.0):
   set.seed(1953)
   s = rnig(n = 1000, alpha = 1.5, beta = 0.3, delta = 0.5, mu = -1.0) 
   # Note, this may take some time.
   # Starting vector (1, 0, 1, mean(s)):
   nigFit(s, alpha = 1, beta = 0, delta = 1, mu = mean(s), doplot = TRUE)
   
## ssdFit -
   xmpBasics("\nNext: Smoothed Spline Density > ")
   set.seed(1953)
   x = rnorm(1000)
   ssdFit(x)

[Package fBasics version 221.10065 Index]