Learn R Programming

fBasics (version 240.10067)

DistributionFits: 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: ll{ 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. }

Usage

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

Arguments

alpha, beta, gamma, delta, mu, lambda
[stable] - The parameters are alpha, beta, gamma, and delta: value of the index parameter alpha with alpha = (0,2]; skewness parameter beta, in th
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 flag. Should a plot be displayed?
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 =
title
a character string which allows for a project title.
trace
[*Fit] - a logical flag. Should the parameter estimation process be traced?
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.
...
parameters to be parsed.

Value

  • The functions tFit, hypFit and nigFit return a list with the following components:
  • estimatethe point at which the maximum value of the log liklihood function is obtained.
  • minimumthe value of the estimated maximum, i.e. the value of the log liklihood function.
  • codean 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.
  • gradientthe gradient at the estimated maximum.
  • stepsnumber of function calls.

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.

Examples

Run this code
## SOURCE("fBasics.2D-DistributionFits")
   
## Plot:
   par(ask = FALSE)
   
## nigFit -
   # Simulate 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) 

## nigFit -  
   # Fit Parameters:
   # 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)

Run the code above in your browser using DataLab