stata - 计算董事会营业额
问题描述
我一直在尝试计算 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
问题了Turnover2006
Turnover2007
Turnover2008
最后,TMT 可能会增长,即 2005 年银行 1 的董事会有 14 名经理,而 2006 年他们聘请了 3 名新经理,但只解雇了 1 名。现在董事会有 16 名经理并进行了 3 次变更(3 名新经理)
解决方案
这可能会有所帮助。以下代码构建了一个数据集,该数据集由四个银行和五年的数据组成。是面板数据。该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 变量的注释。
推荐阅读
- android - 一个安卓应用程序在我打开时一直崩溃并显示“已停止工作”的消息
- node.js - 如何使用新的 NodeJS @azure/storage-queue 库连接到开发 Azure 存储(本地)?
- c# - 如何找到写在字符串之前的立即整数值?
- javascript - javascript中有多少种数组类型?
- flutter - Fastlane:“找不到更新变更日志的版本代码的发布”
- r - 按日期和潜在客户的行动重新排列我的数据集
- django-oscar - 在 django-oscar 站点的购物篮中添加客户定义的可选附加功能
- android - 在 Android Studio 中更新预构建的 SQL 数据库
- r - 与部分字符串完全匹配的查找表的非模糊连接
- c++ - 解释一下通过类成员方法处理 std::function