Fits a normal Laplace distribution to data. Displays the histogram, log-histogram (both with fitted densities), Q-Q plot and P-P plot for the fit which has the maximum likelihood.
nlFit(x, freq = NULL, breaks = "FD", paramStart = NULL,
startMethod = "Nelder-Mead",
startValues = c("MoM", "US"),
method = c("Nelder-Mead", "BFGS", "L-BFGS-B",
"nlm", "nlminb"),
hessian = FALSE,
plots = FALSE, printOut = FALSE,
controlBFGS = list(maxit = 200),
controlLBFGSB = list(maxit = 200),
controlNLMINB = list(),
controlNM = list(maxit = 1000),
maxitNLM = 1500, ...)
# S3 method for nlFit
print(x, digits = max(3, getOption("digits") - 3), ...)
# S3 method for nlFit
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 nlFit
coef(object, ...)
# S3 method for nlFit
vcov(object, ...)
A list with components:
A vector giving the maximum likelihood estimate of
parameters, as
c(mu, sigma, alpha, beta)
.
The value of maximised log-likelihood.
If hessian
was set to TRUE
, the value of
the Hessian. Not present otherwise.
Optimisation method used.
Convergence code. See the relevant documentation (either
optim
or nlm
) for details on convergence.
Number of iterations made by the optimisation routine.
The data used to fit the normal Laplace distribution.
A character vector with the actual x
argument name.
Starting value of parameters returned by call to
nlFitStart
.
Descriptive name for the method of finding start values.
Acronym for the method of finding start values.
The cell boundaries found by a call to
hist
.
The cell midpoints found by a call to
hist
.
The estimated density found by a call to
hist
.
Data vector for nlFit
.
A vector of weights with length equal to length(x)
.
Breaks for plotted histogram, defaults to those generated by
hist(x, right = FALSE, plot = FALSE)
.
A user specified starting parameter vector taking the form
c(mu, sigma, alpha, beta)
.
Method used by nlFitStart
in calls to
optim
.
Code giving the method of determining starting values for finding the maximum likelihood estimate of the parameters.
Different optimisation methods to consider. See Details.
Logical. If TRUE
the value of the Hessian
is returned.
Logical. If FALSE
the printing of the histogram,
log-histogram, Q-Q plot and P-P plot are suppressed.
Logical. If FALSE
the printing of the results of
fitting will be suppressed.
A list of control parameters for optim
when
using the "BFGS"
method of optimisation.
A list of control parameters for optim
when
using the "L-BFGS-B"
method of optimisation.
A list of control parameters for optim
when
using the "nlminb"
method of optimisation.
A list of control parameters for optim
when
using the "Nelder-Mead"
method of optimisation.
A positive integer specifying the maximum number of
iterations that are to be undertaken when using the "nlm"
method
of optimisation.
Object of class "nlFit"
for print.nlFit
,
plot.nlFit
, coef.nlFit
and vcov.nlFit
.
Desired number of digits to be shown when the object is printed.
If a subset of the plots if required, specify a subset of
the numbers 1:4
.
Titles to appear as the main title above the plots.
Logical. If TRUE
, the user is asked before
each plot, see par(ask = .)
.
Passes arguments to par
, hist
, logHist
,
qqnl
and ppnl
. For the print
, coef
and
vcov
methods this parameter has no effect.
David Scott d.scott@auckland.ac.nz, Simon Potter
startMethod
must be "Nelder-Mead"
.
startValues
can only be "MoM"
when using the Method of
Moments for estimation, or "US"
for user-supplied parameters. For
details regarding the use of paramStart
, startMethod
and
startValues
, see nlFitStart
.
Three optimisation methods are available for use:
"BFGS"
Uses the quasi-Newton method "BFGS"
as
documented in optim
.
"L-BFGS-B"
Uses the constrained method "L-BFGS-B"
as
documented in optim
.
"Nelder-Mead"
Uses an implementation of the Nelder and
Mead method as documented in optim
.
"nlm"
Uses the nlm
function in R.
"nlminb"
Uses the nlminb
function in R,
with constrained parameters.
For details on how to pass control information for optimisation using
optim
and nlm
, see optim
and
nlm
.
When method = "nlm"
or method = "nlm"
is used, warnings
may be produced. However, these do not appear to be problematic.
param <- c(0, 2, 1, 1)
dataVector <- rnl(1000, param = param)
## Let's see how well nlFit works
nlFit(dataVector)
nlFit(dataVector, plots = TRUE)
fit <- nlFit(dataVector)
par(mfrow = c(1, 2))
plot(fit, which = c(1, 3)) # See only histogram and Q-Q plot
Run the code above in your browser using DataLab