Labour Market Dynamics

No preview image

1 collaborator

Default-person Mike Sheerin (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 7.0.3 • Viewed 5 times • Downloaded 0 times • Run 0 times
Download the 'Labour Market Dynamics ' modelDownload this modelEmbed this model

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

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [candidates candidate]
breed [employers employer]

globals [
  hires
  total-match-quality
]

candidates-own [
  capability
  narrative
  evidence
  prestige
  employed?
  false-negative-counted?
]

employers-own [
  required-capability
  w-narrative
  w-evidence
  w-prestige
  threshold
]

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
    set color blue

    set capability random-float 1

    set evidence signal-from-capability capability evidence-fidelity
    set narrative signal-from-capability capability narrative-fidelity
    set prestige signal-from-capability capability prestige-fidelity

    set employed? false
    set false-negative-counted? false
  ]

  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 w-narrative narrative-weight-global
    set w-evidence evidence-weight-global
    set w-prestige prestige-weight-global
    set threshold hiring-threshold
  ]

  clear-all-plots
  reset-ticks
  refresh-my-plots
end 

to go
  ask candidates with [not employed?] [
    apply-to-job
  ]

  tick
  refresh-my-plots
end 

to apply-to-job
  let target-employer one-of employers

  let observed-score (
    ([w-narrative] of target-employer * narrative) +
    ([w-evidence] of target-employer * evidence) +
    ([w-prestige] of target-employer * prestige) +
    random-normal 0 (screening-noise * 0.2)
  )

  let true-fit (1 - abs (capability - [required-capability] of target-employer))

  if observed-score > [threshold] of target-employer [
    set employed? true
    set color green
    set hires hires + 1
    set total-match-quality total-match-quality + true-fit
  ]

  if (capability > high-capability-threshold) and
     (observed-score <= [threshold] of target-employer) and
     (not employed?) and
     (not false-negative-counted?) [
    set false-negative-counted? true
  ]
end 

to-report signal-from-capability [cap fidelity]
  let random-part random-float 1
  report (fidelity * cap) + ((1 - fidelity) * random-part)
end 

to-report employment-rate
  if count candidates = 0 [ report 0 ]
  report count candidates with [employed?] / count candidates
end 

to-report unemployment-rate
  if count candidates = 0 [ report 0 ]
  report count candidates with [not 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 high-capability-candidates
  report count candidates with [capability > high-capability-threshold]
end 

to-report false-negative-rate
  let high-capability-total high-capability-candidates
  if high-capability-total = 0 [ report 0 ]
  report false-negatives / high-capability-total
end 

to refresh-my-plots
  set-current-plot "Employment"
  if not plot-pen-exists? "Employment rate" [
    create-temporary-plot-pen "Employment rate"
  ]
  if not plot-pen-exists? "Unemployment rate" [
    create-temporary-plot-pen "Unemployment rate"
  ]

  set-current-plot "Match quality"
  if not plot-pen-exists? "Average match quality" [
    create-temporary-plot-pen "Average match quality"
  ]

  set-current-plot "False negatives"
  if not plot-pen-exists? "False negative rate" [
    create-temporary-plot-pen "False negative rate"
  ]

  set-current-plot "Employment"
  set-current-plot-pen "Employment rate"
  plot employment-rate
  set-current-plot-pen "Unemployment rate"
  plot unemployment-rate

  set-current-plot "Match quality"
  set-current-plot-pen "Average match quality"
  plot average-match-quality

  set-current-plot "False negatives"
  set-current-plot-pen "False negative rate"
  plot false-negative-rate
end 

There is only one version of this model, created 5 days ago by Mike Sheerin.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.