楼主: statax
25022 25

[回归分析求助] 请教关于stata的"initial values not feasible r(1400)"错误 [推广有奖]

版主

院士

31%

还不是VIP/贵宾

-

TA的文库  其他...

计量与统计点滴

威望
2
论坛币
106333 个
通用积分
1972.0002
学术水平
499 点
热心指数
624 点
信用等级
404 点
经验
1032910 点
帖子
4282
精华
0
在线时间
1744 小时
注册时间
2005-3-5
最后登录
2024-1-29

初级热心勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,最近我在不同场合遇到了  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了。
由于都是采用的极大似然估计,一般用命令不会手动设初值,也不知道如何手动设初值,请教对这个问题有了解的朋友们给点建议和帮助,在回复的贴子中,我会根据回复的内容和质量,给予论坛币、经验、热心指数、学术水平、信用等级等不同的奖励,主要是论坛币奖励,希望有热心人帮忙,谢谢!~这个问题困扰了俺一段时间了。。



二维码

扫码加我 拉你入群

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

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

关键词:feasible Initial values Stata value initial values

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
nuomin + 5 + 5 + 5 鼓励积极发帖讨论
夏目贵志 + 10 欢迎大家讨论。请勿灌水。谢谢。

总评分: 论坛币 + 10  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

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

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

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

如果要随机找初始值是在是太慢(或者cluster里没有stata)的话,可能得用更快的软件重新写一下likelihood,比如matlab什么的。
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
statax + 100 + 5 + 5 观点有启发

总评分: 论坛币 + 100  学术水平 + 5  热心指数 + 5   查看全部评分

使用道具

藤椅
statax 发表于 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 (当然,如果知道该用哪个还是会尽量用个对的)。比如
  1. if 2>1 {
  2. di as error "two is greater than one"
  3. exit 139
  4. }
复制代码
显示的结果其实是
  1. . run "C:\WINDOWS\TEMP\STD00000000.tmp"
  2. two is greater than one
  3. r(139); t=0.00 10:57:09
复制代码
你如果去查139对应的信息,是只会更迷惑的。

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

一个可行的建议:把你那个程序的likelihood function拆出来直接用。这样的话所有的ml命令都可以用。虽然应该没问题,但是还是可以先试试ml check。
已有 1 人评分论坛币 学术水平 收起 理由
statax + 20 + 3 精彩帖子

总评分: 论坛币 + 20  学术水平 + 3   查看全部评分

使用道具

报纸
夏目贵志 发表于 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的错误信息。并不是样本大小的问题。
已有 1 人评分论坛币 学术水平 收起 理由
statax + 20 + 5 精彩帖子

总评分: 论坛币 + 20  学术水平 + 5   查看全部评分

使用道具

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

使用道具

7
tianxiaqingquan 发表于 2017-5-5 16:24:58 |只看作者 |坛友微信交流群
你好,请问你最终是怎么解决这个问题的呢?

使用道具

8
statax 发表于 2017-5-8 09:46:22 |只看作者 |坛友微信交流群
tianxiaqingquan 发表于 2017-5-5 16:24
你好,请问你最终是怎么解决这个问题的呢?
没有得到解决。有办法上来通个气,有论坛币奖励。

使用道具

9
tianxiaqingquan 发表于 2017-5-8 10:19:16 |只看作者 |坛友微信交流群
statax 发表于 2017-5-8 09:46
没有得到解决。有办法上来通个气,有论坛币奖励。
我已经解决了。问题在于空间权重矩阵没有标准化,只要用standardize命令对空间权重矩阵进行标准化就行了。

使用道具

10
日永昶 发表于 2017-5-29 20:17:51 |只看作者 |坛友微信交流群
tianxiaqingquan 发表于 2017-5-8 10:19
我已经解决了。问题在于空间权重矩阵没有标准化,只要用standardize命令对空间权重矩阵进行标准化就行了。 ...
谢谢哈!遇到同样的问题,终于找到解决的办法了。好心人~~~

使用道具

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

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

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

GMT+8, 2024-4-27 04:41