Health Disparities #5: Combined Effects

Health Disparities #5: Combined Effects 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 503 times • Downloaded 43 times • Run 0 times
Download the 'Health Disparities #5: Combined Effects' 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 #5: Combined Effects

This model combines the effects of health care disparities in Model #3 and of the interaction of environment & segregatio in Model #4 to approximate the real DC most closely. Functionally, it is the default Model #4 with larger doctor office benefits for Pinks & smaller doctor office benefits for Browns.

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 on each side as doctor, bike, & building icons. Superfund sites are plotted randomly on each side as cow skulls.

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. To maintain the racial maldistribution of people between the East & West sides, half of new people born in the West are Pink and half are Brown while 15% of new people born in the East are Pink and 85% are Brown. 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.

THINGS TO NOTICE

The default model distributes Pinks & Browns in the West & East sides to mirror the distribution of Non-Hispanic Whites & Minorities in the 2010 Census. The default model gives positive health effects to parks, supermarkets, fitness centers, & doctor offices & negative effects to highways & superfund site. The default model gives larger doctor office benefits to Pinks & smaller doctor office benefits to Browns to illustrate the effects of disparities in access to health care & qualtiy of health care received.

Which side has the healthier environment?

How are Pinks & Browns affected differently by the environment?

How does this affect the # of sick people & # of ghosts?

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

THINGS TO TRY

Play with the sliders.

What happens if the effects of environment are increased? Decreased?

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

What happens if the difference in doctor office benefits between Pinks & Browns is increased? Decreased?

What happens if the starting number of Pinks & Browns is changed?

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.

The code to control the distribution of Pinks & Browns between the West & East sides look like this. Modify the "< N" to change the distributions. if left? and random-float 100 < 50 [set color 36 set pink? false set brown? true] if right? and random-float 100 < 85 [set color 36 set pink? false set brown? true]

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 3 [setxy random 20 random-pycor set size 3 set color yellow]
  create-stores 6 [setxy random -20 random-pycor set size 3 set color yellow]
  create-dumps 3 [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-fits 1 [setxy random 20 random-pycor set size 2 set color 125]
  create-fits 7 [setxy random -20 random-pycor set size 2 set color 125]
  create-docs 18 [setxy random 20 random-pycor set size 1.5 set color white]
  create-docs 39 [setxy random -20 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]
    if left? and random-float 100 < 50 [set color 36 set pink? false set brown? true]
    if right? and random-float 100 < 85 [set color 36 set pink? false set brown? true]
  ]
    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]
    if left? and random-float 100 < 50 [set color pink set brown? false set pink? true]
    if right? and random-float 100 < 15 [set color pink set brown? false set pink? true]
  ]
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 left?
    [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 random-float 100 < 50 [set color 36 set brown? true  set pink? false]
    ]]
    
  if health > 0 and random-float 100 < preproduce and right?
    [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 random-float 100 < 15 [set color pink set pink? true  set brown? false]
    ]]
    
  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 #5: Combined Effects.png preview Preview for 'Health Disparities #5: Combined Effects' over 11 years ago, by Ernest Moy Download

This model does not have any ancestors.

This model does not have any descendants.