我有一组面板数据,但并非所有人都在场。我看到当我运行xtreg
时,每组有1-4次观察,平均值为1.9。我想只包括那些有4个观察的人。有什么方法可以轻松地做到这一点吗?
答案 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评论的那样,如果你不介意丢失观察结果,你可以drop
或keep
(联合国)所需的群体:
bysort idcode: drop if _N != 4
或
bysort idcode: keep if _N == 4
后跟无条件xtreg
(即没有if
)。
请注意,这两种方法都会计算缺失,因此您可能需要考虑到这一点。
另一方面,您可能想要考虑为什么要在分析中丢弃该数据。