在固定效应回归中仅保留具有 non-zero 个观察结果的案例
Keeping only the cases with non-zero observations in a fixed effects regression
我目前正在处理 SOEP 面板数据(2002 年到 2010 年),我 运行 遇到了一些麻烦。我正在尝试 运行 固定效应回归,其中 child 津贴作为因变量,人年作为自变量。我只想在样本中包括那些给予 child 至少一年津贴的个人。我假设 没有 在此时间段内的任何时候给他们 child 津贴的个人会自动删除,因为固定效应回归措施在变化范围内并且不包括具有给定变量没有变化(想想队列)。那将是我的问题:xtreg, dvar ivar1 ivar2 ivarx, fe vce(cluster id)
会自动删除给定变量没有变化的个体,还是我必须手动将它们从回归中删除?如果是这样,我将如何删除这些人?
编辑:
我只想删除在观察期间不提供 children 任何津贴的个人,同时包括至少提供一次的人。我最终使用了以下代码:
*Generate variable for cases with at least one non-zero value over the observation period
bysort id (year): egen sumofallowance= sum(childallowance)
*Run a fixed effects regression using this variable as a condition.
xtreg childallowance idyear if sumofallowance>0, fe vce(cluster id)
我不确定 Stata 是否会自动执行此操作,事实证明 Stata 不会,因为我的观察值减少了大约 9,000。
如果您知道自己想要 运行 的样本,那么对其进行回归总是一个好主意,明确地将回归限制在该样本上。特别是如果您对所使用的命令如何处理无变化、缺失值等问题没有非常精确的理解。如果您希望您的工作可重现,那么即使您了解命令的工作原理,这也是一个很好的做法它使您的代码对于可能也不理解此命令的其他人更具可读性。
我建议您创建一个名为 sample
的变量,您将所有要包含在回归中的观察值设置为 1,然后将 xtreg
限制为该样本。在您的情况下,它将是这样的:
*Create a variable that is 1 for the intended sample
gen sample = (dvar > 0 & !missing(dvar)) // Sets sample = 1 if non-zero and non-missing, otherwise set to 0
*Run regression restricted to sample
xtreg dvar ivar1 ivar2 ivarx if sample == 1, fe vce(cluster id)
您可能需要根据 dvar
中数据的格式编辑生成 sample
的行。
最后,xtreg
可能会因为其他原因放弃观察,因此请确保回归中的 N 与您在 tab sample, m
中获得的 1 的数量相匹配,并确保这也符合您的期望您心目中的示例。
我目前正在处理 SOEP 面板数据(2002 年到 2010 年),我 运行 遇到了一些麻烦。我正在尝试 运行 固定效应回归,其中 child 津贴作为因变量,人年作为自变量。我只想在样本中包括那些给予 child 至少一年津贴的个人。我假设 没有 在此时间段内的任何时候给他们 child 津贴的个人会自动删除,因为固定效应回归措施在变化范围内并且不包括具有给定变量没有变化(想想队列)。那将是我的问题:xtreg, dvar ivar1 ivar2 ivarx, fe vce(cluster id)
会自动删除给定变量没有变化的个体,还是我必须手动将它们从回归中删除?如果是这样,我将如何删除这些人?
编辑:
我只想删除在观察期间不提供 children 任何津贴的个人,同时包括至少提供一次的人。我最终使用了以下代码:
*Generate variable for cases with at least one non-zero value over the observation period
bysort id (year): egen sumofallowance= sum(childallowance)
*Run a fixed effects regression using this variable as a condition.
xtreg childallowance idyear if sumofallowance>0, fe vce(cluster id)
我不确定 Stata 是否会自动执行此操作,事实证明 Stata 不会,因为我的观察值减少了大约 9,000。
如果您知道自己想要 运行 的样本,那么对其进行回归总是一个好主意,明确地将回归限制在该样本上。特别是如果您对所使用的命令如何处理无变化、缺失值等问题没有非常精确的理解。如果您希望您的工作可重现,那么即使您了解命令的工作原理,这也是一个很好的做法它使您的代码对于可能也不理解此命令的其他人更具可读性。
我建议您创建一个名为 sample
的变量,您将所有要包含在回归中的观察值设置为 1,然后将 xtreg
限制为该样本。在您的情况下,它将是这样的:
*Create a variable that is 1 for the intended sample
gen sample = (dvar > 0 & !missing(dvar)) // Sets sample = 1 if non-zero and non-missing, otherwise set to 0
*Run regression restricted to sample
xtreg dvar ivar1 ivar2 ivarx if sample == 1, fe vce(cluster id)
您可能需要根据 dvar
中数据的格式编辑生成 sample
的行。
最后,xtreg
可能会因为其他原因放弃观察,因此请确保回归中的 N 与您在 tab sample, m
中获得的 1 的数量相匹配,并确保这也符合您的期望您心目中的示例。