【问题标题】:Clarification on tabstat use after bysort in Stata关于在 Stata 中通过排序后使用 tabstat 的说明
【发布时间】:2020-06-10 21:46:05
【问题描述】:

关于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 创造手段手段吗?这有点令人困惑。

【问题讨论】:

标签: stata


【解决方案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 的计算方式没有记忆或理解。平均值不会考虑每个 (industry, year) 组合中的不同数字。没有为 (industry, year) 组合选择单个值。

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

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

【讨论】:

  • 关键是变量的早期生成方式对tabstat 处理它的方式没有影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
相关资源
最近更新 更多