全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2580 7
2015-11-26
如题, 为了计算残差,编了个loop, 和坛友的大同小异。但是我是tsfill 之后的,因此有的日期肯定会遇上很多缺失,这样回归出来出现no sufficient observations 也没什么意外。

现在的问题是,我想做这么个操作,如果不能回归,stata可以自动吧这个res 全都用空值替代,同时跳到下一个`i'中回归。不然每次错误都要停下来,人也不可能跟在电脑前面盯着看。

请问怎么处理呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-26 15:16:08
再说的清楚一些:

现在需要这样: 让stata 判断 是否观测足够回归,如果不够,则跳到下一个`i' + 1 回归

好像用continue 可以做,我也看看。
二维码

扫码加我 拉你入群

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

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

2015-11-26 16:44:40
想出来了, 先用sum 分时间和company id 产生一个 r(N), 在产生一个变量mark r(N) > 需要的观测的

接着回归加个条件 if mark == 1  就可以了

但是还是不知道 if ... continue 怎么做

之前写了这样:
egen g = group(id)
qui sum ri

forvalue i = 1/$N {
qui replace st = r(N) if g ==`i'
    if st > 400 & g ==`i' {
    display "**Insufficient**"
    continue
    }
reg Y X if g==`i'
...

这里就有问题了 如果跳出循环,那还是对第i 个回归 还是不行
如果写成`i'+ 1, 那么第 `i' 个好像就没有回归上: 对每个不满足 if 条件的,全是回归第`i' + 1 个;
请问大家 该怎么修改呢?  
二维码

扫码加我 拉你入群

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

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

2015-11-26 16:55:22
额 之前那个以为可以的也不行。。。
二维码

扫码加我 拉你入群

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

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

2015-11-26 21:08:36
最后只好用最笨的办法,在reg之前先去掉不足的观测 再回归了。
不知道各位对if continue 这里有什么好方法吗?
二维码

扫码加我 拉你入群

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

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

2015-11-28 21:30:56
参考了
https://bbs.pinggu.org/thread-3610383-1-1.html
以及
https://bbs.pinggu.org/thread-2179020-1-1.html
之后,现在我是这么写的, 应该可以了:

gen a = .

forvalue j = 1 / $N {
capture {
   reg Y X
   predict a_ if e(sample), res
   replace a = a_ if e(sample)
}
   if _rc !=0 {
      di "**whatever u want**"
   }
}
e
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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