Finds starting values for input to a maximum likelihood routine for fitting the generalized inverse Gaussian distribution to data.
gigFitStart(x, startValues = c("LM","GammaIG","MoM","Symb","US"),
paramStart = NULL,
startMethodMoM = c("Nelder-Mead","BFGS"), ...)
gigFitStartMoM(x, paramStart = NULL,
startMethodMoM = "Nelder-Mead", ...)
gigFitStartLM(x, ...)
Data vector.
Acronym indicating the method to use for obtaining
starting values to be used as input to gigFit
. See
Details.
Starting values for param if startValues =
"US"
.
Method used by call to optim
in
finding method of moments estimates.
gigFitStart
returns a list with components:
A vector with elements chi
, psi
,
and lambda
giving the starting value of param
.
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
.
gigFitStartMoM and gigFitStartLM each return paramStart, the starting value of param, to the calling function gigFitStart
Possible values of the argument startValues
are the following:
"LM"
Based on fitting linear models to the upper tails
of the data x
and the inverse of the data 1/x
.
"GammaIG"
Based on fitting gamma and inverse gamma
distributions.
"MoM"
Method of moments.
"Symb"
Not yet implemented.
"US"
User-supplied.
If startValues = "US"
then a value must be supplied for
paramStart
.
When startValues = "MoM"
an initial optimisation is needed to
find the starting values. This optimisations starts from arbitrary
values, c(1,1,1)
for the parameters
\((\chi,\psi,\lambda)\) and calls
optim
with the method given by
startMethodMoM
. Other starting values for the method of moments
can be used by supplying a value for paramStart
.
The default method of finding starting values is
"LM"
. Testing indicates this is quite fast and finds good
starting values. In addition, it does not require any starting values
itself.
gigFitStartMoM
is called by gigFitStart
and implements
the method of moments approach.
gigFitStartLM
is called by gigFitStart
and implements
the linear models approach.
# NOT RUN {
param <- c(1, 1, 1)
dataVector <- rgig(500, param = param)
gigFitStart(dataVector)
# }
Run the code above in your browser using DataLab