The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.
powered by NetLogo
view/download model file: education_Income_information.nlogo
The model simulates the interactions between agents who own different levels of income and education. The agents that own lower levels of income and education try to imitate agents with higher values of these variables. The agents that are not satisfied then stop their working activity and they start to improve their education. Is important to evidence the role of information, well informed agents take better decisions regarding their formation, so the improvement of their education probably have more impact on their future income.
Each instant (that is represented by the aging factor of the agents) each "low income" agent choose a random agent with an higher level of education and income, then the agent start to improve his education to reach the "imitated" agent level of studies.
The effect on the income could be different if the "imitator" is well informed or not.
The button "Setup" create a number of agents equal to the number set on the slider "nAgents". For each agent the model assign a certain level of education and income. The x-axis of the world represent education, the y-axis represent income. The sliders "SystemAmbition" and "SystemInfo" permit to set the probabilities of having ambitious and well informed agents among the population.
The simulation start by clicking on the button "Go", then the agents start to move respecting their imitating formula and the results over average income and composition of the population are showed in the graphs.
Users could try to change the sliders of "SystemAmbition" and "SystemInfo" to obtain different results.
Important implications could derive by observing the section of the composition of the population where the percentages of "low", "medium" and "high" education individuals are monitored.
breed [agents agent] agents-own [education income age ambition wellinformed luck] to setup clear-all create-agents nAgents set-parameters set-cor end to set-parameters ask agents [set shape "person" set education 1 + random (max-pxcor - 1) set income 1 + random (max-pycor - 1) set age random 100 ifelse (random-float 1.0 <= SystemAmbition) [set ambition 1] [set ambition 0] ifelse (random-float 1.0 <= SystemInfo) [set wellinformed 1] [set wellinformed 0] set luck 0.5 + random-float 0.5] end to set-cor ask agents [set xcor education set ycor income if xcor <= 15 [set color yellow] if xcor > 15 and xcor <= 30 [set color green] if xcor > 30 [set color blue]] end to go aging educate-low-income educate-middle-income update-plotsI update-plotsII bad-luck end to aging ask agents [set age age + 1 if age > 100 [die] if age > 99 [wait 0.01 hatch 1 [set education 1 + random (max-pxcor - 1) set income 1 + random (max-pycor - 1) set age 0 ifelse (random-float 1.0 <= SystemAmbition) [set ambition 1] [set ambition 0] ifelse (random-float 1.2 <= SystemInfo) [set wellinformed 1] [set wellinformed 0] set luck 0.5 + random-float 0.5 set xcor education set ycor income if xcor <= 15 [set color yellow] if xcor > 15 and xcor <= 30 [set color green] if xcor > 30 [set color blue]]]] end to educate-low-income ask agents with [income < 15 and education < 15] [ let better sort agents with [ income > 15 and education > 15 ] let c ([education] of one-of better - [education] of self) let n 3 + random-float 1.5 let g random-float 2.0 let p income - 1 if ((0.5 * c) < p) and (ambition = 1) [ if wellinformed = 1 [ repeat c [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] if wellinformed = 0 [repeat c [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] wait 0.01 let drw (0.5 + n) * c let drb (0.5 + g) * c let q (45 - p) if wellinformed = 1 [ if drw > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drw < q [ repeat drw [set income income + 0.5 set ycor ycor + 0.5 ] ] ] if wellinformed = 0 [ if drb > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drb < q [ repeat drb [set income income + 0.5 set ycor ycor + 0.5] ] ] ] if ((0.5 * c) > p) and (ambition = 1) [ if wellinformed = 1 [ repeat p [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] if wellinformed = 0 [repeat p [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] wait 0.01 let drw (0.5 + n) * c let drb (0.5 + g) * c let q (45 - p) if wellinformed = 1 [ if drw > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drw < q [ repeat drw [set income income + 0.5 set ycor ycor + 0.5 ] ] ] if wellinformed = 0 [ if drb > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drb < q [ repeat drb [set income income + 0.5 set ycor ycor + 0.5] ] ] ] set ambition 0 ] end to educate-middle-income ask agents with [income < 30 and education < 30 and income > 15 and education > 15] [ let better sort agents with [ income > 30 and education > 30 ] let c ([education] of one-of better - [education] of self) let n 3 + random-float 1.5 let g random-float 2.0 let p income - 1 if ((0.5 * c) < p) and (ambition = 1) [ if wellinformed = 1 [ repeat c [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] if wellinformed = 0 [repeat c [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] wait 0.01 let drw (0.5 + n) * c let drb (0.5 + g) * c let q (45 - p) if wellinformed = 1 [ if drw > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drw < q [ repeat drw [set income income + 0.5 set ycor ycor + 0.5 ] ] ] if wellinformed = 0 [ if drb > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drb < q [ repeat drb [set income income + 0.5 set ycor ycor + 0.5] ] ] ] if ((0.5 * c) > p) and (ambition = 1) [ if wellinformed = 1 [ repeat p [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] if wellinformed = 0 [repeat p [set education education + 1 set income income - 0.5 set xcor xcor + 1 set ycor ycor - 0.5] ] wait 0.01 let drw (0.5 + n) * c let drb (0.5 + g) * c let q (45 - p) if wellinformed = 1 [ if drw > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drw < q [ repeat drw [set income income + 0.5 set ycor ycor + 0.5 ] ] ] if wellinformed = 0 [ if drb > q [ repeat q [set income income + 0.5 set ycor ycor + 0.5] ] if drb < q [ repeat drb [set income income + 0.5 set ycor ycor + 0.5] ] ] ] set ambition 0 ] end to update-plotsI set-current-plot "Number satisfied" set-current-plot-pen "satisfied" plot count agents with [ambition = 0] end to update-plotsII set-current-plot "AverageIncome" set-current-plot-pen "bad" let aincomebad mean [income] of agents with [wellinformed = 0 and ambition = 1] plot aincomebad set-current-plot-pen "well" let aincomewell mean [income] of agents with [wellinformed = 1 and ambition = 1] plot aincomewell end to bad-luck ask agents [if 1 > luck [let badluck income * random 1.0 set income income - badluck repeat badluck [set ycor ycor - 1]]] end