Sullivan_Sophia_Final_Project

No preview image

1 collaborator

Default-person Sophia Sullivan (Author)

Tags

(This model has yet to be categorized with any tags)
Model group EECS 372-Spring 2011 | Visible to everyone | Changeable by the author
Model was written in NetLogo 4.1.2 • Viewed 190 times • Downloaded 10 times • Run 13 times
Download the 'Sullivan_Sophia_Final_Project' 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 model attempts to use theories of social influence to determine whether people will decide to adopt a technology or reject it, based on a variety of social factors. There are four main hypotheses that this model tests:

1. People are influenced by the opinions of others in their workgroups

2. People are influenced by the opinions of their bosses (and information passed down to them as a function of training)

3. Technology is more valuable to people once it reaches a critical mass

4. The influence of the opinions of others are reduced over time

HOW IT WORKS

Each hypothesis has a switch that can be turned on or off to indicate that the hypothesis is in effect. A few of the hypotheses also have sub-hypotheses that affect the overall amount that each agent changes their attitude towards the technology.

At each tick, every worker updates his attitude by a change-amount. This change amount is the result of the affects from each hypothesis in the following ways:

1. Workgroup influence: the worker talks to some or all of the workers he is linked to, and updates the change amount by the differences between his and everyone else's attitudes, weighted by how much the worker likes his group and the degree to which the overall workgroup influences each worker.

2. Boss influence: the worker talks to their boss either every tick or every few ticks, and updates his change amount by the difference between his opinion and his boss's opinion, weighted by the worker's expertise, liking of his boss, and degree that he is influenced by his boss. There is also an option to have training, scheduled at a specifice time period, or scheduled when noone has made a new adopt or reject decision for 50 time units. When either of these training hypotheses are in effect, a training is held once, and all workers who haven't made an adopt/reject decision update their attitudes by the value of the training.

3. When the critical mass hypothesis is in effect, once the number of coworkers in an employee's workgroup is above a certain threshold, the value of the technology drastically increases by a specified amount each time period.

4. When the reduction of influence hypothesis is in effect, the overall change amount that each worker has kept track of is reduced by a reduction amount that decreases each time period.

At the end of each tick each worker again checks his/her attitude and if it is 100 or greater, decides to adopt the technology, and if it is 0 or below, decides to reject the technology.

THINGS TO TRY

Since the workgroup hypothesis is a relatively fundamental theory regarding technology adoption, it is useful to keep it on during all of the experiments, but it is interesting to see where the initial conditions determine that the technology will not be adopted, for example low worker attitudes and high expertise, and no training or bosses who are not in favor of the technology.

EXTENDING THE MODEL

Another important aspect of technology implementation is the ability of technologies to be interpreted in different ways, no matter how rigid the uses the original software developers intended. An interesting extension would be to not only influence attitudes but perform the same influence processes on the particular way an employee uses the technology.

One other possible extension concerns the difference between the actual attitudes of a worker's group and his perception of their attitudes. Frequently, these values are different, especially in situations where a worker does not interact with a particular employee very much. This feature would be an interesting extension to the model as well.

NETLOGO FEATURES

One of the useful features of NetLogo is the ability to define sliders based on the values of other sliders. In particular, when sliders define a maximum and minimum value of a range, there is no built-in ability to throw an error when the maximum value is less than the minimum value. Being able to define the slider so that the maximum value of the minumum slider is the value chosen on the maximum value slider replaces the need for this in a much simpler way.

When looking for random agents, NetLogo is also useful, because the process of selecting turtles to "move" is random, so this reduces the need for many random number generators, which could be very cumbersome in a model that requires many random behaviors, specifically in any models involving human agents.

RELATED MODELS

Some other related models are those in the Models Library are Virus on a Network, which also models how a value spreads across a network, and Diffusion on a Directed Network.

CREDITS AND REFERENCES

I would like to thank Professor Paul Leonardi for his guidance in narrowing down the definition of my model and suggesting hypothesis combinations that would be useful to test.

Comments and Questions

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

Click to Run Model

breed [ workers worker ]
breed [ bosses boss ]

turtles-own [ 
  expertise ; the level of technical expertise that the agent has with the technology
  attitude   ; feelings about new technology
  group-membership ; which workgroup the workers and bosses are part of
  group-liking ; how the worker feels about his workgroup
  boss-liking ; how the worker feels about his boss
  adopt ; records when a person makes decision to adopt the technology
  reject ; records true when a person makes a decision to reject technology
  ]

