作者:连玉君 (知乎 | 简书 | 码云)
Stata连享会 精彩推文1 || 精彩推文2 [h2]一起学空间计量……[/h2]
空间计量专题-海报.jpg[h2]1. 问题[/h2]在 Stata 中如何分年度计算一个行业当中排名前四位的公司的总收入占整个行业的收入比重?
Note: 如果是算一般的赫芬达尔指数,可以使用连玉君老师编写的命令,很便捷。安装命令的方法为:在 Stata 命令窗口中执行- ssc install hhi5, replace
复制代码 即可。
本例的情况稍微特殊一些,需要自己写命令,但核心思路与是一样的。有兴趣的读者可以使用打开命令的原始 ado 文件,以便知晓内部计算思路和过程。
[h2]2. 解决方法[/h2]我们先自行模拟生成一份 Panel data 数据。自己操作时,换用自己的数据即可。
[h3]2.1 自行模拟生成一份数据[/h3]- *-A: Data Generation: simulation
复制代码
- egen industry = cut(id), at(1(10)55) // 行业
复制代码- bysort id: gen year = _n + 2010
复制代码- gen sale = int(100+rnormal()*20)
复制代码 生成的数据长这样:
- . gsort year industry -sale
复制代码- . list in 1/20, sepby(year industry) noobs
复制代码
- +-----------------------------+
复制代码- | id industry year sale |
复制代码- |-----------------------------|
复制代码- |-----------------------------|
复制代码- +-----------------------------+
复制代码 [h3]2.2 计算目标变量[/h3]
- 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)
复制代码- [code]bysort year industry: egen sale_top4 = total(sale) if sale123
|
|