Learn R Programming

iprior (version 0.6.1)

ipriorOptim: Estimate an I-prior model using a combination of EM algorithm and direct optimisation

Description

This is a wrapper function for iprior() and optim() which estimates an I-prior model that has been stored in an ipriorKernel object.

Usage

ipriorOptim(object, control = list(maxit = 3, report = 1))

Arguments

object
An object of class ipriorKernel.
control
A list of controls for the initial EM algorithm fit. Refer to iprior for a full list of available controls.

Value

An object of class ipriorMod.

Details

The EM algorithm is slow to converge at times, but every iteration is guaranteed to increase the likelihood value. On the other hand a direct maximisation of the I-prior likelihood may sometimes result in ill-conditioned variance parameter due to the nature of the parameterisation of the I-prior model. Thus, an ideal implementation is a combination of EM and direct optimisation.

First, the EM algorithm is performed for a maximum of three iterations. This can be changed by passing a different maxit value to the list of control options. The parameters are then passed to optim() and the negative log-likelihood is minimised. The method used for optim is "L-BFGS-B", as the psi parameter of the I-prior model needs to be contrained to be greater than zero.

See Also

iprior and kernL.

Examples

Run this code
(mod <- kernL(stack.loss ~ ., stackloss))
mod.iprior <- ipriorOptim(mod)
summary(mod.iprior)

Run the code above in your browser using DataLab