首页 > 解决方案 > 计算董事会营业额

问题描述

我一直在尝试计算 2006 年至 2009 年间金融部门执行委员会的人员流动量。

为此,我的数据如下所示:

Year    Bank     Director       DirectorID    (ISIN, RoA, Size etc)
2005    Bank1    John Smith     120 
2005    Bank1    Barry Pooter   160
2005    Bank1    Jack Sparrow   2070

2006    Bank1    John Smith     120 
2006    Bank1    Barry Pooter   160
2006    Bank1    Jack Sparrow   2070

2007    Bank1    John Smith     120 
2007    Bank1    Barry Pooter   160
2007    Bank1    Jack Sparrow   2070

2008    Bank1    John Smith     120 
2008    Bank1    Carla Jansen   250
2008    Bank1    Jack Sparrow   2070 

2009    Bank1    John Smith     160
2009    Bank1    Carla Jansen   250
2009    Bank1    Mike Stata     875

从 2005 年到 2015 年,每家银行的数据重复。

现在我已经制作了一个营业额虚拟变量,0 = 没有变化,1 = 使用以下方法改变:

collapse(sum) DirectorID, by (ISIN, Year, Bank) gen interest = inrange(Year, 2006,2009)

bysort ID interest (DirectorID) : gen temp = DirectorID[1] != DirectorID[_N] replace temp = . if interest==0 bysort ID : egen changed = max(temp)

但是,我想将营业额作为进行了多少更改的实际变量,即:(假设 bank2 没有更改Turnover=0,bank3 进行了 6 次更改(6 个新经理进来)Turnover=6 ,bank4 进行了 4 次更改(4 个新经理进来)Turnover=4

Bank    Turnover (ISIN, RoA, Size, etc)
Bank1   2
Bank2   0
Bank3   6
Bank4   4

Stata(或SPSS,如果碰巧是这种情况)是否可以做到这一点?

但是,如果这样更容易,也可以以不同的方式计算。取决于我如何编写我的方法。如果可变营业额表示每年发生了多少变化,那就没Turnover2005问题了Turnover2006Turnover2007Turnover2008

最后,TMT 可能会增长,即 2005 年银行 1 的董事会有 14 名经理,而 2006 年他们聘请了 3 名新经理,但只解雇了 1 名。现在董事会有 16 名经理并进行了 3 次变更(3 名新经理)

标签: stata

解决方案


这可能会有所帮助。以下代码构建了一个数据集,该数据集由四个银行和五年的数据组成。是面板数据。该xtset命令允许您使用时间序列运算符,这些运算符在此处 ( https://www.youtube.com/watch?v=ik8r4WvrPkc ) 中有详细记录。(注:为了说明清楚,本例中银行 1 没有变化,银行 2 有两个变化,银行 3 有三个变化,以此类推)。

// Clear the session and other memory.
set more off
clear all

// Input reproducible data.
input year bank_num ceo_num

  2005          1       200
  2006          1       200
  2007          1       200
  2008          1       200
  2009          1       200
  2005          2       222
  2006          2       222
  2007          2       222
  2008          2       333
  2009          2       444
  2005          3       300
  2006          3       301
  2007          3       302
  2008          3       302
  2009          3       303
  2005          4       999
  2006          4       888
  2007          4       777
  2008          4       666
  2009          4       555

end

// Declare the panel structure.
xtset bank_num year

// Gen variable indicating if ceo_num stayed same.
// Resulting variable is 0 when there was no change.
gen no_turn = (ceo_num - f1.ceo_num)
// Gen dummy to indicate if ceo_num changed.
gen is_turn = (no_turn != 0 & no_turn < .)
// Gen a variable that counts changes.
egen turn_nums = sum(is_turn), by(bank_num)

// List data to inspect results.
list

编辑:重新描述 no_turn 变量的注释。


推荐阅读