Stata:gen 和 egen 中的 sum() 函数异同

发布时间:2020-06-13 阅读 329

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

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

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

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

作者:连玉君 ( lianxh.cn )


目录


1. 此求和非彼求和

实证分析中,经常需要进行加总计算。Stata 中的 generate 命令以及更为强大的 egen 命令都提供了 sum() 函数。然而,需要特别注意的是,二者的功能有很大的差异。先看看如下范例:

clear
input x
      1
      2
      3
      4
end

 gen sx_gen  = sum(x)
egen sx_egen = sum(x)

list , clean noobs

结果如下:

. list , clean noobs
    x   sx_gen   sx_egen  
    1        1        10  
    2        3        10  
    3        6        10  
    4       10        10  

可见,gen 提供的 sum() 函数执行的是「累积加总」,而 egen 提供的 sum() 函数则进行「整体加总」。

2. 扩展应用:分组求和

计算各个年度的销售总额 (sx_egen),以及每家公司当年的市场份额 (sale_per):

clear
input id     year    sale  
      601    2011    0.1
      602    2011    0.2
      601    2012    0.3
      602    2012    0.4
	  603    2012    0.5
end

bysort year:  gen sx_gen  = sum(sale)
bysort year: egen sx_egen = sum(sale)

gen sale_per = sale/sx_egen*100 //市场份额

format sx* sale* %3.1f
list, noobs sepby(year)

结果如下:

. list, noobs sepby(year)

  +-------------------------------------------------+
  |  id   year   sale   sx_gen   sx_egen   sale_per |
  |-------------------------------------------------|
  | 601   2011    0.1      0.1       0.3       33.3 |
  | 602   2011    0.2      0.3       0.3       66.7 |
  |-------------------------------------------------|
  | 601   2012    0.3      0.3       1.2       25.0 |
  | 602   2012    0.4      0.7       1.2       33.3 |
  | 603   2012    0.5      1.2       1.2       41.7 |
  +-------------------------------------------------+

用法1:求取赫芬达尔指数

基于上述 egen 命令的 sum() 函数运算方法,很容易求取用于衡量行业集中度的指标 ——「赫芬达尔指数 HHI」。若不想自己写命令,也可以直接使用我此前编写的外部命令 hhi5,只需在 Stata 命令窗口中执行如下命令即可安装:

ssc install hhi5, replace

用法也很简单:

. sysuse nlsw88,clear
. gen sale = ln(wage)
. hhi5 sale, by(industry)
. hhi5 sale hour, by(industry race) prefix(hhi5) top(5) minobs(10)
. br industry race hhi*

用法 2:计算累计超额回报率

前文已经提及,generate 提供的 sum() 函数为「累计求和」。一个典型的应用便是在「事件研究法」中求取股票的 累积超额回报率

有关事件研究法的详细介绍,参见连享会此前的热门推文「Stata:短期事件研究法一文读懂」(也可以查看 「微信版」)

3. 扩展阅读

如下命令也提供了能够满足更高阶需求的求和函数,有兴趣的读者可以自行挖掘,我们也会在后续的推文中就此专题进行详细分析。

  • help egenms // egen function to create a moving sum.
  • help egenmore 命令的 rsum() 函数
  • help egenmore 命令的 sumoth(exp) 函数
  • help tscollap //to compact timeseries into dataset of means, sums, end-of-period values

相关课程

连享会-直播课 上线了!
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