我不知道Stata是否可以做到这一点,但我经常使用tabulate
命令来查找频率。例如,我有一个成功变量,取值为0到1,我想知道某组观察的成功率,即tab success if group==1
。我想知道我是否可以做这个操作的反过来。也就是说,我想知道我是否可以找到频率大于或等于15%的“组”值。
是否有命令执行此操作?
由于
作为一个例子
sysuse auto
gen success=mpg<29
现在我想找到价格的价值,例如成功变量的频率大于75%。
答案 0 :(得分:1)
我不确定我是否完全理解你的问题/情况,但我相信这可能有用。您可以egen
一个等于成功均值的变量,按组,然后查看哪些观察结果具有您正在寻找的平均值(成功)的值。
egen avgsuccess = mean(success), by(group)
tab group if avgsuccess >= 0.15
list group if avgsuccess >= 0.15
这会实现你想要的吗?
答案 1 :(得分:1)
根据@Nick:
ssc install groups
sysuse auto
count
74
#return list optional
local nobs=r(N) # r(N) gives total observation
groups rep78, sel(f >(0.15*`r(N)')) #gives the group for which freq >15 %
+---------------------------------+
| rep78 Freq. Percent % <= |
|---------------------------------|
| 3 30 43.48 57.97 |
| 4 18 26.09 84.06 |
+---------------------------------+
groups rep78, sel(f >(0.10*`nobs'))# more than 10 %
+----------------------------------+
| rep78 Freq. Percent % <= |
|----------------------------------|
| 2 8 11.59 14.49 |
| 3 30 43.48 57.97 |
| 4 18 26.09 84.06 |
| 5 11 15.94 100.00 |
+----------------------------------+