For the following program, the initial selection is not very understanding
Why there are three different initial value selection method?
How to select the initial value of the estimated variance in the maximum likelihood estimation?
y=duration~volum~abs(res_r);
/***************************************************
(1)Get initial values by estimate three ACD models
**********************************************************************/
var=vcx(ln(y));
..................
{parameter,f0,g,cov,retcode1}=cml(duration,0,&LI_lnACD,par|sqrt(var[1,1]));
{parameter1,f0,g,cov,retcode1}=cml(volum,0,&LI_lnACD,par|sqrt(var[2,2])); {parameter2,f0,g,cov,retcode1}=cml(abs(res_r),0,&LI_lnACD,par|sqrt(var[3,3]));
//sqrt(var[1,1]) as a initial value for variance
/***********************************************************************
(2)Further get initial values by estimate ACD-ACV-GARCH model
************************************************************************/
...........
{par00,f0,g,cov,retcode}=cml(duration,0,&LI_lnACD, parameter[1:3]|0|0|parameter[4]);
{par11,f01,g,cov1,retcode1}=cml(volum,0,&LI_lnACD,
parameter1[1:3]|0|0|parameter1[4]);
{par22,f02,g,cov2,retcode2}=cml(abs(res_r),0,&LI_lnACD, parameter2[1:3]|0|0|parameter2[4]);
/// the previous estimate variance "parameter[4]" as a initial value
/**************************************************************************
logvmem_MLEloglik model estimation
***********************************************************************/
.......................................
...............
para_v=par_to_pp(par00,par11,par22); // calculate Initial values
...............................................................
{pp,f,g,cov,retcode}=CMLPrt(cml(y,0,&logvmem_MLEloglik, para_v));
/*================================================================*/
proc par_to_pp(par00,par11,par22);
local omega,A,B,vc,gamma_0,para_v;
OMEGA= par00[1]|par11[1]|par22[1];
A=(par00[2]~ par00[4]~ par00[5])|(par11[4]~ par11[2]~ par11[5])|(par22[4]~ par22[5]~ par22[2]);
B= diagrv(eye(3),par00[3]|par11[3]|par22[3]);
vc= diagrv(eye(3),par00[rows(par00)]^2|par11[rows(par11)]^2|par22[rows(par22)]^2);
gamma_0=omega|vecr(A)|vecr(B);
para_v=vech(vc)|gamma_0;
retp(para_v);
endp;
///"par00[rows(par00)]^2|par11[rows(par11)]^2|par22[rows(par22)]^2" In this step, the square that the previous estimate is used as the initial value
1 Answer
0
I think for anyone to answer this they will need to know more about what the code is trying to do. Can you post a link to where you downloaded it?
Your Answer
1 Answer
I think for anyone to answer this they will need to know more about what the code is trying to do. Can you post a link to where you downloaded it?