[ADMB Users] ADMB and hierarchical (multi-level) models
H. Skaug
hskaug at gmail.com
Mon Aug 16 06:17:15 PDT 2010
Saang-Yoon,
Because your newY is a discrete random variable, I do not think
the prediction problem fits well into ADMB. I would fit the model
in ADMB, and write a small back-end that does Monte Carlo simulation.
Hans
On Fri, Aug 13, 2010 at 11:33 PM, Saang-Yoon <shyunuw at gmail.com> wrote:
> Hi, Mark.
> Thank you very much for your response. Your answer is helpful, but
> still I am not sure about whether ADMB really can do a multi-level
> (hierarchical) modeling. Beside the likelihood function in the above
> example, I have another likelihood function of newY. In this case,
> newY is really a parameter. The newY is decomposed to four age groups
> (say, newY1, newY2, newY3, and newY4; i.e., newY =
> newY1+newY2+newY3+newY4). Given age-catches, I have a multinomial
> likelihood function of (newY1/newY, newY2/newY, newY3/newY, newY4/
> newY). Call the likelihood function L0.
>
> To clarify my inquiry, I combine this current and previous
> components.
> (1) L0 = L(newY1/newY, newY2/newY, newY3/newY, newY4/newY | age-
> specific catches)
>
> (2) L1 = L(beta0, beta1, sigma2 | observed Ys, observed Xs)
>
> (2) Prior1 = Pr(newY | beta0, beta1, sigma2, newX).
> Strictly speaking this is not a likelihood function, but a predictive
> function. I apply the predictive function as a prior for newYs.
>
> Finally I sum the respective logarithm of these above functions.
> f = – logL0 – logL1 – logPrior1;
>
> Then, estimates of beta0, beta1, and sigma2 are affected by newYs as
> well as observed Ys and observed Xs; again this is WRONG!!!. Because
> of L0, I have to declare newYs as free parameters, do I not? In this
> example, beta0, beta1, and sigma2 are hyper parameters, and thus they
> must NOT be affected by parameters and data at a lower level. I am
> extremely curious about how you or other ADMB experts get around this
> problem. Again thank you very much for your response. Best,
>
> Saang-Yoon
>
>
> On Aug 13, 12:11 pm, "Mark Maunder" <mmaun... at iattc.org> wrote:
>> Saang-Yoon,
>>
>> 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
>>
>> 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-7027begin_of_the_skype_highlighting (858) 546-7027 end_of_the_skype_highlighting
>> Fax: (858) 546-7133
>> mmaun... at iattc.orghttp://www.fisheriesstockassessment.com/TikiWiki/tiki-index.php?page=...
>>
>> Visit the AD Model Builder project at
>> http://admb-project.org/
>>
>> See the following website for information on fisheries stock assessmenthttp://www.fisheriesstockassessment.com/
>>
>>
>>
>>
>> -----Original Message-----
>> From: users-boun... at admb-project.org [mailto:users-boun... at admb-project.org] On Behalf Of Saang-Yoon
>> Sent: Friday, August 13, 2010 9:04 AM
>> To: us... 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
>> model.
>>
>> (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
>> in PARAMETER SECTION in ADMB.
>>
>> 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,
>>
>> Saang-Yoon
>> _______________________________________________
>> Users mailing list
>> Us... at admb-project.orghttp://lists.admb-project.org/mailman/listinfo/users
>> _______________________________________________
>> Users mailing list
>> Us... at admb-project.orghttp://lists.admb-project.org/mailman/listinfo/users- Hide quoted text -
>>
>> - Show quoted text -
> _______________________________________________
> Users mailing list
> Users at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/users
>
More information about the Users
mailing list