[ADMB Users] ADMB and hierarchical (multi-level) models

Mark Maunder mmaunder at iattc.org
Fri Aug 13 09:11:24 PDT 2010


I think you problem is solved simply by creating a new variable in the procedure section 

sdreport_number newY

and then assign ypred a value in the procedure section based on beta0, beta1, sigma2, newX.

The value of newY with its standard deviation will be reported in the *.std file.


Mark Maunder 
Head of the Stock Assessment Program
Inter-American  Tropical Tuna Commission
8604 La Jolla Shores Drive
La Jolla, CA, 92037-1508, USA
Tel: (858) 546-7027
Fax: (858) 546-7133
mmaunder at iattc.org

Visit the AD Model Builder project at
See the following website for information on fisheries stock assessment

-----Original Message-----
From: users-bounces at admb-project.org [mailto:users-bounces at admb-project.org] On Behalf Of Saang-Yoon
Sent: Friday, August 13, 2010 9:04 AM
To: users at admb-project.org
Subject: [ADMB Users] ADMB and hierarchical (multi-level) models

Dear ADMB users.

I wonder about how people code multi-level models in ADMB.  I
illustrate my question with a simple example.  Let's assume we have a
simple regression model,
Y = beta0 + beta1*X + error, where error ~ N(0, sigma2)

Please think about two problems of (1) estimation of parameters
(beta0, beta1, and sigma2), and then (2) prediction of unknown random
variable (Y at a future time, given new X).  Strictly speaking,
unknown Y at a future time (say, newY) is NOT a parameter but a random
variable, although many fisheries papers treat the Y as a parameter.
But I follow the incorrect treatment (i.e., newY as a parameter) at
the moment to focus on my question about ADMB.  Also this is a simple
"example" for showing my problem with ADMB when facing a hierarchical

(1) Estimation of parameters, beta0, beta1, and sigma2
L(beta0, beta1, sigma2 | observed Ys, observed Xs)
This likelihood provides inference of these three parameters.  I call
it L1

(2) Calculation of new Y given new X.
L(newY | beta0, beta1, sigma2, newX)
I call this second likelihood function L2.  newX is a constant.

These two steps can be viewed as a multi-level or hierarchical
structure.  In ADMB, the objection function would be the sum of the
respective negative loglikelihood functions: i.e.,
 f = - logL1 - logL2;
where beta0, beta1, sigma2, and newY are declared as free parameters

My problem with this above coding is that estimates of beta0, beta1,
and sigma2 are affected by "newY" as well as "observed Ys" and
"observed Xs".  This is WRONG!!!   Estimation of beta0, and beta1, and
sigma2 must depend ONLY on "observed Ys", and "observed Xs".

I wonder about how ADMB experts do around this problem.  I would
extremely appreciate your guidance and help.   Thank you,

Users mailing list
Users at admb-project.org

More information about the Users mailing list