楼主: peyzf
2101 7

[Stata高级班] 循环运算时跳过不能收敛的回归 [推广有奖]

  • 1关注
  • 63粉丝

警督

大师

59%

还不是VIP/贵宾

-

威望
2
论坛币
566735 个
通用积分
200.4746
学术水平
218 点
热心指数
240 点
信用等级
140 点
经验
132065 点
帖子
12769
精华
0
在线时间
2976 小时
注册时间
2007-9-8
最后登录
2025-10-10

楼主
peyzf 发表于 2012-12-14 09:28:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

在运行循环语句时,中途有一个回归不能收敛,如何让其跳过一些不能收敛(甚至出错)的程序,并执行接下来的操作?

谢谢。

二维码

扫码加我 拉你入群

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

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

关键词:循环语句 接下来 收敛 如何

沙发
arlionn 在职认证  发表于 2012-12-14 16:20:55
不知具体是什么命令?

藤椅
peyzf 发表于 2012-12-14 16:32:40
譬如,
local yy "lic_int  rd_int am_newp por_newp    rd_dum"    //
local xx "op_out com_hpy tec_lev iso tec_sou add hea_add  "
foreach y of varlist `yy' {  
foreach x of varlist `xx' {
xi: reg `y'  i.`x'*n_tri i.cou i.ind i.year i.own wor sq_wor, robust
est store `y'_`x'
}

在运行过程中,  当被解释变量为  rd_dum , 解释变量为 add 时,结果不能收敛。
然后就一直不能跳出来。遇到这种情况,能否让其自动继续运行接下来的程序?

谢谢。

板凳
peyzf 发表于 2012-12-14 16:34:11
尤其是非线性模型时, 如 probit ,其在很多情况下都不能收敛。显示not concave.

报纸
arlionn 在职认证  发表于 2012-12-16 22:15:50
如果是 OLS 的话,怎么会出现不能收敛的情形呢?对于 probit 和 Logit 倒是有可能 not concave。
我觉得对于你在三楼提到的帖子,只需把那两个不能估计出结果的情形删掉即可,或者在循环语句中增加两条控制语句,当被解释变量为 dum_RD 时不做回归即可。

地板
peyzf 发表于 2012-12-17 02:03:42
一位学友认为可以通过
set maxiter  #
foreach y of var `yy'{
foreach x of var `xx'{  
cap xi: prob `y'  i.`x', r
if !_rc est sto `y'_`x'
}
}

来解决?
设定set maxiter  1000
我发现之后可以得到回归结果,如果dum_rd不收敛,设定最大迭代次数后,其会给出结果,这个结果的估算是不是有问题?

7
arlionn 在职认证  发表于 2012-12-17 10:24:08
这是个解决办法。
不过,如果人为设定迭代次数,虽然能够得到结果,但并不是全局最优解。
就好像爬 1000 米的山,如果你设定爬山的时间只有半个小时,可能爬到 500 米时间就到了,这显然每到山顶。

8
peyzf 发表于 2012-12-17 15:57:09
有道理。谢谢。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 05:46