澄清Stata中分类后使用tabstat的问题

时间:2020-06-10 21:46:05

标签: stata

关于Stata中tabstat命令的输出,我有一个相当简单的问题。

更具体地说,我有一个大型的面板数据集,其中包含在9年内数十万个观测值。

上下文:

bysort year industry: egen total_expenses=total(expenses)

此行应按年份和行业创建总支出(或某一特定行业在特定年份中所有ID的所有支出之和)。

然后我正在使用:

tabstat total_expenses, by(country)

据我了解,tabstat应该以表格形式显示支出方式。请注意,ID与国家/地区不同。

在这种情况下,tabstat计算出一个特定国家/地区所有行业的所有9年平均值,还是从我的面板数据中得出每个国家/地区每个行业一个年份的平均值?

如果在以下上下文中使用此命令会发生什么:

bysort year industry: egen mean_expenses=mean(expenses)

tabstat mean_expenses, by(country)

tabstat是否创造出经济手段?这有点令人困惑。

1 个答案:

答案 0 :(得分:1)

我不知道tabstat的作用是什么使您感到困惑,但是您需要清楚计算手段的含义。您的数据集太大了,无法在此处发布,但是就您和我们而言,创建一个很小的沙箱数据集将帮助您了解正在发生的事情。您应该尝试一些示例,在这些示例中,正确答案(您想要的)显而易见或至少易于计算。

作为详细信息,您对id与国家/地区不同的解释本身令人困惑。我的猜测是您的数据是关于公司的,并且相关标识符可以识别该公司。然后,您可以通过industrycountry进行聚合,并分别通过year进行聚合。

bysort year industry: egen total_expenses = total(expenses)

这会计算总计并将其分配给每个观察值。因此,如果对行业A和2013有123个观察值,则新变量中将有123个相同的总计值。

tabstat total_expenses, by(country) 

重要的细节是tabstat默认情况下会计算并显示平均值。除非另有说明,否则它仅适用于所有可用的观测值。 Stata没有记忆或不了解total_expenses的计算方式。在每个(industryyear)组合中,均值将不考虑不同的数字。 (industryyear)组合没有单个值的选择。

您的最后一个问题确实具有相同的味道。您的命令要求使用所有可用数据进行蛮力计算。实际上,您的计算将根据industrycountryyear的任何组合中观察值的数量进行加权。

我怀疑您需要了解两个命令(1)collapse和(2)egen,特别是其tag()功能。如果您使用的是Stata 16,框架可能对您有用。这应该适用于以后使用更高版本的读者。