Stata: 分年度-行业计算销售额前四名的行业占比

作者:连玉君 (知乎 | | 码云)

Stata连享会   计量专题 || 精品课程 || 推文 || 公众号合集

Stata: 分年度-行业计算销售额前四名的行业占比_第1张图片
点击查看完整推文列表

2020寒假Stata现场班 (北京, 1月8-17日,连玉君-江艇主讲),「+助教招聘」

Stata: 分年度-行业计算销售额前四名的行业占比_第2张图片
2020寒假Stata现场班

1. 问题

在 Stata 中如何分年度计算一个行业当中排名前四位的公司的总收入占整个行业的收入比重?

Note: 如果是算一般的赫芬达尔指数,可以使用连玉君老师编写的 hhi5 命令,很便捷。安装命令的方法为:在 Stata 命令窗口中执行 ssc install hhi5, replace 即可。

本例的情况稍微特殊一些,需要自己写命令,但核心思路与 hhi5 是一样的。有兴趣的读者可以使用 adoedit hhi5.ado 打开 hhi5 命令的原始 ado 文件,以便知晓内部计算思路和过程。

连享会计量方法专题……

2. 解决方法

我们先自行模拟生成一份 Panel data 数据。自己操作时,换用自己的数据即可。

2.1 自行模拟生成一份数据

*---
*-A: Data Generation: simulation

clear
set obs 50  // N=50 家
gen id = _n
egen industry = cut(id), at(1(10)55)  // 行业
expand 4    // T=4 年 
bysort id: gen year = _n + 2010
xtset id year 
gen sale = int(100+rnormal()*20)

生成的数据长这样:

. gsort year industry -sale
. list in 1/20, sepby(year industry) noobs

  +-----------------------------+
  | id   industry   year   sale |
  |-----------------------------|
  | 10          1   2011    137 |
  |  1          1   2011    119 |
  |  6          1   2011    102 |
  |  4          1   2011     99 |
  |  3          1   2011     97 |
  |  2          1   2011     97 |
  |  9          1   2011     96 |
  |  7          1   2011     85 |
  |  8          1   2011     84 |
  |  5          1   2011     82 |
  |-----------------------------|
  | 11         11   2011    135 |
  | 15         11   2011    134 |
  | 20         11   2011    133 |
  | 12         11   2011    119 |
  | 13         11   2011    117 |
  | 16         11   2011    104 |
  | 17         11   2011    101 |
  | 19         11   2011     95 |
  | 14         11   2011     93 |
  | 18         11   2011     88 |
  +-----------------------------+

2.2 计算目标变量

*---
*-B: The percentage

gsort year industry -sale
bysort year industry: gen sale123 = _n  //排序
list in 1/20, sepby(year industry) noobs

*-行业总收入
bysort year industry: egen sale_ind = total(sale)
*-Top 4
bysort year industry: egen sale_top4 = total(sale) if sale123<=4
*-Ratio
gen ratio4_temp = sale_top4/sale_ind
*-expand
bysort year industry: egen ratio4 = min(ratio4_temp)

最终的数据长这样:

. list in 1/20, sepby(year industry) noobs  

  +-------------------------------------------------------------------------------------+
  | id   industry   year   sale   sale123   sale_ind   sale_t~4   ratio4_~p      ratio4 |
  |-------------------------------------------------------------------------------------|
  |  5          1   2011    130         1       1016        498   .49015748   .49015748 |
  |  7          1   2011    125         2       1016        498   .49015748   .49015748 |
  |  3          1   2011    124         3       1016        498   .49015748   .49015748 |
  |  9          1   2011    119         4       1016        498   .49015748   .49015748 |
  | 10          1   2011    106         5       1016          .           .   .49015748 |
  |  4          1   2011     95         6       1016          .           .   .49015748 |
  |  2          1   2011     86         7       1016          .           .   .49015748 |
  |  1          1   2011     83         8       1016          .           .   .49015748 |
  |  6          1   2011     74         9       1016          .           .   .49015748 |
  |  8          1   2011     74        10       1016          .           .   .49015748 |
  |-------------------------------------------------------------------------------------|
  | 18         11   2011    130         1        984        493   .50101626   .50101626 |
  | 15         11   2011    126         2        984        493   .50101626   .50101626 |
  | 19         11   2011    124         3        984        493   .50101626   .50101626 |
  | 17         11   2011    113         4        984        493   .50101626   .50101626 |
  | 13         11   2011    110         5        984          .           .   .50101626 |
  | 16         11   2011     92         6        984          .           .   .50101626 |
  | 14         11   2011     91         7        984          .           .   .50101626 |
  | 11         11   2011     86         8        984          .           .   .50101626 |
  | 12         11   2011     68         9        984          .           .   .50101626 |
  | 20         11   2011     44        10        984          .           .   .50101626 |
  +-------------------------------------------------------------------------------------+

3. 其他解决方法

当然,还有其他解决方法,或许更为简洁。若有,请在下方留言或发邮件至 [email protected]

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 推文同步发布于 CSDN 、 和 知乎Stata专栏。可在百度中搜索关键词 「Stata连享会」查看往期推文。
  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
  • 欢迎赐稿: 欢迎赐稿。录用稿件达 三篇 以上,即可 免费 获得一期 Stata 现场培训资格。
  • E-mail: [email protected]
  • 往期精彩推文:一网打尽

Stata: 分年度-行业计算销售额前四名的行业占比_第3张图片
欢迎加入Stata连享会(公众号: StataChina)

I5C5OhRqjkOw)

你可能感兴趣的:(Stata: 分年度-行业计算销售额前四名的行业占比)