使用Stata仅在面板回归中包含完整的组

时间:2013-12-17 14:15:10

标签: panel stata

我有一组面板数据,但并非所有人都在场。我看到当我运行xtreg时,每组有1-4次观察,平均值为1.9。我想只包括那些有4个观察的人。有什么方法可以轻松地做到这一点吗?

1 个答案:

答案 0 :(得分:2)

据我所知,您希望仅在回归中包含恰好有4个观察值的组。如果是这种情况,那么一种解决方案是计算每组的观察数量并使用if调整回归:

clear all
set more off

webuse nlswork
xtset idcode

list idcode year in 1/50, sepby(idcode)

bysort idcode: gen counter = _N

xtreg ln_w grade age c.age#c.age ttl_exp c.ttl_exp#c.ttl_exp tenure ///
    c.tenure#c.tenure 2.race not_smsa south if counter == 12, be

在此示例中,回归以具有12个观察值的组为条件。 xtreg命令提供(除其他外):

  

obs = 1881

     

组数= 158

您可以将其与不使用if运行回归的结果进行比较:

  

obs = 28091

     

组数= 4697

正如@NickCox评论的那样,如果你不介意丢失观察结果,你可以dropkeep(联合国)所需的群体:

bysort idcode: drop if _N != 4

bysort idcode: keep if _N == 4

后跟无条件xtreg(即没有if)。

请注意,这两种方法都会计算缺失,因此您可能需要考虑到这一点。

另一方面,您可能想要考虑为什么要在分析中丢弃该数据。