You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Stata中追踪同公司董事会成员变动并创建对应变量

在Stata中创建董事会变动标识变量

要实现同一家公司相邻年份间董事会成员变动的二元标识(变动则为1,无变动则为0),可以通过数据合并+分组汇总的方式完成,以下是针对你的示例数据的完整解决方案:

完整Stata代码

clear
input dirid firmid year
1 10 2006
2 10 2006
3 10 2006
1 10 2007
2 10 2007
3 10 2007
1 10 2008
2 10 2008
3 10 2008
4 10 2008
3 10 2009
4 10 2009
end

* 1. 排序数据并保存临时文件,用于后续跨年份合并
sort firmid year dirid
tempfile board_data
save `board_data'

* 2. 合并当前年份与上一年的董事数据,匹配同公司同董事的记录
merge m:1 firmid dirid using `board_data', keepusing(year) rename(year last_year)
replace last_year = last_year + 1  // 将上一年的年份转换为当前年份的对比基准

* 3. 标记新增/离职董事
gen is_new = (year == last_year) if _merge == 1  // _merge=1:仅当前年有该董事(新增)
gen is_left = (year != last_year) if _merge == 2  // _merge=2:仅上一年有该董事(离职)

* 4. 按公司-年份汇总,生成变动标识变量
bysort firmid year: gen changes_in_the_board_of_directors = (max(is_new, is_left, 0) == 1)

* 5. 清理中间变量,保留每个公司-年份的唯一标识记录
drop _merge last_year is_new is_left
bysort firmid year: keep if _n == 1

* 查看最终结果
list firmid year changes_in_the_board_of_directors, clean

代码解释

  1. 排序与临时文件:先按公司、年份、董事ID排序,确保后续合并和分组的准确性,同时保存原始数据为临时文件用于跨年份匹配。
  2. 跨年份合并:通过merge将每个董事的当前年份数据与历史数据匹配,重命名上一年的年份字段,方便对比当前年与上一年的董事存在情况。
  3. 新增/离职标记:利用_merge的结果判断董事是新增(仅当前年存在)还是离职(仅上一年存在)。
  4. 生成变动标识:按公司-年份分组,只要组内存在新增或离职董事,就将目标变量设为1,否则为0。
  5. 结果整理:清理中间变量后,保留每个公司-年份的唯一记录,方便后续分析使用。

输出结果

运行代码后,将得到如下结果:

firmid   year   changes_in_the_board_of_directors  
  1.      10   2006                                  .  
  2.      10   2007                                  0  
  3.      10   2008                                  1  
  4.      10   2009                                  1  

注:2006年没有上一年的对比数据,因此变量值为缺失;其余年份的结果完全符合需求:2007年无变动取0,2008年新增董事取1,2009年董事离职取1。

内容的提问来源于stack exchange,提问作者user173192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:50:21