Adoption of Health Practices in Rural India
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This is an agent based model meant to replicate the adoption of health practices by government officials in Bihar, India. The data built into the model is based on survey responses gathered in a large-scale data collection effort covering 9,799 individuals. Several psychological factors were tested, as well as demographic information and self-reported advice and influence networks.
HOW IT WORKS
The rules that agents follow are based on the Theory of Planned Behavior (see Ajzen, 1991), which maps the relationships between attitudes, subjective norms, perceived behavior control, intentions, and the final performance of a behavior.
At every clock tick, each agent will adjust their attitudes, norms, perceived control, and intent. Because each of these factors are interrelated, previous values are stored and used for computation. The hypothesized relationships are all positive, however the exact functional forms are not known. As a result, the model effectively moves each factor towards the other factors. In other words, if attitude > norms, then at the next tick norms will either increase or stay the same. The amount of increase is random and determined by a set of model parameters. These values are set by the user via a set of sliders.
In addition to the internal forces, each agent also has a set of links to other turtles. These represent the advice and influence ties reported by agents in the survey. Change is operationalized as a reaction to the attitudes of those in the neighborhood. At each time step, turtles calculate the average attitude of each agent in the advice network and in the influence network. Then, their subjective norms are positively influenced by the attitudes of the neighborhood.
HOW TO USE IT
To use the model, first initialize the number of agents of interest. Upon clicking setup, that number of turtles will be generated, along with their advice and influence ties. The number of ties is generated randomly; yellow ties are advice and pink ties are influence. 47% of turtles will be green - these the potential implementers, who are capable of actually making change. The rest will be blue - these turtles can influence attitudes and norms, but are not capable of actually making change.
Upon clicking go, the turtles will begin to change their internal factors, as well as potentially adopt. When the turtles adopt, they will change their color to red. The model stops either after 200 ticks or if all green turtles have become red.
There are a number of sliders in the interface; these control the relative influence of each factor on the other factors. These sliders range from 0 to 2, and usually control the effect of two factors on a resulting other. For example, attitude/norm-control fixes the effect of attitude on control, relative to norms. If attitude/norm-control>1, then attitude has a greater impact than norms on changing control values, and vice versa. There is also a slider for the tie influence.
Finally, there is a slider for the control and intent threshold. This ranges from 1 to 7 and sets the level of each factor that is required for a turtle to make change. In other words, if the control threshold is 5, then only turtles whose perceived control is at least 5 may make change at that tick.
THINGS TO NOTICE
As the model runs, observe the speed of adoption, particularly in the later stages. A plot shows the number of individuals adopting, and there generally is a "carrying capacity" type limit that the model will hit with multiple runs.
THINGS TO TRY
Varying the sliders will result in much different adoption rates. In particular, changing the thresholds can have a big impact on final adoption. Try decreasing the threshold until 100% adoption is achieved.
Further, increasing or decreasing the number of turtles can influence how dense the network is, as well as how quickly adoption is achieved.
BehaviorSpace and BehaviorSearch experiments are particularly interesting for identifying different behaviors.
RELATED MODELS
A NetLogo model "interveners" is an extension to the base model and includes a new set of agents which attempt to influence the decision makers.
CREDITS AND REFERENCES
Ajzen, I. (1991). The theory of planned behavior. Organizational behavior and human decision processes, 50(2), 179-211.
Comments and Questions
globals [num-adopted num-implementers] turtles-own [attitude norm control intent last-attitude last-norm last-control last-intent implementer avg-advice-attitude avg-influence-attitude] directed-link-breed [advice-ties advice-tie] directed-link-breed [influencer-ties influencer-tie] to setup ca ;; make sure the input number of turtles is integer if num-turtles != floor(num-turtles) [set num-turtles floor(num-turtles)] ;; create turtles and distribute them crt num-turtles [ ;; color turtles blue - not adopted set color blue setxy random-xcor random-ycor set shape "person" set size 0.75 ;; this makes it easier to see ;; set intent levels based on survey data let u1 random-float 1 if u1 < 0.09 [set intent 1] if u1 >= 0.09 and u1 < 0.11 [set intent 2] if u1 >= 0.11 and u1 < 0.18 [set intent 3] if u1 >= 0.18 and u1 < 0.24 [set intent 4] if u1 >= 0.24 and u1 < 0.36 [set intent 5] if u1 >= 0.36 and u1 < 0.60 [set intent 6] if u1 >= 0.60 [set intent 7] ;; set attitude levels based on survey data let u2 random-float 1 if u2 < 0.002 [set attitude 1] if u2 >= 0.002 and u2 < 0.008 [set attitude 2] if u2 >= 0.008 and u2 < 0.03 [set attitude 3] if u2 >= 0.03 and u2 < 0.1 [set attitude 4] if u2 >= 0.1 and u2 < 0.25 [set attitude 5] if u2 >= 0.25 and u2 < 0.54 [set attitude 6] if u2 >= 0.54 [set attitude 7] ;; set norm levels based on survey data let u3 random-float 1 if u3 < 0.02 [set norm 1] if u3 >= 0.02 and u3 < 0.04 [set norm 2] if u3 >= 0.04 and u3 < 0.08 [set norm 3] if u3 >= 0.08 and u3 < 0.18 [set norm 4] if u3 >= 0.18 and u3 < 0.34 [set norm 5] if u3 >= 0.34 and u3 < 0.63 [set norm 6] if u3 >= 0.63 [set norm 7] ;; set control levels based on survey data let u4 random-float 1 if u4 < 0.11 [set control 1] if u4 >= 0.11 and u4 < 0.19 [set control 2] if u4 >= 0.19 and u4 < 0.27 [set control 3] if u4 >= 0.27 and u4 < 0.40 [set control 4] if u4 >= 0.40 and u4 < 0.57 [set control 5] if u4 >= 0.57 and u4 < 0.80 [set control 6] if u4 >= 0.80 [set control 7] ;; set implementer status based on survey data let u5 random-float 1 ifelse u5 < 0.47 [set implementer true set color green] [set implementer false] set num-implementers count turtles with [color = green] ] ask turtles [ ;; create the two types of ties randomly, according to the density of the original network ;; use a poisson distribution to represent a power-law type distribution of degree ;; this is done in a separate loop so all ties are possible create-advice-ties-to n-of (random-poisson (10.52 * num-turtles / 9799)) other turtles [set color yellow set thickness -0.5] create-influencer-ties-to n-of (random-poisson (2.12 * num-turtles / 9799)) other turtles [set color pink set thickness -0.5] ] set num-adopted 0 reset-ticks end to go if not any? turtles with [implementer = true and color = green] [stop] if ticks > 200 [stop] ask turtles [ ;; create the mean values of their neighbors attitudes; we differentiate between ;; advice ties and influencer ties ;; by initializing this way, the values won't change when turtles update their ;; properties let advice-attitude [] ask out-advice-tie-neighbors [set advice-attitude lput attitude advice-attitude] if not empty? advice-attitude [set avg-advice-attitude mean(advice-attitude)] let influence-attitude [] ask out-influencer-tie-neighbors [set influence-attitude lput attitude influence-attitude] if not empty? influence-attitude [set avg-influence-attitude mean(influence-attitude)] ;; save the current status of beliefs for use later set last-attitude attitude set last-norm norm set last-control control set last-intent intent ] ask turtles [ ;; if they have not already adopted, adjust their belief systems if color != red [ change-attitude ;; update attitudes change-norm ;; update normative beliefs change-control ;; update perceived control change-intent ;; update intent ;; if they have the ability to implement, make change if intent and ability ;; are present if implementer = true [make-change] ] ] set num-adopted count turtles with [color = red] tick end to change-attitude ;; attitude is positively influenced by norms and perception of control ;; this is programmed so that if norms or controls are more than attitude, attitude will increase, and vice-versa ;; I divided by 12 so that the max change is 1 unit, and multiplied by a random number so that the increase is further surpressed ;; (change will range from 0 to 1 (plus/minus) ;; I also cap the values at 1 to 7 set attitude (last-attitude + (random-float 1.0) * (norm/control-attitude * (last-norm - last-attitude) + (2 - norm/control-attitude) * (last-control - last-attitude)) / 12) if attitude > 7 [set attitude 7] if attitude < 1 [set attitude 1] end to change-norm ;; norm is positively influenced by attitudes and perception of control ;; this is programmed so that if attitudes or controls are more than norms, norms will increase, and vice-versa ;; perception of norms is also influenced by the attitudes of those in the advice/influence network. in other words, if people you ;; get advice from have a positive attitude, that should positive influence your attitude and vice-versa ;; I divided by 24 so that the max change is 1 unit, and multiplied by a random number so that the increase is further surpressed ;; (change will range from 0 to 1 (plus/minus) ;; I also cap the values at 1 to 7 set norm (last-norm + (random-float 1.0) * (control/attitude-norm * (last-attitude - last-norm) + (2 - control/attitude-norm) * (last-control - last-norm) + advice/influence-norm * (avg-advice-attitude - last-norm) + (2 - advice/influence-norm) * (avg-influence-attitude - last-norm)) / 24) if norm > 7 [set norm 7] if norm < 1 [set norm 1] end to change-control ;; perception of control is positively influenced by norms and attitudes ;; this is programmed so that if norms or attitudes are more than perceived control, control will increase, and vice-versa ;; I divided by 12 so that the max change is 1 unit, and multiplied by a random number so that the increase is further surpressed ;; (change will range from 0 to 1 (plus/minus) ;; I also cap the values at 1 to 7 set control (last-control + (random-float 1.0) * (attitude/norm-control * (last-attitude - last-control) + (2 - attitude/norm-control) * (last-norm - last-control)) / 12) if control > 7 [set control 7] if control < 1 [set control 1] end to change-intent ;; intent is positively influenced by all of attitudes, norms, and perceived control ;; I divided by 18 so that the max change is 1 unit, and multiplied by a random number so that the increase is further surpressed ;; (change will range from 0 to 1 (plus/minus) ;; I also cap the values at 1 to 7 set intent (last-intent + (random-float 1.0) * ( attitude-intent * (last-attitude - last-intent) + norm-intent * (last-norm - last-intent) + (3 - attitude-intent - norm-intent) * (last-control - last-intent)) / 18) if intent > 7 [set intent 7] if intent < 1 [set intent 1] end to make-change ;; to make adoption "hard", I incorporated what effectively functions as a threshold ;; in other words, change can only occur if someone perceives themselves to have high control, and have high intent ;; then, there is still a random component; the number 0.47 is drawn from the adoption rate in the base dataset if control >= control-threshold [ if intent >= intent-threshold [ if random-float 1 < 0.5 [set color red] ;; indicate adoption via changing the color ] ] end
There are 6 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
AaronSchecter_June1.docx | word | Project Update 3 | over 10 years ago, by Aaron Schecter | Download |
AaronSchecter_May18.docx | word | Project Update 1 | over 10 years ago, by Aaron Schecter | Download |
AaronSchecter_May25.docx | word | Project Update 2 | over 10 years ago, by Aaron Schecter | Download |
Adoption of Health Practices in Rural India.png | preview | Image | about 10 years ago, by Aaron Schecter | Download |
IMG_0620.JPG | jpeg | Poster picture | about 10 years ago, by Aaron Schecter | Download |
Poster Slam Slides.pdf | Poster Slam Slides | about 10 years ago, by Aaron Schecter | Download | |
Schecter_Final_Report.pdf | Final Report | about 10 years ago, by Aaron Schecter | Download | |
Schecter_Project Proposal.docx | word | Project Proposal | over 10 years ago, by Aaron Schecter | Download |
Sources.csv | data | Sources of links | over 10 years ago, by Aaron Schecter | Download |
Targets.csv | data | Targets of links | over 10 years ago, by Aaron Schecter | Download |
Ken Kahn
zip file produces errors for all but 3 files
At least the NLOGO file is OK and runs. The broken files can be downloaded from the "Files" tab.
Posted almost 10 years ago