Stata中的面板数据的xtsum - 了解T-bar

时间:2018-03-20 23:19:03

标签: statistics stata

我正在使用xt命令(包括xtsum)来分析Stata中的面板数据。我要么误解“T-bar”的输出,要么在我的一个变量中犯了错误。

我的xtsum输出如下所示:

Variable          Mean    Std. Dev.  Min        Max      Observations

hours  overall  43.83559  31.24379   1          160         N = 1215108
       between            25.89261   1          160         n =   44773
       within             19.69052  -92.83108   188.2023    T-bar = 27.1393

我的理解是T-bar代表每个小组变量的平均观察数(在这种情况下,每人)。但是,我还有一个变量设置,用于计算每个人的观察数量:

sort hcw_id pp_id
egen ppcount = max(pp_id), by(hcw_id)

pp_id是每人的观察ID,hcw_id是人ID。我已经检查了数据编辑器,以验证pp_id正在计算每个人的观察值,ppcount正在为每个人取得pp_id的最大值。例如,如果一个人有10条记录,则每条记录将用1-10标记为pp_id,而ppcount将为10。

这是令人困惑的事情:ppcount的平均值是46.这应该意味着数据中的人平均有46个观察值。但为什么这与xtsum输出中的T-bar如此不同?我是否误解了xtsum文档中的内容或者我的ppcount变量是否已关闭?

顺便说一句,我只是想到了另一种双重检查的方式 - pp_id计算每人的工资单记录数。基于其他变量,我知道每个人已经工作了大约一年半,这大约是每两周两次的工资期。这表明ppcount是准确的,而T-bar正在测量不同的东西。

是否有人熟悉xtsum并能够对此有所了解?谢谢!

1 个答案:

答案 0 :(得分:0)

您没有向我们展示您用于计算平均值的代码,但您的ppcount平均值最为可能,因为您将每个人的平均值与他拥有的支付期间成比例。例如,如果你有两个观察结果,一个有2个周期,一个有6个周期,你 想要计算T-bar =(2 + 6)/ 2 = 4,但你用无条件summarize计算(2 + 2 + 6 + 6 + 6 + 6 + 6 + 6)/ 8 = 5。

尝试(假设支付期从1开始编号)

sum ppcount if pp_id = 1

以下是一些显示此问题的代码:

. clear

. input id t

            id          t
  1. 1 1
  2. 1 2
  3. 2 1
  4. 2 2
  5. 2 3
  6. 2 4
  7. 2 5
  8. 2 6
  9. end

. set seed 10011979

. gen y = rnormal(id,1)

. list, sepby(id) noobs

  +--------------------+
  | id   t           y |
  |--------------------|
  |  1   1   -.0547995 |
  |  1   2    1.713224 |
  |--------------------|
  |  2   1     2.17048 |
  |  2   2    1.184764 |
  |  2   3    1.765206 |
  |  2   4    -.027979 |
  |  2   5    1.975493 |
  |  2   6    .6068434 |
  +--------------------+

. xtset id t
       panel variable:  id (unbalanced)
        time variable:  t, 1 to 6
                delta:  1 unit

. xtsum y

Variable         |      Mean   Std. Dev.       Min        Max |    Observations
-----------------+--------------------------------------------+----------------
y        overall |  1.166654    .890562  -.0547995    2.17048 |     N =       8
         between |             .3181431   .8292124   1.279135 |     n =       2
         within  |             .8658653  -.1404596      2.058 | T-bar =       4

. sort id t

. egen t_count = max(t), by(id)

. sum t_count

    Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
     t_count |          8           5     1.85164          2          6

. sum t_count if t==1

    Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
     t_count |          2           4    2.828427          2          6