1

交叉发布:德语: http: //www.stata-forum.de/post1716.html#p1716 英语:http ://www.talkstats.com/showthread.php/47299-sales-growth-rate-with-multiple -组条件

我想计算Stata中不同公司组的年销售额增长率。这些公司按变量country和分组industry

我对每个组的销售额求和(称为sales_total:一组中所有公司的销售额相等countryindustryyear):

bysort country year industry: egen sales_total = sum(sales)

我有一个更大的样本,但我试图用更小的样本来计算增长率。

我尝试了多种组合,例如:

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.

并从这个答案中尝试了一切: 在Stata的年度观察之间产生百分比变化?

但我总是收到错误消息,例如

  repeated time values within panel 

或者

 repeated time values within sample

由于变量中的数字重复,例如group.

你能帮我找出每个组的年增长率(来自同一country&的公司industry)吗?

更新

这里又是我观察的一个例子(通常在 10 年内有 10,000 家公司)。也有缺失值(销售额、行业、年份、国家/地区)

公司 -- 国家 -- 年份 -- 行业 -- 销售额

-a --------美国-------1------------1----------300

-a---------美国-------2------------1--------4000

-b---------ger--------1------------1--------200

-b---------ger--------2------------1--------400

-c---------usa------1----------1----------100

-c---------美国------2----------1----------300

-d---------美国------1----------1----------400

-d---------美国------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

-.................ETC............................... ……

我尝试了您提到的编程,但我有几个变量需要在同一行而不是同一列中使用(我可能需要)。是否有可能保留数据而不进行整形,将它们保持在一行中,例如对观察结果进行分组:

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]

谢谢!

4

1 回答 1

2

这里的策略是尝试在错误的分辨率级别上工作。你应该

collapse (sum) sales, by(country year industry) 

然后使用该减少的数据集。根据您确切想要的内容,您可能需要重新构建该数据,reshape以便不同的行业提供不同的变量。然后

xtset country year 

然后增长率将更容易计算。

于 2013-07-19T14:32:06.873 回答