[ADMB Users] Random effect as finite mixture

H. Skaug hskaug at gmail.com
Sun Feb 8 00:45:36 PST 2009


Hi,

You may have solved this already, but just for the record:

ADMB has no special provision for finite mixture models, except that
its fast and stable funciton minimizer clearly is an advantage
when fitting such models. The random effects module is only for
continous random effects. To implement a finite mixture model
you have to write the C++ code directly. A simple example
of a Gaussian mixture is:

DATA_SECTION
  init_int n    // Number of observations
  init_vector x(1,n)   // data
PARAMETER_SECTION
  init_number        p1  // Mixture probabilities
  init_number        p2
  init_number        mu1  // Mean values
  init_number        mu2
  objective_function_value g             // Log-likelihood
PROCEDURE_SECTION
  for(int i=1;i<=n;i++)
    g += log(p1*square(x[i]-mu1)+p2*square(x[i]-mu2));
  g *= -1;                                // ADMB does miminization!
This code does not enforce the constraint p1+p2=1 or deal
with the identifiability issue regarding the mu's.

Hans

>I am new to ADMB and find the approach it adopts very interesting. One
thing
>I would like to know is: does ADMB handle models in which the random
effects
>are not parameterized as continuous distributions (normal, gamma, etc.) but
>as discrete categories (e.g. finite mixture)? Handling finite mixture is
>computation intensive and tends to be very slow for most statistical
>packages; it can be a great strength (if ADMB handles it) of the unique
>approach adopted by ADMB.
>
>I would appreciate some examples, if any are available.
>
>Many thanks.
>
>Best,
>Shige
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/users/attachments/20090208/bbfdafcc/attachment.html>


More information about the Users mailing list