这是我用来分割Winsorised&的Stata代码。基于4个四分位数的中心变量(num_exp
,表示经验丰富的经理人数)此后产生最高&最低四分位数假人:
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);
谢谢大家 - 这里是链接
https://dl.dropboxusercontent.com/u/64545449/No%20of%20expeienced%20managers.dta
我确实尝试了Aspen Chen& Sons&罗伯托的建议 - 陈的创造高四分位假人的方法给出了与我之前相同的结果。罗伯托 - 两个四分位数显示同一行的1 - 这可能是怎么回事?
我忘了在这里提到确实有很多关系 - 原始变量W_num_exp
的范围是从0到7,平均值是2.126618,我从W_num_exp的每次观察中减去得到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
另外,我检查了我的Stata版本13.1中已安装egenmore
我无法理解为什么基于最高四分位数的虚拟变量没有低于它的75%的观测值(我总共有1777个观测值):据我所知,这个虚拟变量应该是截止点正好超过总数的25%。观察应该存在(因为我们可以看到它只包含19.3%的观察结果)。
在为high_quartile low_quartile虚拟变量编写正确的Stata代码时,我是否做错了什么?
答案 0 :(得分:2)
请考虑以下代码:
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
。
答案 1 :(得分:1)
提供的数据集回答了问题。考虑制表:
. 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个基于四分位数的区间中的每一个的完全相等的数字。不存在这样的值。你必须用近似值来做。近似可能是糟糕的,但是唯一的选择,任意地将具有相同值的观测值分配给不同的频率到均匀的频率,在统计上是不可理解的。
(对于完全相同的频率,需要为4个箱的4的倍数的观测数等,也是一个复杂因素,这对于小型数据集来说很难,但这不是主要问题。)