跨发布: 德语:http://www.stata-forum.de/post1716.html#p1716 英语:http://www.talkstats.com/showthread.php/47299-sales-growth-rate-with-multiple-groups-conditions
我想计算Stata不同公司集团的年销售增长率。公司按变量country
和industry
分组。
我总结了每个组的销售额(称为sales_total
:同等country
,industry
和year
组中所有公司的销售额:
bysort country year industry: egen sales_total = sum(sales)
我有一个更大的样本,但我尝试用较小的样本来计算增长率。 p>
我尝试了多种组合,例如:
egen group = group(year country industry)
xtset group year, yearly
bys group: g salesgrowth = log(D.sales_total)
或
bysort group: gen salesgrowth=(sales[_n]-sales[_n-1])/sales[_n-1]*
还有tsset
。
并尝试了以下答案: Generate percent change between annual observations in Stata?
但我总是收到错误消息,例如
repeated time values within panel
或
repeated time values within sample
由于group
等变量中的数字重复。
您能帮助我找出每个群体(同一country
和industry
的公司)的年增长率吗?
更新
这里再次举例说明我的观察结果(通常在10年内有10,000家公司)。还有缺失值(销售,行业,年份,国家)
公司 - 国家 - 年 - 行业 - 销售-a -------- usa ------- 1 ---------- 1 ---------- 300
-a --------- USA ------- 2 ---------- 1 -------- 4000
-b --------- GER ------- 1 ---------- 1 -------- 200
-b --------- GER ------- 2 ---------- 1 -------- 400
-c --------- USA ------ 1 ---------- ---------- 1 100
-c --------- USA ------ 2 ---------- ---------- 1 300
-d --------- USA ------ 1 ---------- ---------- 1 400
-d --------- USA ------ 2 ---------- ---------- 1 200
-e --------- USA ------ 1 ---------- ---------- 1 7000
-e --------- USA ------ 2 ---------- ---------- 1 900
-f ---------- ------ GER 1 ---------- ---------- 2 100
-f --------- GER ------ 2 ---------- ---------- 2 700
-h --------- GER ------ 1 ---------- ---------- 2 700
-h --------- GER ------ 2 ---------- ---------- 2 600
-.................等............................ .........
我尝试了你提到的编程,但是我得到了一些需要在同一行中使用的变量,而不是在同一列中(我可能需要)。是否有可能保留数据而不重新整形,将它们保持在一排,例如对观察结果进行分组:
egen group=group(industry year country)
然后尝试
xtset group year
bysort group: sales_growth = log(D.sales)
要么
bysort group: gen sales_growth = (sales[_n]-sales[_n-1])/sales[_n-1]
谢谢!
答案 0 :(得分:2)
这里的策略是试图以错误的解决方案工作。你应该
collapse (sum) sales, by(country year industry)
然后使用该缩小的数据集。根据您的需求,您可能需要使用reshape
重新构建数据,以便不同的行业提供不同的变量。然后
xtset country year
然后增长率将更容易计算。