Education as a signal of ability2
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This section could give a general understanding of what the model is trying to show or explain.
HOW IT WORKS
This section could explain what rules the agents use to create the overall behavior of the model.
HOW TO USE IT
This section could explain how to use the model, including a description of each of the items in the interface tab.
THINGS TO NOTICE
This section could give some ideas of things for the user to notice while running the model.
THINGS TO TRY
This section could give some ideas of things for the user to try to do (move sliders, switches, etc.) with the model.
EXTENDING THE MODEL
This section could give some ideas of things to add or change in the procedures tab to make the model more complicated, detailed, accurate, etc.
NETLOGO FEATURES
This section could point out any especially interesting or unusual features of NetLogo that the model makes use of, particularly in the Procedures tab. It might also point out places where workarounds were needed because of missing features.
RELATED MODELS
This section could give the names of models in the NetLogo Models Library or elsewhere which are of related interest.
CREDITS AND REFERENCES
This section could contain a reference to the model's URL on the web if it has one, as well as any other necessary credits or references.
Comments and Questions
breed [ workers worker ] breed [ firms firm ] globals [ tiers ] workers-own [ offer ;; the greatest amount of money the worker has been offered pemployer ;; the potential employer of the worker ; employed? ability salary education utility employer ecost ] firms-own [ y-star ;; the beliefs of the firm hwage ;; the wage for the high ability workers lwage ;; the wage for the low ability workers sales ;; yearly sales the firm raises per tier cost ;; cost of operating per tier wage-schedule ;; wage schedule ] to setup ca ;; clear all set-default-shape firms "circle" set-default-shape workers "person" setup-workers ;; worker setup procedure setup-firms ;; firm setup procedure end to setup-workers create-workers number-of-workers[ setxy random-xcor random-ycor set ability (random types) + 1 repeat [who] of self [get-education] ;; education from 0~9 for each turtle set pemployer nobody ] end to setup-firms create-firms number-of-firms [ set size 2 setxy random-xcor random-ycor ; set sales (list 0) ; set cost (list 0) decide-beliefs setup-wage-schedule ] end to setup-wage-schedule set wage-schedule n-values types [random-float 1] end to decide-beliefs ;; firm procedure set y-star random 3 ;; firm believes that people with education above 1.5 will be high ability set hwage 3 set lwage 1 end ;; From here the go procedure ;; First, workers start with their initial values of education. Then, firms go and ;; make offers to workers. Next, workers accetp the highest offer. Now, workers and firms ;; calculate their utilities. to go ; ask firms ; [ offer-work ] ask workers [ accept-offer ] calculate-utility ; ask workers get-education end to get-education set education education + 1 set ecost education ^ 2 / ability end to calculate-utility ask firms [ set sales sum [ability] of workers with [employer = myself] set cost sum [salary] of workers with [employer = myself] ] ask workers [ set utility salary - ecost ] end to update-tiers ;; need to check if this works!! let emin min [education] of workers let emax max [education] of workers let tier-length (emax - emin) / types let counter emin let temp1 [who] of workers with [[education] of self >= counter and [education] of self <= (counter + tier-length)] set counter counter + tier-length let temp2 [who] of workers with [[education] of self > counter and [education] of self <= (counter + tier-length)] set tiers list temp1 temp2 repeat types - 2 [ set counter counter + tier-length set tiers lput [who] of workers with [[education] of self > counter and [education] of self <= (counter + tier-length)] tiers ] end to offer-wage ;; firm procedure foreach n-values types [?] ;; for 1, 2, 3, ..., types. This is just a counting variable [ let num ? ;; set the num counting variable to the current number let w item num [wage-schedule] of self ;; wage-schedule = [w1 w2 w3]. num denotes current w. let T item num tiers ;; tiers = [T1 T2 T3]. num denotes current T foreach T [ ;; for T1, T2, ... ask worker ? [ let temp w * [education] of self ;; offer wage of education * wage schedule if [offer] of self <= temp [ set offer temp set pemployer myself ]] ]] end to accept-offer set salary offer set employer pemployer ; set employed? true set pemployer nobody set offer 0 end to observe-performance ;; firm procedure set cost (list 0) set sales (list 0) foreach n-values types [?] [ ;; for each tier let num ? ;; current tier let temp workers with [employer = myself and member? [who] of self item num tiers] set cost lput sum [salary] of temp cost set sales lput sum [ability] of temp sales ] set cost remove-item 0 cost set cost remove-item 0 sales end
There is only one version of this model, created over 13 years ago by Will Kim.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.