楼主: Brdic
15097 16

[回归分析求助] ML求助-could not calculate numerical derivatives -- flat or discontinuous region [推广有奖]

  • 3关注
  • 14粉丝

VIP

学科带头人

79%

还不是VIP/贵宾

-

威望
0
论坛币
7017 个
通用积分
69.6937
学术水平
74 点
热心指数
95 点
信用等级
64 点
经验
24576 点
帖子
1379
精华
0
在线时间
3420 小时
注册时间
2004-7-8
最后登录
2024-2-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位,我使用stata的ML写了一个极大使然程序,但是在运行过程中出现

initial:       log likelihood =     -<inf>  (could not be evaluated)
feasible:      log likelihood = -3110.9551
rescale:       log likelihood = -553.68092
rescale eq:    log likelihood = -300.68297

然后报错:
could not calculate numerical derivatives -- flat or discontinuous region encountered
应该怎么调试?谢谢!
ml check没有问题
我是用了几个数据去测试这段程序,都是迭代到第四步就断了,应该还是程序有问题,求助大家

*******DCC.ado的ML程序如下*****************

  cap program drop DCC
  program define DCC
     version 12.1        
     args  lnf alpha mu s_n s_e
     tempvar s_ne rho t1 t2 s1 s2 s3 u1 u2 m1 m2 r1 r2 n2 n3                                 
     quietly {  
        gen double `s_ne' = sqrt(`s_n'^2+`s_e'^2)
        gen double `rho' = `s_n'/`s_ne'
        gen double `t1' = (ln(50)-ln(.4350549)*`apha'-ln(8005.487)*`mu')/`s_n'
        gen double `t2' = (ln(200)-ln(.458)*`apha'-ln(8006.987)*`mu')/`s_n'      
        gen double `s1' = (ln($ML_y1)-ln(.4350549)*`apha'-ln(8005.487)*`mu')/`s_ne'   
        gen double `s2' = (ln($ML_y1)-ln(.458)*`apha'-ln(8006.987)*`mu')/`s_ne'
        gen double `s3' = (ln($ML_y1)-ln(.528)*`apha'-ln(8017.487)*`mu')/`s_ne'
        gen double `u1' = (ln($ML_y1)-ln(50))/`s_ne'   
        gen double `u2' = (ln($ML_y1)-ln(200))/`s_ne'
        gen double `m1' = (ln(50)-ln(.458)*`apha'-ln(8006.987)*`mu')/`s_n'   
        gen double `m2' = (ln(200)-ln(.528)*`apha'-ln(8017.487)*`mu')/`s_n'
        gen double `r1' = (`t1'-`rho'*`s1')/sqrt(1-`rho'^2)  
        gen double `r2' = (`t2'-`rho'*`s2')/sqrt(1-`rho'^2)  
        gen double `n2' = (`m1'-`rho'*`s2')/sqrt(1-`rho'^2)  
        gen double `n3' = (`m2'-`rho'*`s3')/sqrt(1-`rho'^2)  
        replace `lnf' = ln(exp(-(`s1'*`s1'/2))/(sqrt(2*_pi)*`s_ne')*normal(`r1')+                   ///
                            exp(-(`s2'*`s2'/2))/(sqrt(2*_pi)*`s_ne')*(normal(`r2')-normal(`n2'))+   ///
                            exp(-(`s3'*`s3'/2))/(sqrt(2*_pi)*`s_ne')*normal(`n3')+                 ///
                            exp(-(`u1'*`u1'/2))/(sqrt(2*_pi)*`s_e')*(normal(`m1')-normal(`t1'))+          ///
                            exp(-(`u2'*`u2'/2))/(sqrt(2*_pi)*`s_e')*(normal(`m2')-normal(`t2')))
    }  
end

******************************

比如我用auto这个数据来测试
*******do文件****************************
ml model lf DCC (ML: price= mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign ) (alpha: ) (mu: ) (s_n: ) (s_e:)
ml max
****************
报错如下
*********************
initial:       log likelihood =     -<inf>  (could not be evaluated)
feasible:      log likelihood = -1392.6704
rescale:       log likelihood = -343.03737
rescale eq:    log likelihood =  879.12535
could not calculate numerical derivatives -- flat or discontinuous region encountered

********************
ml check没有问题

二维码

扫码加我 拉你入群

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

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

关键词:derivatives Derivative Continuous calculate Numerical initial 程序

沙发
Brdic 发表于 2013-9-22 17:51:47 |只看作者 |坛友微信交流群
可以看出来,它实际上还没有开始迭代,因为正常的是这样的:

initial:       log likelihood =     -<inf>  (could not be evaluated)
feasible:      log likelihood = -1529.2216
rescale:       log likelihood = -704.83626
rescale eq:    log likelihood = -703.83342
******开始迭代
Iteration 0:   log likelihood = -703.83342  
Iteration 1:   log likelihood = -695.71582  
Iteration 2:   log likelihood = -695.71287  
Iteration 3:   log likelihood = -695.71287  

使用道具

藤椅
Brdic 发表于 2013-9-22 19:36:08 |只看作者 |坛友微信交流群
有一个问题:
args  lnf alpha mu s_n s_e   /*这里有是4个参数*/

ml model lf DCC (ML: price= mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign ) (alpha: ) (mu: ) (s_n: ) (s_e:)   /*这里需要写几个方程呢?一定要写4个吗?*/

应该是不一定,那么原则是什么?

使用道具

板凳
Brdic 发表于 2013-9-23 16:22:08 |只看作者 |坛友微信交流群
我现在怀疑是不是要用d0或者d1,而不是lf

使用道具

报纸
gn85779632 发表于 2015-7-26 11:06:59 |只看作者 |坛友微信交流群
楼主问题解决了吗?我也遇到类似的问题,是方程数量太少还是因为什么呢?

使用道具

地板
Brdic 发表于 2015-7-26 11:54:01 |只看作者 |坛友微信交流群
最后没有解决 用的其他软件做的ml

使用道具

7
文欢 发表于 2015-9-5 15:35:10 |只看作者 |坛友微信交流群
Brdic 发表于 2015-7-26 11:54
最后没有解决 用的其他软件做的ml
楼主能否指教一二,我也在弄ML  stata也出现你这样的问题,您用的什么软件处理的?

使用道具

8
Brdic 发表于 2015-9-9 09:13:59 |只看作者 |坛友微信交流群
文欢 发表于 2015-9-5 15:35
楼主能否指教一二,我也在弄ML  stata也出现你这样的问题,您用的什么软件处理的?
建议你用matlab

使用道具

9
jl3a17 发表于 2020-9-21 16:15:18 |只看作者 |坛友微信交流群
我目前在做scm安慰剂的时候遇到了,经过检查,是模型设定错误,控制变量过少以至无法跑满循环

使用道具

10
iso3086598 发表于 2020-10-26 13:00:16 |只看作者 |坛友微信交流群
jl3a17 发表于 2020-9-21 16:15
我目前在做scm安慰剂的时候遇到了,经过检查,是模型设定错误,控制变量过少以至无法跑满循环
你好,请问最后是怎么解决的呢

使用道具

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

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

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

GMT+8, 2024-4-28 05:14