楼主: leideng0508
5453 16

[问答] 一个极大似然估计小程序的疑问 [推广有奖]

11
leideng0508 发表于 2011-5-26 22:39:17
10# zhangtao

new;
library optmum,PGRAPH;
format /m1/rd 9,5;
p=(1| 1.1| 1| 1.2| 0.9| 1| 1.05| 1| 1.04| 1);
T=rows(p);
START=1;
PRMTR_IN={0.057 1};
PRMTR_IN=PRMTR_IN';
{xout,fout,gout,cout}=optmum(&lik,PRMTR_in);

"likelihood value is ";
-fout;
"Estimated parameters are:";
xout';
end;

proc LIK(PRMTR1);
local prmtr,sigma, C, L,FORC, likv, J_ITER,lik;
PRMTR=PRMTR1;
sigma=PRMTR[1,.]^2;
C= PRMTR[2,.];
LIKV=0.0;
J_ITER=1;
do until J_ITER>10;
Forc=p[J_ITER,1]-C;
L=(1/SQRT(2*PI*sigma))*EXP((-0.5*FORC*FORC/sigma));
LIK=-LN(L);
LIKV = LIKV+LIK;
J_ITER = J_ITER+1;
endo;
retp(LIKV);
endp;

我用的是7.0版。结果是:
likelihood value is
11.76331
Estimated parameters are:
  0.07463   1.02900

12
zhangtao 发表于 2011-5-27 08:53:24
================================================================================
   iteration:  1   
   algorithm: BFGS         step method: STEPBT
   function: -9.59308      step length:  0.00000      backsteps:  0  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0570           17.7927
       2             1.0000            9.3044

================================================================================
   iteration:  2   
   algorithm: BFGS         step method: STEPBT
   function: -11.33691     step length:  0.00192      backsteps:  1  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0912            3.0462
       2             1.0179            1.2039

================================================================================
   iteration:  3   
   algorithm: BFGS         step method: STEPBT
   function: -11.37980     step length:  0.01316      backsteps:  3  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0792            0.4790
       2             1.0499            3.0762

================================================================================
   iteration:  4   
   algorithm: BFGS         step method: STEPBT
   function: -11.67265     step length:  1.00000      backsteps:  0  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0823            1.8436
       2             1.0303            0.1746

================================================================================
   iteration:  5   
   algorithm: BFGS         step method: STEPBT
   function: -11.73731     step length:  1.00000      backsteps:  0  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0786            1.0667
       2             1.0293            0.0429

================================================================================
   iteration:  6   
   algorithm: BFGS         step method: STEPBT
   function: -11.76092     step length:  1.00000      backsteps:  0  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0735            0.3600
       2             1.0288            0.0273

================================================================================
   iteration:  7   
   algorithm: BFGS         step method: STEPBT
   function: -11.76327     step length:  1.00000      backsteps:  0  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0748            0.0470
       2             1.0290            0.0027

================================================================================
   iteration:  8   
   algorithm: BFGS         step method: STEPBT
   function: -11.76331     step length:  1.00000      backsteps:  0  
--------------------------------------------------------------------------------
   param.      param. value     relative grad.
       1             0.0746            0.0018
       2             1.0290            0.0002
likelihood value is
11.76331
Estimated parameters are:
  0.07463   1.02900

13
zhangtao 发表于 2011-5-27 08:59:12
leideng0508 朋友,您的程序我基本看明白了,我还是有一些疑问:
为什么你输入的数据是一列数据:p=(1| 1.1| 1| 1.2| 0.9| 1| 1.05| 1| 1.04| 1);没有输入x和e,
但却能估计出x和e?
为什么数据格式从load y[10,1]=data.txt;改为p=(1| 1.1| 1| 1.2| 0.9| 1| 1.05| 1| 1.04| 1);
就更正了我碰到的初值设定错误?

14
leideng0508 发表于 2011-5-27 10:30:29
13# zhangtao
你好!
因为想估计的是univariable的均值和方差,所以只有一个输入变量,估计误差就是FORC。
数据格式的改变其实我认为没什么变化,因为数据少,就没再load,直接输入了。
希望我理解了你的意思,呵呵~~

15
zhangtao 发表于 2011-5-30 16:10:01
另外,我想问一下:proc LIK(PRMTR1);这段程序中,
PRMTR1这个参数在主程序中没有赋值?这个输入参数有什么用?
输出参数LIKV是什么意思?为什么输出的参数有两个,而输出参数
LIKV只有一个?
PRMTR=PRMTR1;这句在程序中是什么意思?
非常感谢!

16
woshidengl 发表于 2011-5-30 23:42:07
15# zhangtao
PRMTR1的赋值在optmum函数进行,可以根据版主推荐去看一下源程序;
LIKV是极大似然值,proc LIK的输入只有一个,为参数变量,输出也只有一个,是似然值;
PRMTR=PRMTR1是为了把输入变量变为局部变量,以方便处理。
ps:发现OX比Gauss好用一些~~

17
zhangtao 发表于 2011-6-1 07:55:18
另外,我想问一下:在程序中START=1;是什么意思?非常感谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-3-4 15:18