全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
29546 26
2016-12-17
如题,最近我在不同场合遇到了  initial values not feasibler(1400)包括:
1、做双围栏模型时,遇到和这个贴子一样的错误:https://bbs.pinggu.org/thread-4588506-1-1.html
2、做截断正态回归时,当使用加权最小二乘法修正异方差,一旦加入权重,就出现这个错误.
3、做Breen(1996)内生性的样本选择模型时,用网上安装的命令也出现了这个错误。
在第1和第3个分析中,用网上的例子和他们给的数据可以做出结果,一旦换成自己数据就initial values not feasibler了。
由于都是采用的极大似然估计,一般用命令不会手动设初值,也不知道如何手动设初值,请教对这个问题有了解的朋友们给点建议和帮助,在回复的贴子中,我会根据回复的内容和质量,给予论坛币、经验、热心指数、学术水平、信用等级等不同的奖励,主要是论坛币奖励,希望有热心人帮忙,谢谢!~这个问题困扰了俺一段时间了。。



二维码

扫码加我 拉你入群

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

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

全部回复
2016-12-17 23:21:57
我感觉设定初始值是个比较麻烦的问题。一般来说比较复杂的模型会用较为简单的模型的初始值。比如半参模型可以考虑用完全parametric的模型的估计结果作为初始值。但是这样的问题是一般这些初始值不会包括所有的变量,比如bandwidth之类的。设定的话一方面靠对模型本身的理解,另一方面也看经验和运气。尝试各种不同的初始值也是方法之一。实在不行也可以试试只用一部分数据估计,找到各种参数的大致大小,然后用来做初始值。

总之这个是很麻烦很费时间的。不像各种有well-behaved likelihood function的模型很快就能估计好。自己设定的初始值究竟是否导致convergence to local maximum也需要进一步的diagnostics。一般来说好像就是尝试各种不同的初始值。

模型过于复杂的话可能会需要用云里或者单位的computer cluster。这个具体怎么样就跟IT部门联系就好。大部分学校都有提供的。

如果要随机找初始值是在是太慢(或者cluster里没有stata)的话,可能得用更快的软件重新写一下likelihood,比如matlab什么的。
二维码

扫码加我 拉你入群

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

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

2016-12-18 14:19:30
夏目贵志 发表于 2016-12-17 23:21
我感觉设定初始值是个比较麻烦的问题。一般来说比较复杂的模型会用较为简单的模型的初始值。比如半参模型可 ...
谢谢夏目的详细解答。我感觉这个错误比较普遍,但处理起来刺手,因为错误不是在自己编程写极大似然估计进出现,也不是用stata官方的命令(一般不需要外部安装)中出现,而是使用外部安装的命令时出现,首先是对外部安装的命令不太了解,打开该命令也是一大堆内容,水平所限,基本无法读懂。
最大的问题在于,stata根本就没有进入迭代程序,还没有开始iterate,就直接以 initial values not feasibler结束了。例如,双栏模型的命令dblhurdle,其错误的解释好象又不是初值不可行,而是超出了计算能力(其实样本数只有一千多,但错误提示说“in the midst of the necessary calculations, .........with more than 2,147,483,647 effective observations.”,这有点不好理解,难道是中间的计算过程,需要用到的维数超过了最大容量? 我1000多样本,比help文件中的例子数据807个样本也多不了多少呢。
[P]     error . . . . . . . . . . . . . . . . . . . . . . . . Return code 1400
        numerical overflow;
        You have attempted something that, in the midst of the
        necessary calculations, has resulted in something too large
        for Stata to deal with accurately.  Most commonly, this is
        an attempt to estimate a model (say with regress) with more
        than 2,147,483,647 effective observations.  This effective
        number could be reached with far fewer observations if you
        were running a frequency-weighted model.
二维码

扫码加我 拉你入群

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

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

2016-12-19 00:01:31
statax 发表于 2016-12-18 14:19
谢谢夏目的详细解答。我感觉这个错误比较普遍,但处理起来刺手,因为错误不是在自己编程写极大似然估计进 ...
我觉得跟是不是外部安装的命令关系不是很大,但是也不敢说完全没关系。因为stata里likelihood有不同的写法。很多时候大家为了省事就只写likelihood本身,而不写analytical first/second derivative。当然也有时候只能用numerical derivative。这个可能是因素之一。这个和具体是什么模型有关。你说的那个模型我没用过,所以不敢说究竟如何。

关于error的问题:我不知道是不是所有人都这样,但是我一般都随便用error code (当然,如果知道该用哪个还是会尽量用个对的)。比如
复制代码
显示的结果其实是
复制代码
你如果去查139对应的信息,是只会更迷惑的。

我的意思是,并不用特别在意这个code本身。我觉得跟数据过大相比,你遇到的问题其实是numerical overflow。也就是说你的likelihood趋于infinity,所以才会有initial value not feasible的问题。

一个可行的建议:把你那个程序的likelihood function拆出来直接用。这样的话所有的ml命令都可以用。虽然应该没问题,但是还是可以先试试ml check。
二维码

扫码加我 拉你入群

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

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

2016-12-19 00:04:54
最大的问题在于,stata根本就没有进入迭代程序,还没有开始iterate,就直接以 initial values not feasibler结束了。例如,双栏模型的命令dblhurdle,其错误的解释好象又不是初值不可行,而是超出了计算能力
如果上面没说清楚的话,我的意思是,如果inital value不行的话,这个现象是正常的,就应该这样。开始iteration之前,stata会先找合适的初始值(相当于ml search)。这个阶段其实就是evaluate likelihood function。如果遇到likelihood为infinity的情况,就会给出numeric overflow的错误信息。并不是样本大小的问题。
二维码

扫码加我 拉你入群

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

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

2016-12-22 11:26:33
夏目贵志 发表于 2016-12-19 00:04
如果上面没说清楚的话,我的意思是,如果inital value不行的话,这个现象是正常的,就应该这样。开始iter ...
谢谢,由于用的是外部安装命令,看来只有再研究研究了。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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