Leadership Emergence in Teams

No preview image

3 collaborators

Default-person Benjamin Jargow (Author)
Default-person Theresa Leidinger (Advisor)
Default-person Valeria Epelbaum (Team member)

Tags

group dynamics 

Tagged by Benjamin Jargow almost 2 years ago

leadership 

Tagged by Benjamin Jargow almost 2 years ago

teams 

Tagged by Benjamin Jargow almost 2 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.3.0 • Viewed 317 times • Downloaded 21 times • Run 0 times
Download the 'Leadership Emergence in Teams' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This Netlogo model simulates leadership emergence in newly formed teams. In our simulation, leadership means that an individual is perceived to be a leader (Public Leadership Perception). But you can also see whether the person considers themselves to be a leader or follower (Leader Identity and Follower Identity)

HOW IT WORKS

In each round, two turtles are randomly selected to interact. Each individual can claim leadership (propose to lead) or grant it (agree for let the other to lead). The likelihood of an individual claiming or granting leadership is dependent on multiple variables including how much an individual thinks of themselves as a leader or follower, what others think of them, and how suited they perceive the other person to lead.

Only if claiming and granting of those two individuals agree (i.e., a claim is reinforced by a grant of the other person) we have a successful interaction. With each successful interaction the leadership identity of the person who claimed grows thereby impacting future interactions.

HOW TO USE IT

Determine the number of people via the respective slider and decide whether all people are equally suitable to become leaders or not by changing Initial_Range. Via the leadership structure schema (LSS) drop-down menu you can also change whether leaders are okay with sharing leadership (shared) or not (hierarchical). Someone with a shared schema would grant leadership even if they claimed it themselves. Someone with a hierarchical schema would not do that. Additionally, you can select a hierarchical schema + status comparison which stops individuals from granting leadership when they themselves claim, except if the other person has a higher leadership status (public leadership perception) than themselves.

Setup sets up the model and Go lets the simulation start indefinitely or just one tick at a time.

More technical variables:

  • hist_decay: Each person gains or loses points in an interaction and the memories of these interactions impact future behaviour. That is what we call history. With each tick the history decays by the value set in the interface.
  • M: This is the mean value of the initial distributions. Whether we start higher or lower is not of psychological matter, however, in the underlying beta distribution, a higher M decreases the range of the probability distribution and makes it more steep.
  • Max_hist: This is the maximum amount of dyadic, public, or private history that can be reached. As these histories approach this limit their growth becomes smaller.
  • print_reasoning determines whether you can check the interactions through printouts.
  • relcolhist determines whether individuals build their leadership_perception on the dyadic interactions they had with a person (0) or the collective leadership history of the individual (1).

THINGS TO TRY

What happens if a scandal, leads all turtles to see the current leader as having a bad leadership history in the group? What happens if the task is changed and therefore the leadership expectations change? What happens if the current leader gets removed?

Can you get one leader in a group of 8 or more individuals?

EXTENDING THE MODEL

What happens if individuals have different Leadership Structure Schemas? What happens if we change how public and private leadership histories are computed after each interaction?

CREDITS AND REFERENCES

Created by Valeria Epelbaum, Theresa Leidinger and Benjamin Jargow

Acton, B. P. (2020). Using Agent-Based Modeling to Test and Integrate Process-Oriented Perspectives of Leadership Emergence [Dissertation, Virginia Polytechnic Institute and State University]. Acton, B. P., Foti, R. J., Lord, R. G., & Gladfelter, J. A. (2019). Putting emergence back in leadership emergence: A dynamic, multilevel, process-oriented framework. The Leadership Quarterly, 30(1), 145–164. https://doi.org/10.1016/j.leaqua.2018.07.002 Links to an external site.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

turtles-own [lead_expect; how fitting the individual appears to be a leader in general or for the specific task (might change with task)
             lead_schem; how much person thinks of themself as leader (partly due to lead_schem)
             fol_schem;  how much person thinks of themself as follower
             public_lead_hist
             private_lead_hist
             pen-color ; color variable: tutles own a color but don't display it;
             leader_duration;
             leader_stability

]


globals [
burn-in
succesfull_interactions
observer_action
]

links-own [LP_1 LP_2]

