Fits a normal inverse Gaussian 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.
nigFit(x, freq = NULL, paramStart = NULL,
         startMethod = c("Nelder-Mead","BFGS"),
         startValues = c("FN","Cauchy","MoM","US"),
         criterion = "MLE",
         method = c("Nelder-Mead","BFGS","nlm",
                   "L-BFGS-B","nlminb","constrOptim"),
         plots = FALSE, printOut = FALSE,
         controlBFGS = list(maxit = 200),
         controlNM = list(maxit = 1000), maxitNLM = 1500,
         controlLBFGSB = list(maxit = 200),
         controlNLMINB = list(),
         controlCO = list(), ...)  # S3 method for nigFit
print(x,
        digits = max(3, getOption("digits") - 3), ...)
  # S3 method for nigFit
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 nigFit
coef(object, ...)
  # S3 method for nigFit
vcov(object, ...)
A list with components:
A vector giving the maximum likelihood estimate of
      param, as c(mu, delta, alpha, beta).
The value of the maximised log-likelihood.
Optimisation method used.
Convergence code. See the relevant documentation (either
      optim or nlm) for details on
      convergence.
Number of iterations of optimisation routine.
The data used to fit the normal inverse Gaussian distribution.
A character string with the actual x argument
      name.
Starting value of param returned by call to
      nigFitStart.
Descriptive name for the method 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 nigFit. Object of class
    "nigFit" for print.nigFit and plot.nigFit.
A vector of weights with length equal to length(x).
A user specified starting parameter vector param taking
    the form c(mu, delta, alpha, beta).
Method used by nigFitStart in calls to
    optim.
Code giving the method of determining starting
    values for finding the maximum likelihood estimate of param.
Currently only "MLE" is implemented.
Different optimisation methods to consider. See Details.
Logical. If FALSE suppresses printing of the
    histogram, log-histogram, Q-Q plot and P-P plot.
Logical. If FALSE suppresses printing of
    results of fitting.
A list of control parameters for optim when using
    the "BFGS" optimisation.
A list of control parameters for optim
    when using the "Nelder-Mead" optimisation.
A positive integer specifying the maximum number of
    iterations when using the "nlm" optimisation.
A list of control parameters for optim when using
    the "L-BFGS-B" optimisation.
A list of control parameters for nlminb
    when using the "nlminb" optimisation.
A list of control parameters for constrOptim
    when using the "constrOptim" optimisation.
Desired number of digits when the object is printed.
If a subset of the plots is required, specify a subset of
    the numbers 1:4.
Titles to appear above the plots.
Logical. If TRUE, the user is asked before
    each plot, see par(ask = .).
Passes arguments to par, hist,
		logHist, qqnig and ppnig.
Object of class "nigFit" for coef.nigFit
    and for vcov.nigFit.
David Scott d.scott@auckland.ac.nz, Christine Yang Dong
startMethod can be either "BFGS" or
	"Nelder-Mead".
startValues can be one of the following:
"US"User-supplied.
"FN"A fitted normal distribution.
"Cauchy"Based on a fitted Cauchy distribution.
"MoM"Method of moments.
For the details concerning the use of paramStart,
  startMethod, and startValues, see
  nigFitStart.
The three optimisation methods currently available are:
"BFGS"Uses the quasi-Newton method "BFGS" 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.
For details of how to pass control information for optimisation using
  optim and nlm, see optim and
  nlm.
When method = "nlm" is used, warnings may be produced. These do
  not appear to be a problem.
Barndorff-Nielsen, O. (1977) Exponentially decreasing distributions for the logarithm of particle size, Proc. Roy. Soc. Lond., A353, 401--419.
Fieller, N. J., Flenley, E. C. and Olbricht, W. (1992) Statistics of particle size data. Appl. Statist., 41, 127--146.
Paolella, Marc S. (2007) Intermediate Probability: A Computational Approach, Chichester: Wiley
param <- c(2, 2, 2, 1)
dataVector <- rnig(500, param = param)
## See how well nigFit works
nigFit(dataVector)
nigFit(dataVector, plots = TRUE)
fit <- nigFit(dataVector)
par(mfrow = c(1, 2))
plot(fit, which = c(1, 3))
## Use nlm instead of default
nigFit(dataVector, method = "nlm")
Run the code above in your browser using DataLab