Sullivan_Sophia_Final_Project
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
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.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.