to setup
  clear-all
  create-turtles number_of_people
  set-default-shape turtles "person"
  layout-circle turtles 14
  set burn-in 0
  set observer_action 0
  set succesfull_interactions 0

  let color-list [45 12 62 67 18 82 90 97 105 114 124 127 138 139 19 29 blue 49 57 44 14 87 133] ; this is the list with 30 possible colors
  ask turtles [
    set lead_expect m - initial_range / 2 + random (initial_range)
    set lead_schem m - initial_range / 2 + random (initial_range)
    set fol_schem m
    set public_lead_hist 0
    set private_lead_hist 0


    ifelse not empty? color-list [
      let ind one-of range length color-list ; randomly chooses an index
      set pen-color item ind color-list ; Have the turtle choose from color-list using that index
      set color-list remove-item ind color-list   ; Remove indexed value from color-list, otherwise colors will repeat!!
    ] [
      set pen-color gray ; Assign gray if all colors used (technically, should not happen, unless number of turtles > 30)
    ]

    set size (lead_expect / (.7 * m))
    set color gray ; if this is commented out then turtles will appear in their assigned color
  ]

  reset-ticks
end 

to go
  dyadic_interaction
  update
  tick
end 

to dyadic_interaction
    ask one-of turtles [
      if print_reasoning = true [print who]

      let target one-of other turtles
      ask target [
            if print_reasoning = true [print who]
      ]

      ;establishing the link
      if not in-link-neighbor? target [ ; creates a link if there was none sofar
         create-link-with target [
            set LP_1 0
            set LP_2 0
         ]
      ]
      let dyad_lead_hist_a 0
      let dyad_lead_hist_b 0
      ifelse who < [who] of target [ ; the link stores succesfull leadership and successfull followership which are now taken out
        set dyad_lead_hist_a [LP_1] of link (who) ([who] of target)
        set dyad_lead_hist_b [LP_2] of link (who) ([who] of target)
      ] [
        set dyad_lead_hist_a [LP_2] of link (who) ([who] of target)
        set dyad_lead_hist_b [LP_1] of link (who) ([who] of target)
      ]

      ;claiming and granting
      let lead_perc_a (2 * rel_col_hist * public_lead_hist) + (2 * (1 - rel_col_hist) * dyad_lead_hist_a) + lead_expect ; what the individual thinks the other think about them
      let lead_perc_b (2 * rel_col_hist * [public_lead_hist] of target) + (2 * (1 - rel_col_hist) * dyad_lead_hist_b) + [lead_expect] of target ; what the individual thinks about the other

      let aclaim is_claiming (lead_schem + private_lead_hist) (fol_schem - private_lead_hist) lead_perc_a
      if print_reasoning = true [print word "A claimed" aclaim]
      let agrant is_granting lead_perc_b (fol_schem - private_lead_hist)

      let bclaim is_claiming ([lead_schem] of target + [private_lead_hist] of target) ([fol_schem] of target - [private_lead_hist] of target) lead_perc_b
      if print_reasoning = true [print word "B claimed" bclaim]
      let bgrant is_granting lead_perc_a ([fol_schem] of target - [private_lead_hist] of target)

      if lss = "hierarchical" [
         if (aclaim = True) [set agrant False]
         if bclaim = True [set bgrant False]
      ]

      if lss = "hierarchical + status comparison" [
         if (aclaim = True) and lead_perc_a > lead_perc_b [set agrant False]
         if bclaim = True and lead_perc_b > lead_perc_a [set bgrant False]
      ]

      if print_reasoning = true [print word "A granted" agrant]
      if print_reasoning = true [print word "B granted" bgrant]

      ;dyadic score changes
      ask link (who) ([who] of target) [
        (ifelse (aclaim = True) and (bgrant = True) [
          ifelse [who] of end2 = [who] of target [ ; a succesfull interaction stabilises their view on themselfes and the other
             set LP_1 LP_1 + .5 - .5 * abs (LP_1 / max_hist)
             ;set LP_2 LP_2 - .5 + .5 * abs (LP_2 / max_hist)
          ] [
             set LP_2 LP_2 + .5 - .5 * abs (LP_2 / max_hist)
             ;set LP_1 LP_1 - .5 + .5 * abs (LP_1 / max_hist)
         ]
          set color green
        ](agrant = True) and (bclaim = True) [
         ifelse [who] of end2 = [who] of target [
          set LP_2 LP_2 + .5 - .5 * abs (LP_2 / max_hist)
          ;set LP_1 LP_1 - .5 + .5 * abs (LP_1 / max_hist)
        ] [
          set LP_1 LP_1 + .5 - .5 * abs (LP_1 / max_hist)
          ;set LP_2 LP_2 - .5 + .5 * abs (LP_2 / max_hist)
        ]
          set color green
         ][
          set color red
         ])
    ]

    ; private and public score changes
    if (aclaim = True) and (bgrant = True) [
      set private_lead_hist private_lead_hist + .5 - .5 * abs(private_lead_hist / max_hist)
      set public_lead_hist public_lead_hist + .5 - .5 * abs(public_lead_hist / max_hist)
      ask target [
        set private_lead_hist private_lead_hist - .5 + .5 * abs(private_lead_hist / max_hist)
        set public_lead_hist public_lead_hist - .5 + .5 * abs(public_lead_hist / max_hist)
      ]
      set succesfull_interactions succesfull_interactions + 1
    ]
    if (bclaim = True) and (agrant = True) [
      set private_lead_hist private_lead_hist - .5 + .5 * abs(private_lead_hist / max_hist)
      set public_lead_hist public_lead_hist - .5 + .5 * abs (public_lead_hist / max_hist)
      ask target [
        set private_lead_hist private_lead_hist + .5 - .5 * abs(private_lead_hist / max_hist)
        set public_lead_hist public_lead_hist + .5 - .5 * abs (public_lead_hist / max_hist)
      set succesfull_interactions succesfull_interactions + 1
      ]
    ]
    if (aclaim = False) and (bgrant = False) [
      set private_lead_hist private_lead_hist - .25 + .25 * abs(private_lead_hist / max_hist)
      ;set public_lead_hist public_lead_hist - .25 + .25 * abs (public_lead_hist / max_hist)
    ]
    if (bclaim = False) and (agrant = False) [ask target [
      set private_lead_hist private_lead_hist - .25 + .25 * abs(private_lead_hist / max_hist)
      ;set public_lead_hist public_lead_hist - .25 + .25 * abs (public_lead_hist / max_hist)
    ]]
    ]
