楼主: leideng0508
4705 16

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

  • 0关注
  • 1粉丝

本科生

18%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1436 点
帖子
42
精华
0
在线时间
115 小时
注册时间
2009-2-1
最后登录
2014-1-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
版主各位同学好!
我自己编了一个极大似然估计的程序估计仅有一个截距的方程(yi=ci+ui),如下:
new;
library optmum,PGRAPH;
load y[10,1]=data.txt;
T=rows(y);
START=1;
PRMTR_IN={0.0044  1};
PRMTR_IN=PRMTR_IN';
{xout,fout,gout,cout}=optmum(&lik,PRMTR_in);
"likelihood value is ";
fout;
"Estimated parameters are:";
xout';

proc LIK(PRMTR1);
local prmtr,sigma, C, L,FORC, likv, J_ITER,lik;
PRMTR=PRMTR1;
sigma=PRMTR[1,.];
C= PRMTR[2,.];
LIKV=0.0;
J_ITER=1;
do until J_ITER>T;
Forc=y[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;

数据:
1
1.1
1
1.2
0.9
1
1.05
1
1.04
1

但是,最终结果为:
likelihood value is
-339.45805 -  15.70796i
Estimated parameters are:
-48617429108370469000000000000.00000 -1515226650922.38280

为什么参数会如此大呢,从数据可以看出应该是(0.0044  1)附近。
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:极大似然估计 似然估计 极大似然 小程序 parameters 程序 疑问 极大似然估计

沙发
zhangtao 发表于 2011-5-25 20:32:44 |只看作者 |坛友微信交流群
你这个方程没有自变量,应该不算是函数吧,我估计是你方程设定的问题!
如果加上X,就应该没什么问题了。
个人见解,不见得对

使用道具

藤椅
woshidengl 发表于 2011-5-25 22:11:16 |只看作者 |坛友微信交流群
2# zhangtao
谢谢!
其实这个小程序是hamilton 1989程序的极其简化版(我认为的哈),没有state variable,没有transition probability,涉及到的只是univariable,那个数列就相当于输入,输出包括对方差和均值的估计。
但不知道哪里简化的不对,请指教!

使用道具

板凳
leideng0508 发表于 2011-5-25 23:58:49 |只看作者 |坛友微信交流群
弄明白了:
应该是sigma=prmtr[1,.]^2;
这样就可以保证方差大于零,结果就对了。
而且optmum算的是最小值,要注意极大似然的取法,谢谢各位!

使用道具

报纸
zhangtao 发表于 2011-5-26 09:14:45 |只看作者 |坛友微信交流群
ERROR:  function cannot be computed at initial parameter values
likelihood value is
            -INF
Estimated parameters are:
    0.0044000000        1.0000000
我觉得结果还是有问题,但是找不到问题,
估计得看看hamilton的原程序。

使用道具

地板
zhaomn200145 发表于 2011-5-26 09:21:48 |只看作者 |坛友微信交流群
我觉得如果真是要做练习的话,可以试着自己编这个极大似然估计的程序,仅仅是去调用optmum程序包对提高自己的编程能力和理解极大似然估计方法都没有什么帮助。

使用道具

7
zhaomn200145 发表于 2011-5-26 09:22:39 |只看作者 |坛友微信交流群
不然optmum程序包对于你来说就永远是一个黑箱。

使用道具

8
leideng0508 发表于 2011-5-26 18:36:02 |只看作者 |坛友微信交流群
5# zhangtao
我运行的结果是:

likelihood value is
11.76331
Estimated parameters are:
  0.07463   1.02900

应该和原数据的情况比较吻合的。

使用道具

9
leideng0508 发表于 2011-5-26 18:36:42 |只看作者 |坛友微信交流群
7# zhaomn200145
版主说的很对很对,谢谢!

使用道具

10
zhangtao 发表于 2011-5-26 21:22:23 |只看作者 |坛友微信交流群
楼主帮忙看看,我运行的你提供的原程序和数据如下,是否和你的一样?
new;
library optmum,PGRAPH;
load y[10,1]=data.txt;
T=rows(y);
START=1;
PRMTR_IN={0.0044  1};
PRMTR_IN=PRMTR_IN';
{xout,fout,gout,cout}=optmum(&lik,PRMTR_in);
"likelihood value is ";
fout;
"Estimated parameters are:";
xout';

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>T;
Forc=y[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;
1
1.1
1
1.2
0.9
1
1.05
1
1.04
1

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 13:34