For loop Stata/事件研究

For loop Stata/事件研究,for-loop,stata,For Loop,Stata,我目前正在对2836家公司的样本进行几项活动研究。我根据几个因素(由FF编制)对每家公司的回报进行回归。因此,我编写了以下循环: gen predicted_return4=. forvalues i = 1(1)2836 { l id acq_company_id if id==`i' & dif==0 reg ret ${ff} if id==`i' & estimation_window==1 predict p4 if id==`i' replace pre

我目前正在对2836家公司的样本进行几项活动研究。我根据几个因素(由FF编制)对每家公司的回报进行回归。因此,我编写了以下循环:

 gen predicted_return4=.
 forvalues i = 1(1)2836 { 
 l id acq_company_id if id==`i' & dif==0
 reg ret ${ff} if id==`i' & estimation_window==1
 predict p4 if id==`i'
 replace predicted_return4 = p4 if id==`i' & event_window==1
 drop p4
 }
这个循环运行得相当好。然而,经过几次回归后,出现了一个错误(见下文)


在检查数据后,我没有发现任何遗漏的观察结果。有没有人已经处理过同样的问题?是否有一种方法可以分别避免丢失值以忽略丢失值?

如果丢失的值足够多,则会出现
错误2000
。你应该想抓住它。试试像这样的东西

gen predicted_return4=.
forvalues i = 1(1)2836 { 
    l id acq_company_id if id==`i' & dif==0
    capture noisily reg ret ${ff} if id==`i' & estimation_window==1
    quietly if _rc == 0 { 
        predict p4 if id==`i'
        replace predicted_return4 = p4 if id==`i' & event_window==1
        drop p4
    } 
}
gen predicted_return4=.
forvalues i = 1(1)2836 { 
    l id acq_company_id if id==`i' & dif==0
    capture noisily reg ret ${ff} if id==`i' & estimation_window==1
    quietly if _rc == 0 { 
        predict p4 if id==`i'
        replace predicted_return4 = p4 if id==`i' & event_window==1
        drop p4
    } 
}