end 

to update
  let n 1
  foreach sort-on [(-(lead_expect + public_lead_hist))] turtles [
    the-turtle ->
    ask the-turtle[
      set label n
      set n n + 1
    ]
  ]
  ask turtles [
    ifelse label = 1 and burn-in > 0 [set shape "person business"] [set shape "person"]

   set public_lead_hist (1 - hist_decay) * public_lead_hist
   set private_lead_hist (1 - hist_decay) * private_lead_hist
   set size 1 + (lead_expect + public_lead_hist) / (m + max_hist)
  ]
  ask links [
    set thickness (abs LP_1) / (1.0 * max_hist)
    set LP_1 (1 - hist_decay) * LP_1
    set LP_2 (1 - hist_decay) * LP_2
  ]
  if burn-in > 0 [
      ask max-n-of 1 turtles [(lead_expect + public_lead_hist)] [
      set leader_duration leader_duration + 1
      set leader_stability leader_duration / (ticks - burn-in)
      ; percent
      ;
    ]
  ]
  if burn-in = 0 and (max [public_lead_hist] of turtles > .50 * max_hist) [
    set burn-in ticks
  ]
 set observer_action observer_action - .5
end 

to-report is_claiming [li fi lp]
  let alpha (li + lp) * .05
  let beta (fi) * .1
  let prob_claim random-beta alpha beta
  if print_reasoning = true [print word "Probability of claiming " prob_claim]
  report random-float 1 > (1 - prob_claim)
end 

to-report is_granting [lp_other fi]
  let alpha 0.05 * lp_other
  let beta  0.1 * (2 * m - fi)
  let prob_grant random-beta alpha beta
  if print_reasoning = true [print word "Probability of granting " prob_grant]
  report random-float 1 > (1 - prob_grant)
end 

to scandal
  let leader-turtle max-one-of turtles [((lead_expect + public_lead_hist) / m)]
  ask links with [end1 = leader-turtle or end2 = leader-turtle] [
    die
  ]
    ask max-n-of 1 turtles [((lead_expect + public_lead_hist) / m)]  [ ; right now targets the "leader" based on size; can change to leader_schem
    set public_lead_hist 0 - max_hist
  ]
  set observer_action 1
end 

to kill
 ask max-n-of 1 turtles [((lead_expect + public_lead_hist) / m)]  [
   die
  ]
  set observer_action 1
end 

to task-change
  ask turtles [
    let change random (m / 4) - m / 8
    print(change)
    set lead_expect lead_expect + change
    set lead_schem lead_schem + change
  ]
  set observer_action 1
end 

to-report random-beta [ #alpha #beta ]
  if #alpha <= 0 [set #alpha 0.1]
  if #beta <= 0 [set #beta 0.1]
  let XX random-gamma #alpha 1
  let YY random-gamma #beta 1
  report XX / (XX + YY + .0001)
end 

There is only one version of this model, created almost 2 years ago by Benjamin Jargow.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.