在Stata中循环

时间:2015-12-07 00:59:19

标签: loops stata

我正在尝试对每个id运行回归。我还需要在特定内容中将其缩小到每年的回归范围。

tsset id date

forvalues i=1/3 {

eststo:quietly arch rtr mon tue wed thu fri lag1r lag2r if id == `i' & Year==`i', noconstant arch(1/1) tarch(1/1) garch(1/1) distribution(t)
}


esttab using d:\Return_reg.csv, append cells("b(fmt(8))") 

它返回以下错误:

  

没有观察。

我怀疑这是因为每个内容的年份不同。

我如何改进代码以实现目标?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,这是一个错字(除非你的年变量真的只取值1,2和3)。此外,tsset只需要一个参数;如果要声明面板数据,则需要使用xtset。请尝试以下方法:

xtset id date
levelsof Year, local(years) //create list containing all values of year
levelsof id, local(ids)     //create list containing all values of id
foreach id in `ids'{
    foreach yr in `years'{
        eststo: quietly arch rtr mon tue wed thu fri lag1r lag2r if id == `id' & Year==`yr', noconstant arch(1/1) tarch(1/1) garch(1/1) distribution(t)
    }
}