2014-02-15 827 views
0

我不知道Stata是否可以做到这一点,但我使用tabulate命令很多,以找到频率。例如,我有一个取值为0到1的成功变量,我想知道某个观察组的成功率,即tab success if group==1。我想知道是否可以做这种操作的反面。也就是说,我想知道是否可以找到频率大于或等于15%的“组”的值。Tabulate命令Stata

有没有这样的命令?

感谢

举个例子

sysuse auto 
gen success=mpg<29 

现在我想找到价格值,使得成功变量的频率比例如75%以上。

+0

你的问题包含了自己的答案。你可以做你知道该怎么做,因为你可以写下一个条件,如果可以使用已知的变量和/或常数来解释。所以,你需要能够做到这一点。通常需要一些数据操作来达到这一点。根据细节,可能会有部分例外情况,例如查看SSC的'groups'。 –

+0

我不知道你说的是诚实的。我想知道是否有一个命令,而不是告诉我的频率,我可以在频率上,它会给我的价值。那可能吗? – Pcarlitz

+0

我在说(例如)如果你有一个频率变量,那么你自然可以用这个变量指定一个条件。 “检查SSC组群”中哪部分你不明白? –

回答

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 | 
    +----------------------------------+ 
+0

感谢您推动这项工作。由于您创建了包含计数的本地宏'nobs',因此您应该使用它。至少在其他情况下,'r(N)'可以在单独的命令后包含其他内容或根本不包含任何内容。另外'groups'可以让你选择百分比频率。 –

+0

所以这只是列出了一个变量的频率。我想知道如果我能找到一个成功变量的频率发生在另一个变量的某个层次上。例如,变量rep78的值是多少,以致成功的频率大于.15。 – Pcarlitz

+0

你需要在这里定义什么是成功率? – Metrics

1

我不确定我是否完全了解您的问题/情况,但我相信这可能会有用。你可以用egen这个等于成功的平均值的变量,然后看看哪些观察值具有你正在寻找的平均值(成功)的值。

egen avgsuccess = mean(success), by(group) 
tab group if avgsuccess >= 0.15 
list group if avgsuccess >= 0.15 

这是否实现你想要的?