| skewhypFit {SkewHyperbolic} | R Documentation |
Fits a skew hyperbolic t-distribution to given data. Displays the histogram, log-histogram (both with fitted densities), Q-Q plot and P-P plot for the fit which has maximum likelihood.
skewhypFit(x, freq = NULL, breaks = NULL, startValues = "LA",
paramStart = NULL, method = "Nelder-Mead", hessian = TRUE,
plots = TRUE, printOut = TRUE, controlBFGS = list(maxit = 200),
controlNM = list(maxit = 1000), maxitNLM = 1500, ...)
## S3 method for class 'skewhypFit':
plot(x, which = 1:4,
plotTitles = paste(c("Histogram of ", "Log-Histogram of ",
"Q-Q Plot of ", "P-P Plot of "), x$obsName, sep = ""),
ask = prod(par("mfcol")) < length(which) && dev.interactive(), ...)
## S3 method for class 'skewhypFit':
print(x,digits = max(3, getOption("digits") - 3),...)
x |
Data vector for skewhypFit. Object of class
"skewhypFit" for print.skewhypFit. |
freq |
Vector of weights with length equal to length of x. |
breaks |
Breaks for histogram, defaults to those generated by
hist(x, plot = FALSE, right = FALSE).If startValues = "LA"
then 30 breaks are used by default. |
startValues |
Code giving the method of determining starting values for finding the maximum likelihood estimates of the parameters. |
paramStart |
If startValues = "US" the
user must specify a vector of starting parameter values in the form
c(mu,delta,beta,nu). |
method |
Different optimisation methods to consider, see Details. |
hessian |
Logical; if hessian = TRUE the value of the
hessian is returned. |
plots |
Logical; if plots = TRUE the histogram,
log-histogram, Q-Q and P-P plots are printed. |
printOut |
Logical; if printOut = TRUE results of the
fitting are printed. |
controlBFGS |
A list of control parameters for optim when
using the "BFGS" optimisation. |
controlNM |
A list of control parameters for optim
when using the "Nelder-Mead" optimisation. |
maxitNLM |
A positive integer specifying the maximum number of
iterations when using the "nlm" optimisation. |
which |
If a subset of plots is required, specify a subset of the
numbers 1:4. |
plotTitles |
Titles to appear above the plots. |
ask |
Logical; if TRUE the user is asked before plot
change, see par(ask = .). |
digits |
Desired number of digits when the object is printed. |
... |
Passes arguments to optim, nlm,
hist,logHist,
qqskewhyp and ppskewhyp. |
startValues can be either "US"(User-supplied) or
"LA" (Linear approximation)
If startValues = "US" then a value for paramStart must be
supplied. For the details concerning the use of startValues
and paramStart see skewhypFitStart.
The three optimisation methods currently available are:
"BFGS""BFGS" as
documented in optim."Nelder-Mead"optim."nlm"nlm function in R.
For the details of how to pass control information using
optim and nlm, see optim and
nlm.
skewhypFit returns a list with components:
param |
A vector giving the maximum likelihood estimates of the
parameters in the form c(mu,delta,beta,nu). |
maxLik |
The value of the maximised log-likelihood. |
hessian |
If hessian was set to TRUE, the value of
the hessian, not present otherwise. |
method |
Optimisation method used. |
conv |
Convergence code. See optim or
nlm for details. |
iter |
Number of iterations of optimisation routine. |
x |
The data used to fit the distribution. |
xName |
Character string with the actual x argument name. |
paramStart |
Starting values of the parameters returned by
skewhypFitStart. |
svName |
Name of the method used to find starting values. |
startValues |
Acronym of method used to find starting values. |
breaks |
Cell boundaries found by a call to hist. |
midpoints |
The cell midpoints found by a call to
hist. |
empDens |
The estimated density found by a call to
hist if startValues = "US", or
density if startValues = "LA". |
David Scott d.scott@auckland.ac.nz, Fiona Grimson
Aas, K. and Haff, I. H. (2006). The Generalised Hyperbolic Skew Student's t-distribution, Journal of Financial Econometrics, 4, 275–309.
optim, nlm, par,
hist, density,
logHist,
qqskewhyp, ppskewhyp,
dskewhyp and skewhypFitStart.
## See how well skewhypFit works param <- c(0, 1, 4, 10) data <- rskewhyp(500, param = param) fit <- skewhypFit(data) ## Use data set NOK/EUR as per Aas&Haff data(lrnokeur) nkfit <- skewhypFit(lrnokeur, method = "nlm") ## Use data set DJI data(lrdji) djfit <- skewhypFit(lrdji)