links-own [
  group ; a way to access the links in each group 
]
globals [
  change-amt ; used to keep track of the amt turtles change their opinions each round
  change-counts ; keeps track of how many adopt/ reject decisions have been made
  change-time ; keeps track of the time since the last adopt/reject decisions were made
  had-training ; only allows training to happen once
  reduction-factor ; keeps track of how much less others are able to influence over time
]

to setup
  clear-all
  set reduction-factor 1
  set had-training false
  set change-counts 0
       if (Group-liking?) [
      ifelse (number-workgroups > 1) [ 
        create-bosses number-workgroups [ set color white ]
       layout-circle bosses 10
       ask bosses [ create-links-with other bosses ] 
   ; assume that all bosses interact, can change this assumption later
      
    let counts 0
   let num-links ( ( average-node-degree - 1 ) * workgroup-size ) / 2
  while [ counts < number-workgroups ]
    [ create-workers workgroup-size [ set group-membership counts 
        set color blue ]
 
    
       layout-circle workers with [group-membership = counts ] 5 - 0.5 * max( list (number-workgroups - 5) (0) )  
          ask workers with [group-membership = counts ] [
           setxy xcor + [xcor] of boss counts ycor + [ycor] of boss counts 
           create-link-with boss counts
       ]
 
       let linkcounts 0
       while [linkcounts < num-links ] [
           ask one-of workers with [group-membership = counts] [
               let choice (one-of other workers with [not link-neighbor? myself and group-membership = counts])
                     if choice != nobody [ create-link-with choice [ set group counts ]
                       set linkcounts linkcounts + 1 ] 
           ]
       ]
  
    set counts counts + 1
    ]
  ]
   [create-bosses 1 [ setxy 0 0 set color white ] 
     create-workers workgroup-size [  
        set color blue 
        set group-liking min-init-group-liking + random ( max-init-group-liking - min-init-group-liking )]
    
       layout-circle workers  14.5    
             ask workers [
           setxy xcor + [xcor] of boss 0 ycor + [ycor] of boss 0 
           create-link-with boss 0
       ]
          let num-links ( ( average-node-degree - 1 ) * workgroup-size ) / 2
       let linkcounts 0
       while [linkcounts < num-links ] [
           ask one-of workers [
               let choice (one-of other workers with [not link-neighbor? myself ])
                     if choice != nobody [ create-link-with choice
                       set linkcounts linkcounts + 1 ] 
           ]
       ]
      ]
   ask workers [ set group-liking min-init-group-liking + random ( max-init-group-liking - min-init-group-liking )]
    ]
  
  if  ( not Group-liking? )
   [create-bosses 1 [ setxy 0 0 set color white ] 
     create-workers number-workers [  
        set color blue ]
         
       layout-circle workers  14.5    
             ask workers [
           setxy xcor + [xcor] of boss 0 ycor + [ycor] of boss 0 
           create-link-with boss 0
       ]
          let num-links  round ( ( density / 100 ) * ( ( number-workers ) * (number-workers - 1 ) / 2 ) )
       let linkcounts 0
       while [linkcounts < num-links ] [
           ask one-of workers [
               let choice (one-of other workers with [not link-neighbor? myself ])
                     if choice != nobody [ create-link-with choice
                       set linkcounts linkcounts + 1 ] 
           ]
       ]
      ]
   
      if  ( not Boss-influence? ) [ ask bosses [ die ] ]
     
      ask bosses [ set shape "person business"
         set attitude min-init-att + random ( max-init-att - min-init-att ) ]
      ask workers [ set shape "person"
                  set attitude min-init-attitude + random ( max-init-attitude - min-init-attitude )
           if Boss-influence? [ set boss-liking min-init-boss-liking + random ( max-init-boss-liking - min-init-boss-liking ) 
           set expertise min-init-expertise + random ( max-init-expertise - min-init-expertise )
 ]
        ]
      
         ; the dissenter is a technological expert who is completely against the technology
    ask turtles [
            
        set size 3
        set adopt false
        set reject false 
           ; doesn't allow any agents to make a decision about adopting or rejecting the
           ; technology before the simulation starts
        set label attitude 
    ]   
end 

