Health Disparities #3: Effects of Disparities in Health Care

Health Disparities #3: Effects of Disparities in Health Care preview image

1 collaborator

Default-person Ernest Moy (Author)

Tags

(This model has yet to be categorized with any tags)
Part of project 'Models of Health Disparities'
Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0.3 • Viewed 477 times • Downloaded 40 times • Run 0 times
Download the 'Health Disparities #3: Effects of Disparities in Health Care' 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?

Health Disparities Model #3: Effects of Disparities in Health Care

This model builds upon Health Disparities Model #2: Equal Environments. It introduces two races (Pinks & Browns) randomly distributed on the map. All environmental effects are set to zero except for the effect of doctor offices. The effects of doctor offices on Pinks & Browns are set separately to reflect disparities in access to health care & quality of health care received by the two races.

HOW IT WORKS

Environment: The red line divides the West & East sides of the map. Major parks (green) & highways (black) are mapped. US Census Bureau 2010 ZIP Code Business Patterns data are used to calculate the number of doctor offices (excluding mental health specialists), fitness centers, & supermarkets (grocery stores with 5+ employees) per 2,500 population on each side & plotted randomly as doctor, bike, & building icons. Superfund sites are plotted randomly as cow skulls. In this model, we reallocate doctor offices, fitness centers, & supermarkets so there are equal numbers on the two sides.

People: Each turn, people move, reproduce, get sick, and recover (if sick) randomly. Moving on parks & highways, within 5 spaces of supermarkets & fitness centers, or within 2 spaces of doctor offices & superfund sites can affect health. When they reproduce, Pinks make more Pinks & Browns make more Browns. When people get sick, they turn green, and when health reaches 0, they turn into ghosts which do not move.

Counters: These count the total # of people, # of sick people, % of people who are sick, # of dead people, & % of people who have died on each side (West & East) and of each race (Pink & Brown). The model stops if all people become ghosts or > 100 ghosts accrue on the map.

HOW TO USE IT

The starting # of Pink people, # of Brown people, rate of reproduction, rate of people getting sick, & rate of sick people recovering spontaneously can be set with the sliders on the left. The health effects of supermarkets, fitness centers, parks, superfund sites, highways, & doctor offices can be set positively or negatively with sliders on the right. The effects of doctor offices can be set separately for Pinks & Browns to reflect diparities in health care.

THINGS TO NOTICE

The default model gives zero health effects to parks, highways, supermarkets, fitness centers, & superfund site to isolate the effects of doctor offices. The default model gives more health benefit from doctor offices to Pinks & less benefit to Browns to reflect disparities in health care.

Which race has better health?

Do sick people & ghosts cluster is certain places? Why?

THINGS TO TRY

Play with the sliders.

What happens if the effect of doctor offices is set the same for Pinks & Browns? If the effect difference is increased?

What happens if the probability of sickness is increased? Decreased?

EXTENDING THE MODEL

Do you have 2 adjacent communities that you want to compare? Install NetLogo & edit the code to suit.

Under setup, map parks & highways as green & black patches.

Under setup-world, the numbers on the create- lines indicate the number of a specific item to map. ('Create-stores 3' means create 3 stores.) Edit these numbers to reflect the relative resources in your 2 communities. Also note that 'setxy random 20 random-pycor' places an item randomly on the East/Right side of the red line while 'setxy random -20 random-pycor' places an item randomly on the West/Left side.

CREDITS AND REFERENCES

