Home Download Help Forum Resources Extensions FAQ NetLogo Publications Contact Us Donate Models: Library Community Modeling Commons Beginners Interactive NetLogo Dictionary (BIND) NetLogo Dictionary User Manuals: Web Printable Chinese Czech Farsi / Persian Japanese Spanish
|
NetLogo User Community Models(back to the NetLogo User Community Models)
## WHAT IS IT?
This model aims to represent the changes in individual probability to take any action based on changes in attributes.The action is anything that can be reasonably influenced by the three influencing methods implemented in this model: peer pressure, social media, and state campaigns, and for which the user has a decision-making model. For example, it can represent habits such as smoking, exercising, eating meat, buying certain products, opinion on a topic, etc.
By default, the agents are defined by age, sex, income, education, and four additional attributes for the user to setup. These are assumed to be related to the action to be studied. The user can remove some of these attributes or add more, but portions of code will have to be modified.
The model can be run without any data as it is setup to generate random agents and has a sample linear regression for decision model. In order to use this model for real data, please change to initialize the agents from a file and change the decision making model.
## HOW IT WORKS
The model consists of an agents that represent individual consumers/decision-makers, whose probability to take an action we aim to change. In general, this model can be used for any kind social setting, where the main ways of influence are: peer interactions, social media, and the state.
How each influence works:
1) Peer influence: agents are connected to 15 other agents, although this can be adjusted as necessary. At every time step, an agent interacts with 10/15 other agents (otherwise, the specified number by the user), and their opinion is modified based on two criterias - whether the other agent is more influential (less suscpetible) and whether the other agent is highly concerned about the topic. This second criteria can be removed by setting the sharing.threshold slider to 0.5, which means every agent will share their opinion (provided that they are more influential). There are two settings for peer interaction: non polarizing and polarizing. The first one refers to the homogenizing effect of socialization, meaning that agents' opinion converge to the average of that of their neighbors over time. The second refers to the polarizing effect of socialization, where agents who encounter opinions drastically different to that of their own tend to get further into their belief and away from the opposite. What we consider "drastically different" is set by the tolerance.threshold, which is the allowable difference between opinions to make is not too different. Anything above that would qualify as drastically different.
2) Social media influence: this is an external entity with a feedback loop that caters information to each agents individually at every time step. It is based on the opinion the agent had the time step before, and it acts as a polarizing agent, meaning that its feedback loop is set to return an opinion more extreme than the one an agent had in the previous time step. The user can set what portion of the agentset gets polarized by social media with polarization.threshold. This value ranges represent the necessary deviation from the extreme opinions (0 and 1) of agents for them to be affected. For example, if it is set to 0.1, then only agents whose concerns are above 1-0.1=0.9 or below 0+0.1=0.1 are influenced. Conversely, if it is set to 0.5, all agents are influenced. You can also choose social media bias by choosing it from the social.media.bias slider, where zero represents neutral, negarive values represent an "anti" take action, and positive values represent "pro" take action.
3) Government: this is another external entity with a feedback loop, but it bases its opinion on the average opinion of all agents rather than their individual opinions. This means that, at every time step, it calculates an average opinion about a topic, adjusts its own opinion, and dessiminates it to agents. The feedback loop will simply multiply the average opinion by the parameter government_int. If it is below 1, it will promote anti-action stances in our case, and if it is above 1, it promotes pro-action stances. The state does not influence everyone at every time step, but selects agents randomly. There are two kinds of campaigns: cyclic (influencing the same topic over certain number of time steps) and random (influencing a different topic every time step, chosen randomly).
By default, we have setup four attributes to influence, but the user can add more or select to have less. In such case, portions of code will have to be replicated.
## HOW TO USE IT
First, select whether you would like agents to be randomly generated or to initialize them from a csv file. In case you choose to upload your own, make sure to normalize them to [0,1]. Otherwise, changes have to be made. You can change the number of attributes you would like to initialize. After that, make sure to select all the parameters regarding socialization, all the thresholds, etc. These are the parameters:
1) Government related:
2) Socialization parameters:
3) Polarized agentset:
4) Social media influence:
## THINGS TO NOTICE
There are two plots in the interface section.
1) Black plot: this plot represent an agent's attribute on the x-axis and their probability to take the action on the y-axis. It allows the user to see how changes in a specific variable are affecting the action variable. The user can choose to see any of the four defaul attributes on the x-axis, but only one at a time.
2) Graph 1 (top): this plot allows the user to see changes in average attributes and average probability to take the action over time.
3) Graph 1 (bottom): this graph allows the user to see changes in the variantion of agents attributes, which is an additional metric to sense how spread are the opinions.
## THINGS TO TRY
First and foremost, please refer to the code for additional questions about the model. Almost every line is commented and there is additional information on how each implemented function works, which might be useful.
Some of our suggestions are:
- Try isolating each one of the influences in the 'influence?' chooser. This will allow you to see how each individual influence affects the agents. You can learn the isolated effect of social media, peer influence, and the state.
- Play with the government.goals. You can change it mid simulation, or cancel the campaigns all together by selection "None" in campaigns.type. This will allow you to see how resilient are agents to abrupt changes in influenced. The same can be done for social media with "polarization.threshold" and with peer influence by changing the "sharing.threshold".
## EXTENDING THE MODEL
Some suggestions to improve this model are:
- Improving the feedback loop for government. As of right now, it is a primitive linear function, but this can be improved to be a more sophisticated.
- Be critical about our choice of peer influencing function and social media influence function. In the study cited below you can find very detailed explanation of our choices and justifications of it. However, you might want to change this. In case of government and social medi influences, the lines of code to make changes to are highlighted. However, the peer pressure function is more delicate and will require considerably more changes. We suggest creating a new one if you wish to change it instead of editing the existing one.
- If you wish to add more attributes than the four by default, some code will have to be added. Everywhere that is the case, we have added commented out code that you will have to add. Search for ";; TO ADD MORE ATTRIBUTES" and change the code everywhere this line exists. There are instructions on what to do to add more attributes, and we set up sample codes to add a fifth attribute. To add more, you will just need to replicate the code for the fifth attribute.
- Similarly, if you need to have less than four attributes, please erase portions of the code that are identical to those commented out. Also, if you choose to change their names from ag.attribute.n to something else, be sure to do so everywhere in the code and in the interface section.
## CREDITS AND REFERENCES
Copyright 2024 Daria Soboleva.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. |
(back to the NetLogo User Community Models)