Home > Mobile >  How to track changes in the board of directors within the same firm
How to track changes in the board of directors within the same firm

Time:11-15

In Stata I need to create a new variable "changes in the board of directors" which indicates whether the same directors are observed in the same firm over time. Consider an example below:

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

Directors ID 1, 2, and 3 are in firm 10 in 2006 and in 2007. So there was no change in the board of directors from t-1 to t. The variable "changes in the board of directors" should be 0. However, in 2008 a new director came to the board dirid = 4, so there was a change in the board and the variable should be 1. The same in 2009 because dirid 1 and 2 left the company. So any change, whether the entrance or exit of directors, should be reported with 1 in the new binary variable.

CodePudding user response:

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

bysort firmid year (dirid): gen n = _n
reshape wide n, i(firmid year) j(dirid)
egen all_directors = concat(n*)
bysort firmid (year): gen change = all_directors != all_directors[_n-1] & _n > 1
reshape long
drop if missing(n)
drop all_directors n

CodePudding user response:

Here's another way to do it. I think it should cope with directors leaving and later coming back.

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

bysort firmid year (dirid) : gen board = strofreal(dirid) if _n == 1 
by firmid year : replace board = board[_n-1]   " "   strofreal(dirid) if _n > 1 
by firmid year : replace board = board[_N] 

by firmid : gen anychange = year != year[_n-1] & board != board[_n-1] 
bysort firmid year (anychange) : replace anychange = anychange[_N] 

sort firmid year dirid 
list, sepby(firmid year) 


     -------------------------------------------- 
     | dirid   firmid   year     board   anycha~e |
     |--------------------------------------------|
  1. |     1       10   2006     1 2 3          1 |
  2. |     2       10   2006     1 2 3          1 |
  3. |     3       10   2006     1 2 3          1 |
     |--------------------------------------------|
  4. |     1       10   2007     1 2 3          0 |
  5. |     2       10   2007     1 2 3          0 |
  6. |     3       10   2007     1 2 3          0 |
     |--------------------------------------------|
  7. |     1       10   2008   1 2 3 4          1 |
  8. |     2       10   2008   1 2 3 4          1 |
  9. |     3       10   2008   1 2 3 4          1 |
 10. |     4       10   2008   1 2 3 4          1 |
     |--------------------------------------------|
 11. |     3       10   2009       3 4          1 |
 12. |     4       10   2009       3 4          1 |
      -------------------------------------------- 


See also [this paper][1] on concatenating rowwise. 


  [1]: https://journals.sagepub.com/doi/full/10.1177/1536867X20909698
  • Related