Census data from US Census Bureau Amerian FactFinder (http://factfinder2.census.gov/faces/nav/jsf/pages/index.xhtml).

Superfund site locations from US Environmental Protection Agency (http://www.epa.gov/superfund/sites/).

Model by emoyusa@verizon.net

Comments and Questions

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

Click to Run Model

globals 
[
  ltotal
  rtotal
  nlsick
  nrsick
  nldead
  nrdead
  lrsick
  rrsick
  ptotal
  btotal
  npsick
  nbsick
  npdead
  nbdead
  prsick
  brsick
  lrdead
  rrdead
  prdead
  brdead
]
breed [people person]
breed [stores store]
breed [parks park]
breed [dumps dump]
breed [ghosts ghost]
breed [fits fit]
breed [docs doc]

turtles-own
[
  sick?
  dead?
  left?
  right?
  lsick?
  rsick?
  ldead?
  rdead?
  pink?
  brown?
  psick?
  bsick?
  pdead?
  bdead?  
  health
]

to setup
  
  __clear-all-and-reset-ticks
  ask patches
  [set pcolor 3
    if pxcor =  0 [set pcolor red]
    if pycor = -20 and pxcor < 0 [set pcolor green]
    if pxcor = 2 and pycor < -10 [set pcolor black]
    if pycor =  pxcor - 13 and pxcor > 3 [set pcolor black]
    if pycor =  pxcor - 12 and pxcor > 3 [set pcolor black]
    if pycor + pxcor =  -6 and pxcor > 3 [set pcolor black]
    if pycor + pxcor =  -7 and pxcor > 3 [set pcolor black]
    if pycor = -10 and pxcor > -2 and pxcor < 4 [set pcolor black]
    if pxcor = -2 and pycor > -12 and pycor < -6 [set pcolor black]
    if pycor =  pxcor - 9 and pxcor < -2 [set pcolor black]
    if pycor =  pxcor - 8 and pxcor < -2 [set pcolor black]
    if pycor =  pxcor - 11 and pxcor > 1 [set pcolor green]
    if pycor =  pxcor - 10 and pxcor > 10 [set pcolor green]
    if pxcor = 15 and pycor = -10 [set pcolor green]
    if pxcor = 16 and pycor = -10 [set pcolor green]
    if pxcor = 15 and pycor = -9 [set pcolor green]
    if pxcor = 16 and pycor = -9 [set pcolor green]
    if pxcor = 17 and pycor = -10 [set pcolor green]
    if pxcor = -10 and pycor > 10 [set pcolor green]
    if pxcor = -11 and pycor > 10 [set pcolor green]
    if pxcor = -9 and pycor > 10 [set pcolor green]
    ]
  setup-world
end 

to setup-world
  set-default-shape people "person"
  set-default-shape stores "building store"
  set-default-shape dumps "cow skull"
  set-default-shape fits "bike"
  set-default-shape docs "person doctor"
  create-stores 4 [setxy random 20 random-pycor set size 3 set color yellow]
  create-stores 4 [setxy random -20 random-pycor set size 3 set color yellow]
  create-stores 1 [setxy 0 random-pycor set size 3 set color yellow]
  create-dumps 2 [setxy random 20 random-pycor set size 1 set color white]
  create-dumps 2 [setxy random -20 random-pycor set size 1 set color white]
  create-dumps 1 [setxy 0 random-pycor set size 1 set color white]
  create-fits 4 [setxy random 20 random-pycor set size 2 set color 125]
  create-fits 4 [setxy random -20 random-pycor set size 2 set color 125]
  create-docs 28 [setxy random 20 random-pycor set size 1.5 set color white]
  create-docs 28 [setxy random -20 random-pycor set size 1.5 set color white]
  create-docs 1 [setxy 0 random-pycor set size 1.5 set color white]
  create-some-people
end 

to create-some-people
  create-people npinkpeople
  [
    setxy random-pxcor random-pycor
    set color pink
    set size 1.5
    set heading 90 * random 4
    set sick? false
    set dead? false
    set lsick? false
    set ldead? false
    set rsick? false
    set rdead? false
    set pink? true
    set brown? false
    set psick? false
    set bsick? false
    set pdead? false
    set bdead? false     
    set health 100
    if xcor < 0 [set left? true set right? false]
    if xcor > 0 [set right? true set left? false]
    if xcor = 0 [set left? false set right? false]
  ]
    create-people nbrownpeople
  [
    setxy random-pxcor random-pycor
    set color 36
    set size 1.5
    set heading 90 * random 4
    set sick? false
    set dead? false
    set lsick? false
    set ldead? false
    set rsick? false
    set rdead? false
    set pink? false
    set brown? true
    set psick? false
    set bsick? false
    set pdead? false
    set bdead? false     
    set health 100
    if xcor < 0 [set left? true set right? false]
    if xcor > 0 [set right? true set left? false]
    if xcor = 0 [set left? false set right? false]
  ]
end 

to go
  if not any? people [ stop ]
  if (nldead + nrdead) > 100 [stop]
  people-wander
  tick
  ;;do-plot
end 

to people-wander
  ask people 
  [
  if health < 0
    [set shape "ghost" set size 1]
  if health > 0
    [rt 90 * random 4
    fd 1]
 if health < 100 and health > 0 and random-float 100 < precover 
    [set health 100] 
    
  if health > 0 and random-float 100 < preproduce and pink?
    [hatch 1 [   
    set sick? false
    set dead? false
    set lsick? false
    set ldead? false
    set rsick? false
    set rdead? false
    set pink? true
    set brown? false
    set psick? false
    set bsick? false
    set pdead? false
    set bdead? false     
    set health 100
    ]]
    
  if health > 0 and random-float 100 < preproduce and brown?
    [hatch 1 [
    set sick? false
    set dead? false
    set lsick? false
    set ldead? false
    set rsick? false
    set rdead? false
    set pink? false
    set brown? true
    set psick? false
    set bsick? false
    set pdead? false
    set bdead? false     
    set health 100
    ]]
    
  if health > 0 and random-float 100 < psick 
    [set health (health - random-float 100)]
    
  let storecare one-of stores in-radius 5
  if storecare != nobody and health > 0 and health < 150
  [set health (health + health-from-market)]
  
  let fitcare one-of fits in-radius 5
  if fitcare != nobody  and health > 0 and health < 150
  [set health (health + health-from-fitness )]
  
  let doccare one-of docs in-radius 2
  if doccare != nobody and health > 0 and health < 150 and pink?
  [set health (health + pink-health-from-doctor)]  
  if doccare != nobody and health > 0 and health < 150 and brown?
  [set health (health + brown-health-from-doctor)]  
  
  let dumpcare one-of dumps in-radius 2
  if dumpcare != nobody   and health > 0 and health < 150
  [set health (health + health-from-superfund)]  
  
  if pcolor = green and health > 0 and health < 150
  [set health (health + health-from-park)] 
  
  if pcolor = black and health > 0 and health < 150
  [set health (health + health-from-highway)] 
  
  check-sick
  
  ]
end 

to check-sick
  if health >= 100 and pink?
    [set sick? false
    set dead? false
    set lsick? false
    set rsick? false
    set ldead? false
    set rdead? false
    set psick? false
    set bsick? false
    set pdead? false
    set bdead? false    
    set color pink]
  if health >= 100 and brown?
    [set sick? false
    set dead? false
    set lsick? false
    set rsick? false
    set ldead? false
    set rdead? false
    set psick? false
    set bsick? false
    set pdead? false
    set bdead? false    
    set color 36]
  if health > 0 and health < 100
    [set sick? true
    set dead? false
    set color lime]
  if health < 0 
    [set dead? true
    set sick? false
    set lsick? false
    set rsick? false
    set psick? false
    set bsick? false
    set color white]

  if xcor < 0 [set left? true set right? false]
  if xcor > 0 [set right? true set left? false]
  if xcor = 0 [set left? false set right? false]
  if left? and sick? [set lsick? true set ldead? false]
  if right? and sick? [set rsick? true set rdead? false]
  if left? and dead? [set ldead? true set lsick? false set rsick? false set left? false set right? false]
  if right? and dead? [set rdead? true set rsick? false set lsick? false set left? false set right? false]
  if pink? and sick? [set psick? true set pdead? false]
  if brown? and sick? [set bsick? true set bdead? false]
  if pink? and dead? [set pdead? true set psick? false set bsick? false set pink? false set brown? false]
  if brown? and dead? [set bdead? true set bsick? false set psick? false set pink? false set brown? false]
    
  set ltotal count people with [left?]
  set nlsick count people with [lsick?] 
  set nldead count people with [ldead?]
  set rtotal count people with [right?]
  set nrsick count people with [rsick?] 
  set nrdead count people with [rdead?]
  set lrsick nlsick / ltotal * 100
  set rrsick nrsick / rtotal * 100
  set ptotal count people with [pink?]
  set npsick count people with [psick?] 
  set npdead count people with [pdead?]
  set btotal count people with [brown?]
  set nbsick count people with [bsick?] 
  set nbdead count people with [bdead?]

  set prsick npsick / ptotal * 100
  set brsick nbsick / btotal * 100
  set lrdead nldead / (nldead + ltotal) * 100
  set rrdead nrdead / (nrdead + rtotal) * 100
  set prdead npdead / (npdead + ptotal) * 100
  set brdead nbdead / (nbdead + btotal) * 100
end 

There are 2 versions of this model.

Uploaded by When Description Download
Ernest Moy almost 12 years ago update Download this version
Ernest Moy almost 12 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Health Disparities #3: Effects of Disparities in Health Care.png preview Preview for 'Health Disparities #3: Effects of Disparities in Health Care' over 11 years ago, by Ernest Moy Download

This model does not have any ancestors.

This model does not have any descendants.