在 Stata 中创建变量的最高和最低四分位数

to create highest & lowest quartiles of a variable in Stata

这是我用来根据 4 个四分位数划分一个 Winsorised 和居中变量(num_exp,表示有经验的经理的数量)的 Stata 代码,然后生成其中的最高和最低四分位数虚拟变量:

 egen quartile_num_exp = xtile(WC_num_exp), n(4)
    gen high_quartile_numexp = 1 if quartile_num_exp==4
    (1433 missing values generated);
    gen low_quartile_num_exp = 1 if quartile_num_intlexp==1
    (1062 missing values generated);

谢谢大家 - 这是link

https://dl.dropboxusercontent.com/u/64545449/No%20of%20expeienced%20managers.dta

我确实尝试了 Aspen Chen 和 Roberto 的建议 - Chen 创建高四分位数假人的方法给出了与我之前和 Roberto 相同的结果 - 对于相同的行,两个四分位数都显示为 1 - 这怎么可能?

这里忘了说了,确实有很多关系——原来的变量W_num_exp的取值范围是0到7,均值为2.126618,我从[=32=的每次观察中减去] 得到 WC_num_exp.

tab high_quartile_numexp shows the same problem I originally had
  le_numexp |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |      1,433       80.64       80.64
          1 |        344       19.36      100.00
------------+-----------------------------------
      Total |      1,777      100.00

此外,我检查了 egenmore 已经安装在我的 Stata 版本 13.1

我不明白的是为什么基于最高四分位数的虚拟变量没有低于它的 75% 的观测值(我总共有 1777 个观测值):根据我的理解,这个虚拟变量应该是 cut -off 点以上正好是总数的 25%。的观察结果应该是谎言(我们可以看到它只包含 19.3% 的观察结果)。

我在为 high_quartile low_quartile 虚拟变量编写正确的 Stata 代码时做错了什么吗?

考虑以下代码:

clear
set more off

sysuse auto
keep make mpg

*-----

// your way (kind of)
egen mpg4 = xtile(mpg), nq(4)

gen lowq = mpg4 == 1
gen highq = mpg4 == 4

*-----

// what you want
summarize mpg, detail
gen lowq2 = mpg < r(p25)
gen highq2 = mpg < r(p75)

*-----

summarize high* low*
list

现在查看列表以查看发生了什么。

参见help stored results

提供的数据集回答了这个问题。考虑表格:

. tab W_num_exp

num_execs_i |
   ntl_exp, |
 Winsorized |
   fraction |
        .01 |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |        297       16.71       16.71
          1 |        418       23.52       40.24
          2 |        436       24.54       64.77
          3 |        282       15.87       80.64
          4 |        171        9.62       90.26
          5 |        109        6.13       96.40
          6 |         34        1.91       98.31
          7 |         30        1.69      100.00
------------+-----------------------------------
      Total |      1,777      100.00

当且仅当存在累积百分比为 25、50、75 的值时,才能在 4 个基于四分位的 bin 中的每一个中提供完全相等的数字。不存在这样的值。您必须使用近似值。近似值可能很糟糕,但唯一的选择是将具有相同值的观察值任意分配给不同的 bin 以平衡频率,这在统计上是站不住脚的。

(对于 4 个 bin 等,观察的数量需要是 4 的倍数,对于完全相等的频率也是一个复杂问题,这对小数据集来说很难,但这不是这里的主要问题。)