[ADMB Users] parameterization of Cholesky factor
Saang-Yoon
shyunuw at gmail.com
Tue Nov 11 15:10:46 PST 2014
Hi, Dr. Fournier.
I changed the subject to "parameterization of Cholesky factor". Although
your parameterization works, I wonder about how you got it, because it is
different from the standard method. What I mean with "standard" method is:
Cmat = 1 r 0
r 1 s
0 s 1
where Cmat is a correlation matrix in my TPL.
To make sure that "L*trans(L) = Cmat," L must be
L = 1 0 0
r sqrt(1-r*r) 0
0 s/sqrt(1-r*r) sqrt(1-r*r-s*s)/sqrt(1-r*r)
When I implemented this Cholesky factor (which is what I got from the
standard method), I fail to get COR file. My core question is how you got
the following:
L = 1 0 0
r/sqrt(1+r*r) 1/sqrt(1+r*r) 0
0 s/sqrt(1+s*s) 1/sqrt(1+s*s)
Again thank you very much for your help.
Saang-Yoon
On Tuesday, November 11, 2014 12:07:04 PM UTC-5, Saang-Yoon wrote:
> Dr. Fournier. Yes, it runs!!! GREAT!!! Thank you very much for your
> help.
> Saang-Yoon
>
> On Tuesday, November 11, 2014 10:36:09 AM UTC-5, dave fournier wrote:
>
>> On 11/10/2014 09:23 PM, Saang-Yoon wrote:
>>
>> Hi, Dr. Fournier and Hans.
>> Attached are two TPL files:
>> (1) ssmbr3v3.TPL, which is based on Hans' link below (i.e., the page in
>> the ADMB manual).
>> (2) ssmbr3v4.TPL, which is based on Dr. Fournier's suggestion below.
>> Although both files still fail to generate its corresponding COR file,
>> the 1st TPL (i.e., ssmbr3v3.TPL) is better than the 2nd TPL (i.e.,
>> ssmbr3v4.TPL). Would you mind checking those attached TPL files? FYI,
>> following are the command for run:
>>
>> admb -r -s ssmbr3v3.tpl
>> ssmbr3v3 -ind simdataall2.dat -ainp ssmbr3v3.pin -phase 3 -noinit
>>
>> admb -r -s ssmbr3v4.tpl
>> ssmbr3v4 -ind simdataall2.dat -ainp ssmbr3v4.pin -phase 3 -noinit
>>
>> Again thank you very much.
>> Saang-Yoon
>>
>>
>> The code for the choleski factor should look more like this.
>> I changed both and the model runs fine.
>>
>>
>> dvar_matrix L(1,nages,1,nages); // Cholesky factor
>> L.initialize();
>> L(1,1)=1;
>> L(2,1)=rp/sqrt(1+rp*rp);
>> L(2,2)=1/sqrt(1+rp*rp);
>> L(3,2)=sp/sqrt(1+sp*sp);
>> L(3,3)=1/sqrt(1+sp*sp);
>>
>> However the bounds on rp and ro are probably not what you want.
>>
>>
>>
>>
>>
>>
>> On Thursday, November 6, 2014 10:30:11 AM UTC-5, Hans wrote:
>>
>>> See also:
>>>
>>>
>>> http://www.admb-project.org/examples/admb-tricks/parameterization/covariance-matrices/covariance-matrices
>>>
>>> Hans
>>>
>>> On Thu, Nov 6, 2014 at 4:23 PM, dave fournier <da... at otter-rsch.com>
>>> wrote:
>>>
>>>> On 11/05/2014 05:10 PM, Saang-Yoon wrote:
>>>>
>>>> As I said, you should work with the Choleski decomposition of the
>>>> correlation matrix.
>>>>
>>>> In the simple 3x3 case your conditions imply that it is determined by
>>>> 2 parameters
>>>>
>>>> r and s with bounds a and b such that a<=r<=b. You get a and b by
>>>> solving
>>>>
>>>> 0.0<= r/sqrt(1+r*r) <=0.7
>>>>
>>>> The matrix is
>>>>
>>>> 1 0 0
>>>>
>>>> r/sqrt(1+r*r) 1/sqrt(1+r*r) 0
>>>>
>>>> 0 s/sqrt(1+s*s) 1/sqrt(1+s*s)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Hi, Dr. Fournier and others.
>>>> I made some progress. Exploring many possibilities, I found that the
>>>> following assumptions help, but there is still a concern.
>>>> (Assumption 1) Three age classes are not from the same cohort, and thus
>>>> age class 1 and 3 are presumed to be independent. Thus I fix the
>>>> correlation coefficient between age class 1 and 3 as zero.
>>>> (Assumption 2) If there is a correlation between neighbor age classes
>>>> (e.g., "1 vs. 2", and "2 vs. 3"), the correlation should be positive (i.e.
>>>> autocorrelation over the years). Thus I set bounds of correlation
>>>> between those neighbor classes to be positive: (e.g., init_bounded_number
>>>> corp12(0.0,0.7,3); )
>>>>
>>>> Then now I have the resultant COR file (i.e., convergence was made).
>>>> It was good news, but the estimates of correlation coefficients between
>>>> neighbor age classes are stuck to the uppder bound, 0.7. If I allow a wide
>>>> bound (e.g., init_bounded_number corp12(0.0,0.9,3); ), then I failed to get
>>>> positive definite matrices.
>>>>
>>>> admb -r -s ssmbr3v4.tpl
>>>> ssmbr3v4 -ind simdataall2.dat -ainp ssmbr3v3.pin -phase 1 -noinit
>>>>
>>>> Any advice would be appreciated. Best Wishes,
>>>> Saang-Yoon
>>>>
>>>> On Tuesday, November 4, 2014 6:30:56 PM UTC-5, dave fournier wrote:
>>>>
>>>>> On 11/04/2014 02:58 PM, Saang-Yoon wrote:
>>>>>
>>>>> Hmm. Well its like this. Pick a number between -infinity and +
>>>>> infinity. Why would you expect that it would need to be positive.
>>>>>
>>>>> or a matrix like
>>>>>
>>>>> 1 .9 .9
>>>>> .9 1 -.50
>>>>> .9 -.50 1
>>>>>
>>>>> If you check you will see that just like -1 is negative, this matrix
>>>>> is not positive definite.
>>>>>
>>>>> What you should be asking is how does one parameterize the positive
>>>>> definite matrices in a
>>>>> nice way to do nonlinear parameter estimation.
>>>>>
>>>>>
>>>>>
>>>>> Hi, Dr. Fournier. Thank you very much for your reply. Attached
>>>>> is models that reflect the TPL code. At the moment, I have no clue about
>>>>> why the covariance matrix is not positive definite.
>>>>> Saang-Yoon
>>>>>
>>>>> On Monday, November 3, 2014 2:58:49 PM UTC-5, dave fournier wrote:
>>>>>
>>>>>> What makes you think the covariance matrix will be positive definite
>>>>>> with your parameterization?
>>>>>>
>>>>>> On Sunday, November 2, 2014 5:49:50 PM UTC-8, Saang-Yoon wrote:
>>>>>>>
>>>>>>> Hi. There was no error in compile-link for the attached TPL
>>>>>>> file; i.e., I got its executable file. However, I fail to get
>>>>>>> convergence results. Would you mind checking the TPL?
>>>>>>> Following are commands for runs.
>>>>>>>
>>>>>>> admb -r -s ssmbr3v4.tpl
>>>>>>> ssmbr3v4 -ind simdataall2.dat -ainp ssmbr3v3.pin -phase 1 -noinit
>>>>>>> ssmbr3v4 -ind simdataall2.dat -ainp ssmbr3v3.pin -phase 9 -noinit
>>>>>>>
>>>>>>> Thank you.
>>>>>>> Saang-Yoon
>>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "admb-users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to admb-users+... at googlegroups.com.
>>>>> To post to this group, send email to admb-... at googlegroups.com.
>>>>> Visit this group at http://groups.google.com/group/admb-users.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "admb-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to admb-users+... at googlegroups.com.
>>>> To post to this group, send email to admb-... at googlegroups.com.
>>>> Visit this group at http://groups.google.com/group/admb-users.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "admb-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to admb-users+... at googlegroups.com.
>>>> To post to this group, send email to admb-... at googlegroups.com.
>>>> Visit this group at http://groups.google.com/group/admb-users.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "admb-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to admb-users+... at googlegroups.com.
>> To post to this group, send email to admb-... at googlegroups.com.
>> Visit this group at http://groups.google.com/group/admb-users.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/users/attachments/20141111/9a3d659a/attachment-0001.html>
More information about the Users
mailing list