Learn R Programming

PearsonDS (version 1.3.1)

pearsonFitML: Maximum Likelihood Estimation of Pearson Distributions

Description

This function tries to find the Maximum Likelihood estimator within the Pearson distribution system. ML estimation is done for all sub-classes of the distribution system via numerical optimization (with nlminb). The sub-class with the optimal likelihood function value and the corresponding parameters are returned.

Usage

pearsonFitML(x, ...)

Value

List of parameters for Pearson distribution. First entry gives type of distribution (0 for type 0, 1 for type I, ..., 7 for type VII), remaining entries give distribution parameters (depending on distribution type).

Arguments

x

empirical data (numerical vector) for MLE.

...

parameters for nlminb.

Details

Starting values for each sub-class are found in a three-step procedure. First, the empirical moments of the input vector are calculated. In the second step, the moments are altered, such that the moment restrictions for the current sub-class are fulfilled (if necessary), and the method of moments estimator is calculated to obtain starting values for the optimizer. In the last step, the starting values are adjusted (if necessary) in order to assure that the whole sample lies in the support of the distribution.

References

[1] Johnson, N. L., Kotz, S. and Balakrishnan, N. (1994) Continuous Univariate Distributions, Vol. 1, Wiley Series in Probability and Mathematical Statistics, Wiley

[2] Johnson, N. L., Kotz, S. and Balakrishnan, N. (1994) Continuous Univariate Distributions, Vol. 2, Wiley Series in Probability and Mathematical Statistics, Wiley

See Also

PearsonDS-package, Pearson, pearsonFitM, pearsonMSC, pearsonMoments

Examples

Run this code
## Generate sample 
DATA <- rpearson(1000,moments=c(mean=1,variance=2,skewness=1,kurtosis=5))
## find Pearson distribution with these parameters
ppar <- pearsonFitML(DATA)
print(unlist(ppar))
## compare with method of moments estimator
print(unlist(pearsonFitM(moments=empMoments(DATA))))

Run the code above in your browser using DataLab