Stata由小组生成

时间:2015-04-09 13:16:12

标签: stata

我的代码发生了一件非常奇怪的事情。我有面板数据集,面板ID为 p_id ,我正在尝试使用panel_id创建另一个变量。我的代码是这样的,其中 p_id 是每个时间段内观察到的人的面板ID, marital_status x 是我想要的变量创建。

bys p_id: gen count =_N
bys p_id: gen count1 =_n
bys p_id: gen x= marital_status if count1 ==1

但是当我这样做时

tab x

每次运行此代码时,我都会获得不同的行数(行总数不会更改)。数字非常密集,但我需要了解为什么会发生这种情况。

1 个答案:

答案 0 :(得分:1)

虽然缺乏可重复的例子是不好的做法,但可以猜测发生了什么。第一行代码没有问题,但后两行与

具有相同的效果
bys p_id: gen x = marital_status if _n == 1

在单词中,新变量包含来自每组观察中第一次观察的婚姻状态数据 ,用于不同的p_id。但是p_id上的排序没有说明具有相同p_id的观测值的排序顺序,并且如果没有足够的约束,则组内排序顺序不可重现。所以第一次观察很容易就会有所不同(除非自然每组只有一个观察结果),你报告的结果。

具体地说,假设有p_id 42的3个观察值。那么这些观察的6个可能顺序中的任何一个与p_id上的排序一致。等等。

据推测,每组的观察结果都有一些特别之处。您需要更多地了解您的数据以及您希望获得更全面的建议,但这个问题不是一个难题。