DistributionFits {fBasics} | R Documentation |
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'. |
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, ...)
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.
|
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.
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
.
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.
Chong Gu for the code from R's contributed package 'gss',
Diethelm Wuertz for the Rmetrics R-port.
## 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)