全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Gauss专版
3066 7
2009-10-19
/* Model: y_t=phi_0+phi_1*y_t-1+e_t, e_t~iidn(0, sig2) 独立正态分布 */ /* abs(phi_1)<1, sig2>0 */ new;cls; library optmum; @============== data generating =================@ t=1000; phi_0=2; phi_1=0.8; sig2 = 10; ymat=zeros(t,1); ymat[1]=rndn(1,1)*sqrt(sig2/(1-(phi_1)^2))+(phi_0/(1-phi_1)); itr=2; do until itr>t; ymat[itr]=phi_0+phi_1*ymat[itr-1]+rndn(1,1)*sqrt(sig2); itr=itr+1; endo; @============ Estimation by MLE =================@ prmtr_in=0.5|0.75|ln(10.5); {xout, fout, cout, gout}=optmum(&lik_f, prmtr_in); prm_fnl=trans(xout); cov=inv(hessp(&lik_f, xout)); grad=gradfd(&trans, xout); cov_fnl=grad*cov*grad'; stde=sqrt(diag(cov_fnl)); t_val=prm_fnl./stde; @=============output ==========================@ output file=mle.out reset; "================="; "The initial values are";;prmtr_in'; "Likelihood Values";;-fout; "Estimated parameters before trans are";;xout'; "Estimated parameters after trans are";;prm_fnl'; "T-values are";;t_val'; "================="; end; @====== Procedures: Log likelihood function set up=====@ proc lik_f(prmtr0); local prmtr, phi_0, phi_1, ssig2, lnl, itr, et, lnf; prmtr=trans(prmtr0); phi_0=prmtr[1]; phi_1=prmtr[2]; ssig2=prmtr[3]; lnl=0; itr=2; do until itr>t; et=ymat[itr]-phi_0-phi_1*ymat[itr-1]; (回归残差) lnf=-0.5*ln(2*pi*ssig2)-0.5*((et^2)/ssig2); (定义似然函数) lnl=lnl+lnf; itr=itr+1; endo; retp(-lnl); endp; @====== Procedures: constraining the parameters =======@ proc trans(prmtr1); local prmtr; prmtr=prmtr1; prmtr[2]=prmtr1[2]/(1+abs(prmtr1[2])); prmtr[3]=exp(prmtr1[3]); retp(prmtr); endp;


版主,有些地方看不懂啊。上面是你给的MLE估计的资料,非常感谢!!但是,你能不能来解释下?

proc lik_f(prmtr0)这句的prmtr0是哪来的啊?把prmtr0传递给trans?还有最后的那个trans的自定义函数是什么意思?在定义似然函数时,把trans返回的值又赋给了估计系数和方差(方差是我猜的,据似然函数的形式)?没看明白

还有optmum返回值是都是什么意义?没有对optmum的解释的资料。。。,那个模块的东西一个也不明白。还有prmtr_in的初值是任意赋的吗??

主要是optmum和trans这两块看不明白。希望版大或者版里的高手帮小弟解释下。初学者。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-10-19 15:42:44
对optmum程序包没怎么研究过........
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-10-19 16:10:51
2# zhaomn200145


那反正也不是关键吧,只要知道optmum返回值是什么意思就OK 吧。。。。能解释下其它的问题吗?看不太懂,想改成自己的不好下手。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-10-19 21:01:21
首先初始值你可以自己定,或者用ols方法估计。
trans转换,你可以参考这两个语句,分别看一下这两个语句的输出结果,你就能看出不同了
"Estimated parameters before trans are";;xout';
"Estimated parameters after trans are";;prm_fnl';
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-10-19 22:24:24
xuelida 发表于 2009-10-19 21:01
首先初始值你可以自己定,或者用ols方法估计。
trans转换,你可以参考这两个语句,分别看一下这两个语句的输出结果,你就能看出不同了
"Estimated parameters before trans are";;xout';
"Estimated parameters after trans are";;prm_fnl';
谢谢了,不过更糊涂了......

没有trans也可以估计出结果?似然函数不是调用了trans么?那为什么要trans这个函数对参数进行修正啊?基于什么原因啊?你那个后面的AR(2)也有trans。

还有prmtr0怎么来的,麻烦解释下吧。谢谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-10-19 22:24:38
xuelida 发表于 2009-10-19 21:01
首先初始值你可以自己定,或者用ols方法估计。
trans转换,你可以参考这两个语句,分别看一下这两个语句的输出结果,你就能看出不同了
"Estimated parameters before trans are";;xout';
"Estimated parameters after trans are";;prm_fnl';
谢谢了,不过更糊涂了......

没有trans也可以估计出结果?似然函数不是调用了trans么?那为什么要trans这个函数对参数进行修正啊?基于什么原因啊?你那个后面的AR(2)也有trans。

还有prmtr0怎么来的,麻烦解释下吧。谢谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群