Crit2IntelligenceLabourMarkets
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
(a general understanding of what the model is trying to show or explain)
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
CREDITS AND REFERENCES
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
Comments and Questions
breed [candidates candidate] breed [employers employer] globals [ hires total-match-quality ] candidates-own [ true-capability perceived-capability capability-tier narrative evidence prestige employed? false-negative-counted? true-fit ] employers-own [ required-capability w-narrative w-evidence w-prestige threshold job-filled? ] to setup clear-all set hires 0 set total-match-quality 0 create-candidates num-candidates [ setxy random-xcor random-ycor set shape "person" set size 1 if capability-distribution = "uniform" [ set true-capability random-float 1 ] if capability-distribution = "normal" [ set true-capability clamp01 (random-normal capability-mean capability-sd) ] if capability-distribution = "bimodal" [ ifelse random-float 1 < high-pool-share [ set true-capability clamp01 (random-normal 0.75 0.10) ] [ set true-capability clamp01 (random-normal 0.35 0.10) ] ] set capability-tier assign-tier true-capability set perceived-capability clamp01 (true-capability + random-normal self-knowledge-bias capability-self-noise) set narrative signal-from-cap perceived-capability narrative-fidelity set evidence signal-from-cap true-capability evidence-fidelity set prestige signal-from-cap true-capability prestige-fidelity set employed? false set false-negative-counted? false set true-fit 0 set color tier-color capability-tier ] create-employers num-employers [ setxy random-xcor random-ycor set shape "square" set size 1.4 set color red set required-capability random-float 1 set threshold hiring-threshold set job-filled? false apply-market-mode ] clear-all-plots reset-ticks end to go ask candidates with [not employed?] [ apply-to-job ] do-plots tick end to apply-to-job let open-employers employers with [not job-filled?] if count open-employers = 0 [ stop ] let target one-of open-employers let score ( ([w-narrative] of target * narrative) + ([w-evidence] of target * evidence) + ([w-prestige] of target * prestige) + random-normal 0 (screening-noise * 0.05) ) set true-fit (1 - abs (true-capability - [required-capability] of target)) if score > [threshold] of target [ set employed? true set color green set hires hires + 1 set total-match-quality total-match-quality + true-fit ask target [ set job-filled? true ] ] if (true-capability > high-capability-threshold) and (not employed?) and (not false-negative-counted?) [ set false-negative-counted? true ] end to apply-market-mode if market-mode = "narrative-first" [ set w-narrative 0.70 set w-evidence 0.20 set w-prestige 0.10 ] if market-mode = "evidence-first" [ set w-narrative 0.10 set w-evidence 0.75 set w-prestige 0.15 ] if market-mode = "balanced" [ set w-narrative 0.33 set w-evidence 0.34 set w-prestige 0.33 ] if market-mode = "custom" [ set w-narrative narrative-weight-global set w-evidence evidence-weight-global set w-prestige prestige-weight-global ] end to-report signal-from-cap [cap fidelity] report clamp01 ((fidelity * cap) + ((1 - fidelity) * random-float 1)) end to-report clamp01 [x] report max list 0 (min list 1 x) end to-report assign-tier [cap] if cap >= 0.67 [ report "high" ] if cap >= 0.33 [ report "mid" ] report "low" end to-report tier-color [tier] if tier = "high" [ report orange ] if tier = "mid" [ report sky ] report gray + 1 end to-report employment-rate if count candidates = 0 [ report 0 ] report count candidates with [employed?] / count candidates end to-report average-match-quality if hires = 0 [ report 0 ] report total-match-quality / hires end to-report false-negatives report count candidates with [false-negative-counted?] end to-report false-negative-rate let denom count candidates with [true-capability > high-capability-threshold] if denom = 0 [ report 0 ] report false-negatives / denom end to-report match-quality-gini let mq [true-fit] of candidates with [employed?] if length mq < 2 [ report 0 ] let mu mean mq if mu = 0 [ report 0 ] report standard-deviation mq / mu end to-report capability-utilization let pool-total sum [true-capability] of candidates if pool-total = 0 [ report 0 ] report sum [true-capability] of candidates with [employed?] / pool-total end to-report avg-signal-gap if count candidates = 0 [ report 0 ] report mean [narrative - evidence] of candidates end to-report employment-rate-high let pool count candidates with [capability-tier = "high"] if pool = 0 [ report 0 ] report count candidates with [capability-tier = "high" and employed?] / pool end to-report employment-rate-mid let pool count candidates with [capability-tier = "mid"] if pool = 0 [ report 0 ] report count candidates with [capability-tier = "mid" and employed?] / pool end to-report employment-rate-low let pool count candidates with [capability-tier = "low"] if pool = 0 [ report 0 ] report count candidates with [capability-tier = "low" and employed?] / pool end to-report match-quality-high let hired candidates with [capability-tier = "high" and employed?] if count hired = 0 [ report 0 ] report mean [true-fit] of hired end to-report match-quality-mid let hired candidates with [capability-tier = "mid" and employed?] if count hired = 0 [ report 0 ] report mean [true-fit] of hired end to-report match-quality-low let hired candidates with [capability-tier = "low" and employed?] if count hired = 0 [ report 0 ] report mean [true-fit] of hired end to-report false-negs-high report count candidates with [capability-tier = "high" and false-negative-counted?] end to-report false-negs-mid report count candidates with [capability-tier = "mid" and false-negative-counted?] end to-report false-negs-low report count candidates with [capability-tier = "low" and false-negative-counted?] end to do-plots set-current-plot "Employment by tier" set-current-plot-pen "high" plot employment-rate-high set-current-plot-pen "mid" plot employment-rate-mid set-current-plot-pen "low" plot employment-rate-low set-current-plot "False negatives by tier" set-current-plot-pen "high tier" plot false-negs-high set-current-plot-pen "mid tier" plot false-negs-mid set-current-plot "Quality vs utilization" set-current-plot-pen "match-quality" plot average-match-quality set-current-plot-pen "utilization" plot capability-utilization set-current-plot-pen "signal gap" plot avg-signal-gap end
There is only one version of this model, created 11 days ago by Mike Sheerin.
Attached files
| File | Type | Description | Last updated | |
|---|---|---|---|---|
| Crit2IntelligenceLabourMarkets.png | preview | Preview for 'Crit2IntelligenceLabourMarkets' | 11 days ago, by Mike Sheerin | Download |
This model does not have any ancestors.
This model does not have any descendants.
Download this model