to go
  set change-amt 0
  ask workers [
    set change-amt 0
    ; turtles only update opinions until they have made a decision
    if adopt = false and reject = false [
    if Group-liking? [ talk-to-group ]
    if Boss-influence? [ talk-to-boss ]
    if Critical-mass? [ crit-mass-effect ]
    if Reduce-influence? [ reduce-influence ]
     ; the worker updates their attitude from the effects of the hypotheses
     set attitude attitude + change-amt

   ; the turtles check again to see if they are ready to make a decision
       if attitude > 99 [ set adopt true 
           set color green
           set attitude 100 ]
        if attitude < 1 [ set reject true
            set color red 
            set attitude 0]
         set label round attitude
    ]
  ]
  
  ; if the training switch is on, keep track of decisions to have training when
  ; there have been no new decisions made for a while
  if Boss-influence? and training? and had-training = false [
    ifelse training-time? [ 
      ifelse change-time = training-time [ 
         ask workers with [ adopt = false and reject = false ]
          [ set attitude attitude + training-effect ]
           ; make sure training doesn't happen again
           set had-training true
           ; if nobody has made a decision, add a tick
       ] 
      [ set change-time change-time + 1 ] ]
  [  ifelse count workers with [ adopt = true or reject = true ] = change-counts 
       ; if nobody has made a new decision within 50 ticks, have a training session
       [ ifelse change-time > 49 [
           ; having more information will increase people's attitudes 
          ask workers with [ adopt = false and reject = false ]
          [ set attitude attitude + training-effect ]
           ; make sure training doesn't happen again
           set had-training true
           ; if nobody has made a decision, add a tick
       ] [ set change-time change-time + 1 ] ]
       ; if the count is different, someone has made a decision and the clock resets
       [ set change-time 0
         set change-counts count workers with [ adopt = true or reject = true ] ]
   ]
  ]
  
  ; if the influence-reduction hypothesis is in effect, each period the amount
  ; of the reduction is calculated and applied to the changes in the next period
   
   if Reduce-influence?
   [ set reduction-factor reduction-factor * ( 1 -  ( amt-reduction / 100 ) ) ]
  
  
  ; model ends when all the workers have made a decision (so sometimes
  ; the model never ends
 if count workers with [ adopt = true or reject = true ] = count workers
 [ stop ]
 
 tick 
end 

to talk-to-group ; worker procedure
  let track 0
       ; if a worker has one link, then they only have a link with their boss, and 
       ; can't update their opinion due to group opinions
   while [ track <  hyp1-degree / 100 * ( count my-links - 1 ) ]
     [ 
       ; the amount of change is weighted by the degree of the hypothesis, the group-liking,
       ; and the difference in attitudes between the worker and one of their link neighbors
       set change-amt change-amt + ( hyp1-degree / 100 ) * ( group-liking / 100 ) * 
           ( [ attitude ] of one-of link-neighbors - attitude )
       set track track + 1
     ]
end 

to talk-to-boss ; worker procedure
  ; the degree of the hypothesis is used to limit how often the worker talks to his boss,
  ; since workers will most likely talk to their coworkers more often than they do with their boss
  if random 100 <= hyp2-degree [
  ; the worker updates his change-amt by his amount of expertise, liking of his boss, 
  ; degree of the hypothesis, and the difference in attitude of his boss 
  set change-amt change-amt + ( 100 - expertise ) / 100 * ( boss-liking / 100 ) * 
         ( hyp2-degree / 100 ) * ( [ attitude ] of boss group-membership - attitude )
  ]
end 

to crit-mass-effect ; worker procedure
  ; to implement this, we assume that even if a worker doesn't have a link with 
  ; all the members of his group, the effect of the technology increases anyway
  if count workers with [ group-membership = [ group-membership ] of myself and adopt = true ] > 
     threshold / 100 * (count workers with [ group-membership = [ group-membership ] of myself ] ) 
     [ set change-amt change-amt + value-of-threshold ]
end 

to reduce-influence
  ; the reduction factor decreases the size of the change amount over time
  set change-amt change-amt * reduction-factor
end 

There are 12 versions of this model.

Uploaded by When Description Download
Sophia Sullivan almost 11 years ago Final model, forgot to change a slider back after my experiment Download this version
Sophia Sullivan almost 11 years ago Final model, final version! Download this version
Sophia Sullivan almost 11 years ago Final model with descriptions and everything! Download this version
Sophia Sullivan almost 11 years ago Another model minus description Download this version
Sophia Sullivan almost 11 years ago Final model - minus all the description Download this version
Sophia Sullivan almost 11 years ago almost done.. Download this version
Sophia Sullivan almost 11 years ago new layout and hypotheses included Download this version
Sophia Sullivan about 11 years ago Turtles now take into account workgroup liking Download this version
Sophia Sullivan about 11 years ago Agents make adopt/reject decisions based on their workgroup attitudes, but so far seem to only adopt Download this version
Sophia Sullivan about 11 years ago The layout works now! Download this version
Sophia Sullivan about 11 years ago Started to set up the layout of groups, doesn't work yet. Download this version
Sophia Sullivan about 11 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.