我一直在努力计算金融业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,如果恰好是这种情况)有关吗?
ISIN代码是我的ID变量,因为它们链接到每个特定的银行。
两名新人加入了Bank1的董事会。目前它只显示为Turnover = 2
,因为只有2个新人加入了该组织的董事会。在上一个示例中有三个人加入,在这种情况下Turnover = 3
,因为每次对董事会所做的更改都计为"+1" turnover
,无论人们离开。在我的论文中,只有加入的人(无论他们是否取代某人或只是董事会的补充)。
但是,如果这样做更容易,也可以用不同的方式计算。取决于我如何编写我的方法论。如果变量周转率表示每年进行了多少更改,那将是正常的,即Turnover2005
:2005 - 2006,Turnover2006
:2006 - 2007,Turnover2007
2007-2008和{{1} 2008 - 2009
最后,TMT可能会增长,即2005年银行1董事会中有14位经理,2006年他们雇佣了3位新经理,但只有1位经理。现在董事会有16位经理,并进行了3次更改(3位新经理)
答案 0 :(得分:0)
这可能会有所帮助。以下代码构建一个数据集,该数据集包含四个银行和五年的数据。这是面板数据。 xtset
命令允许您使用此处详细记录的时间序列运算符(https://www.youtube.com/watch?v=ik8r4WvrPkc)。 (注意:为了清楚说明,在这个例子中,Bank 1没有变化,Bank 2有两个变化,Bank 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变量的注释。