Расчет суммы оборота платы - PullRequest
0 голосов
/ 27 апреля 2018

Я пытался подсчитать сумму оборотов, происходящих на досках объявлений в период с 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 - это моя переменная идентификатора, поскольку они связаны с каждым конкретным банком.

  • Два новых человека вошли в правление Банка1. На данный момент это будет отображаться как Turnover = 2, поскольку только 2 новых человека вошли в правление организации. В предыдущем примере к нему присоединились три человека, в этом случае Turnover = 3, поскольку каждое изменение, внесенное в Правление, считается "+1" turnover независимо от того, кто уходит. Только люди, которые присоединяются (заменяют ли они кого-то или являются просто дополнением к доске), представляют интерес для моей диссертации.

Однако, это также может быть рассчитано по-другому, если это облегчает. Зависит от того, как я пишу свою методологию. Было бы хорошо, если бы переменный оборот указывал, сколько изменений было сделано за год, т. Е. Turnover2005: 2005 - 2006, Turnover2006: 2006 - 2007, Turnover2007 2007- 2008 и Turnover2008 2008 - 2009

Наконец, возможно, что TMT будут расти, то есть в 2005 году в банке 1 было 14 менеджеров, а в 2006 году они наняли 3 новых менеджеров, но отпустили только одного. Теперь в совете 16 менеджеров и 3 изменения (3 новых менеджера)

1 Ответ

0 голосов
/ 28 апреля 2018

Это может помочь. Следующий код создает набор данных, состоящий из данных с четырьмя банками и пятью годами. Это данные панели. Команда 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.

...