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

发布时间:2020-10-07 阅读 30

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程主页 https://gitee.com/arlionn/Course

作者:连玉君 (中山大学)
E-Mail: arlionn@163.com


目录


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. 其他解决方法

当然,还有其他解决方法,或许更为简洁。若有,请在下方留言或发邮件至 arlionn@163.com。

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD