nlFit: Fit the Normal Laplace Distribution to Data

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/nlFit.R

Description

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.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  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 class 'nlFit'
print(x, digits = max(3, getOption("digits") - 3), ...)
  ## S3 method for class '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 class 'nlFit'
coef(object, ...)
  ## S3 method for class 'nlFit'
vcov(object, ...)

Arguments

x

Data vector for nlFit.

freq

A vector of weights with length equal to length(x).

breaks

Breaks for plotted histogram, defaults to those generated by hist(x, right = FALSE, plot = FALSE).

paramStart

A user specified starting parameter vector taking the form c(mu, sigma, alpha, beta).

startMethod

Method used by nlFitStart in calls to optim.

startValues

Code giving the method of determining starting values for finding the maximum likelihood estimate of the parameters.

method

Different optimisation methods to consider. See Details.

hessian

Logical. If TRUE the value of the Hessian is returned.

plots

Logical. If FALSE the printing of the histogram, log-histogram, Q-Q plot and P-P plot are suppressed.

printOut

Logical. If FALSE the printing of the results of fitting will be suppressed.

controlBFGS

A list of control parameters for optim when using the "BFGS" method of optimisation.

controlLBFGSB

A list of control parameters for optim when using the "L-BFGS-B" method of optimisation.

controlNLMINB

A list of control parameters for optim when using the "nlminb" method of optimisation.

controlNM

A list of control parameters for optim when using the "Nelder-Mead" method of optimisation.

maxitNLM

A positive integer specifying the maximum number of iterations that are to be undertaken when using the "nlm" method of optimisation.

object

Object of class "nlFit" for print.nlFit, plot.nlFit, coef.nlFit and vcov.nlFit.

digits

Desired number of digits to be shown when the object is printed.

which

If a subset of the plots if required, specify a subset of the numbers 1:4.

plotTitles

Titles to appear as the main title above the plots.

ask

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.

Details

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:

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.

Value

A list with components:

param

A vector giving the maximum likelihood estimate of parameters, as c(mu, sigma, alpha, beta).

maxLik

The value of 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 the relevant documentation (either optim or nlm) for details on convergence.

iter

Number of iterations made by the optimisation routine.

obs

The data used to fit the normal Laplace distribution.

obsName

A character vector with the actual x argument name.

paramStart

Starting value of parameters returned by call to nlFitStart.

svName

Descriptive name for the method of finding start values.

startValues

Acronym for the method of finding start values.

breaks

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

Author(s)

David Scott d.scott@auckland.ac.nz, Simon Potter

See Also

optim, nlm, par, hist, logHist, qqnl, ppnl, dnl and nlFitStart.

Examples

1
2
3
4
5
6
7
8
9
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

Example output

Loading required package: DistributionUtils
Loading required package: RUnit
Loading required package: GeneralizedHyperbolic

Data:      dataVector 
Parameter estimates:
     mu    sigma    alpha     beta  
-0.7102   4.1363   0.8203   2.2735  
Likelihood:         2885.174 
Method:             Nelder-Mead 
Convergence code:   0 
Iterations:         253 

Data:      dataVector 
Parameter estimates:
     mu    sigma    alpha     beta  
-0.7102   4.1363   0.8203   2.2735  
Likelihood:         2885.174 
Method:             Nelder-Mead 
Convergence code:   0 
Iterations:         253 

NormalLaplace documentation built on May 29, 2017, 12:23 p.m.