Learn R Programming

fBasics (version 221.10065)

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, 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, \dots)
 
ssdFit(x, alpha = 1.4, seed = NULL, title = NULL, description = NULL)

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

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
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, time
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.

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.
  • 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.

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.13D-DistributionFits")

## tFit -
   xmpBasics("Start: 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("Next: 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("Next: 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("Next: Smoothed Spline Density > ")
   set.seed(1953)
   x = rnorm(1000)
   ssdFit(x)

Run the code above in your browser using DataLab