CompoundFit {GB2}R Documentation

Fitting the Compound Distribution based on the GB2 by the Method of Maximum Likelihood Estimation

Description

Calculates the log-likelihood, the score functions of the log-likelihood, the weighted mean of scores, and fits the parameters of the Compound Distribution based on the GB2.

Usage

vofp.cgb2(pl)
pofv.cgb2(vl)
logl.cgb2(fac, pl, w=rep(1, dim(fac)[1]))
scores.cgb2(fac, pl, w=rep(1, dim(fac)[1]))
ml.cgb2(fac, pl0, w=rep(1, dim(fac)[1]), maxiter=100, fnscale=length(w)) 

Arguments

pl0

numeric; vector of initial proportions defining the number of components and the weight of each component density in the decomposition. Sums to one.

pl

numeric; vector of fitted proportions. Sums to one. If pl is equal to pl0, we obtain the GB2 distribution.

fac

numeric; matrix of Gamma factors (output of fac.cgb2.

vl

numeric; vector of parameters. Its length is equal to the length of pl - 1.

w

numeric; vector of weights of length the number of rows of the matrix fac. By default w is a vector of 1.

maxiter

numeric; maximum number of iterations to perform. By default maxiter = 100.

fnscale

numeric; an overall scaling parameter used in the function optim. By default it is equal to the length of the vector of weights w.

Details

There are only L-1 parameters to estimate, because the probabilities p_\ell sum to 1 (L is the dimension of the vector of probailities p_\ell). Knowing this, we change the parameters p_\ell to v_\ell=log(p_\ell/p_L), \ \ell= 1, ..., L-1. This calculation is done through the function vofp.cgb2. pofv.cgb2 calculates the p_\ell in function of the given v_\ell. We express the log-likelihood as a weighted mean of log(f) = log(\sum(p_\ell f_\ell), evaluated at the data points, where f is the GB2 compound density. If the weights are not available, then we suppose that w = 1. Analogically, the scores are obtained as weighted sums of the first derivatives of the log-likelihood, with respect to the parameters v_\ell, \ \ell=1, ..., L-1, evaluated at the data points. Function ml.cgb2 performs maximum likelihood estimation through the general-purpose optimization function optim from package stats. The considered method of optimization is BFGS.

Value

vofp.cgb2 returns a vector of length L-1, where L is the length of the vector p_\ell. pofv.cgb2 returns a vector of length \ell. logl.cgb2 returns the value of the pseudo log-likelihood. scores.cgb2 returns a vector of the weighted mean of the scores of length L-1. ml.cgb2 returns a list containing two objects - the vector of fitted proportions \hat{p_\ell} and the output of the BFGS fit.

Author(s)

Monique Graf and Desislava Nedyalkova

See Also

optim

Examples

## Not run: 
# GB2 parameters:
a <- 4
b <- 1950
p <- 0.8
q <- 0.6

# Proportions defining the component densities:
pl0 <- rep(1/3,3)

# Mixture probabilities
pl <- c(0.1,0.8,0.1)

# Random generation:
n <- 10000
set.seed(12345)
x <- rcgb2(n,a,b,p,q,pl0,pl,decomp="l")

# Factors in component densities
fac <- fg.cgb2(x,a,b,p,q, pl0,decomp="l")

# Estimate the mixture probabilities:
estim <- ml.cgb2(fac,pl0)

# estimated mixture probabilities:
estim[[1]]
#[1] 0.09724319 0.78415797 0.11859883

## End(Not run)

[Package GB2 version 2.1.1 Index]