关于Stata中tabstat命令的输出,我有一个相当简单的问题。
更具体地说,我有一个大型的面板数据集,其中包含9年时间内的数十万个观察值。
上下文:
bysort year industry: egen total_expenses=total(expenses)
这一行应该创建年和行业的总费用(或一个特定行业的所有id在一个特定年的所有费用的总和)。
然后我使用:
tabstat total_expenses, by(country)
据我所知,tabstat应该以表格的形式显示费用的方式。请注意,ids因国家/地区而异。
在这种情况下,tabstat计算了特定国家所有行业所有9年的平均值,还是从我的面板数据中计算了每个国家的一年和一个行业的平均值?
如果在以下上下文中使用此命令,会发生什么情况:
bysort year industry: egen mean_expenses=mean(expenses)
tabstat mean_expenses, by(country)
tabstat是否创造了手段?这有点让人困惑。
发布于 2020-06-11 14:43:22
我不知道tabstat做了什么让您感到困惑,但您需要清楚计算意味着什么。你的数据集太大了,不能在这里发布,但为了你自己和我们的利益,创建一个小的沙箱数据集将帮助你了解正在发生的事情。你应该尝试正确答案(你想要的)是显而易见的,或者至少是容易计算的例子。
作为一个细节,你关于is不同于国家的解释本身就是令人困惑的。我的猜测是,你的数据是关于公司的,相关的标识符标识了公司。然后,您可以分别按industry和country以及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)组合选择单个值。
你的最后一个问题确实有同样的味道。您的命令所要求的是使用所有可用的数据进行暴力计算。实际上,您的计算是根据industry、country和year的任何组合中的观察值数量进行加权的。
我怀疑您需要了解两个命令(1) collapse和(2) egen,特别是它的tag()函数。如果你使用的是Stata 16,框架可能会对你有用。这应该适用于任何使用更高版本的未来读者。
https://stackoverflow.com/questions/62313650
复制相似问题