Zika babies and women's life-history
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This models reproductive decisions during life history in a context of fear of malformed babies caused by an endemic virus. For topicality the word Zika is used but this does not attempt realistic simulation of the epidemiology of that virus.
Each agent represents one woman.
The agent's reproductive condition is colour-coded: white = susceptible to starting a pregnancy red = pregnant blue = postpartum infecundability (immediately after giving birth a new conception is unlikely) green = contracepting grey = after the menopause
For simplicity, the effect of breastfeeding on lowering the probability of conception is treated as temporary infertility added to the postpartum infecundability time.
All agents in the model cohort are potentially fertile, in a marital relationship, and susceptible to pregancy in any month until menopause unless affected by postpartum infecundability or using contraception.
The only environmental feature is an endemic virus. The agent's patch colour changes to brown when the agent is infected by the virus, and it returns to the background colour if she recovers.
Labels on each agent show five variables in this sequence left to right: age, parity, ideal-family-size, months-pregnant, months-postpartum. Comparing parity (number of offspring) and ideal-family-size lets you see if the agent has yet completed her family at the number she wished.
HOW IT WORKS
SETUP creates agents representing women, the number determined by variable n-agents, arranged in a preferential-attachment social network. For simplicity the cohort of women (perhaps contemporaries from one college) stays constant as they age, and no one dies.
GO simulates one month of reproductive life history. For each woman, if pregnant the months are counted until birth. If fertile but not pregnant a decision is made whether to use contraception in that month. Then viral status is updated with a chance of becoming infected, and also a chance for an infected person to recover. Each agent calculates her fear of a deformed birth, based on awareness of infection and deformed births affecting three categories of people - self, social neighbours, and other people - with personal experience weighted highest and non-neighbours' experiences weighted lowest. Then agents are coloured to indicate condition and labels are rewritten. After a test to stop the simulation, each agents has one month added to her age.
The test stops the simulation if everyone has either completed her family (had as many births as she wants) or become infertile by reaching menopause.
Agent variables
ideal-family-size (a target number of children) fear (level of perceived risk of a virus-affected birth) foolhardy (tendency to ignore risk
Counters age (in years, incremented at every 12th month tick) months-pregnant (number of months since conception) postpartum (number of months of infecundability after birth) parity (number of times a woman has given birth) bore-zika-baby (virus-affected babies born to this woman)
State contracepting? (using contraception this month) menopause? (menopause has happened) (when either is TRUE the woman will not become pregnant)
Derived variable fertile? (short for: [ postpartum > 0 OR contracepting? OR menopause? ] )
Environment variables culture-breastfeeding-maximum (the number of months beyond which breastfeeding is normally stopped) zika-monthly-recovery-chance (probability % of removing infection from woman agent)
Counters zika-births (the number of virus-affected babies among the cohort)
Agent actions
The decision to contracept first checks if the number of offspring has reached the agent's ideal family size. If so then contraception will be used until menopause.
The level of fear of virus effects is shaped by knowledge of infections and birth effects among close friends and (with a smaller degree of weighting) the wider cohort. If fear exceeds a threshold the agent will defensively contracept.
HOW TO USE IT
Before SETUP: n-agents slider sets the number of women. zika-prevalence slider sets the rate of viral infection. culture-ideal-family-size slider sets a norm, from which using a Poisson distribution each woman has an individualised target.
Try single GO steps initially to see pregnancies beginning, infections, contraceptive use decisions. Also inspect the labels. The numbers immediately left and right of a turtle are the counters for pregnancy and postpartum infecundability. The other numbers, starting leftmost, are age, ideal family size, and parity (number of offspring).
Since the cohort of women is fixed, and the simulation only ends when no agents want to or can give birth, the latter half of most runs will be mostly uneventful and I suggest increasing the Netlogo speed to maximum after around 120 months.
Inputs culture-ideal-family-size = typical aspiration regarding number of offspring. zika-prevalence = the rate at which people become infected by virus.
Outputs Any of the counters can be treated as outputs, but those plotted are total numbers of births and virus-affected births within this cohort of women.
THINGS TO NOTICE
Due to the Poisson distribution some women may have a zero ideal family size (childfree) and any such agents will start contracepting immediately.
THINGS TO TRY
Try adjusting the culture-ideal-family-size while infection chance is zero and see the outcomes.
Try adjusting the infection prevalence and see what effect it has.
EXTENDING THE MODEL
Immunity to the virus could be added. Currently a recovered person is susceptible to re-infection (or relapse) at the same rate as initially.
Age could affect the probability of conception.
The ages could be recorded at which each agent has first birth, second birth, etc. That would allow calculation of spacing (time intervals between births). Also could record the age at which menopause occurs.
The percentage of months spent in each condition (e.g. contracepting, pregnant, etc.) could be recorded for each agent.
The effect of breastfeeding is not guaranteed contraception but a reduced probability of conception, and over time that slowly increases. If realistic gradation were in place then the slider maximum breastfeeding duration could be raised to three years as was normal in some pre-modern cultures.
The minimum age for starting reproduction (21 years in model) could be adjusted.
NETLOGO FEATURES
The social network uses Netlogo's preferential attachment.
Poisson distribution is used for each agent's ideal-family-size.
Credits
Created using NetLogo version 5.3.1
Comments and Questions
extensions [ nw ] globals [ culture-breastfeeding-maximum zika-monthly-recovery-chance zika-births ] turtles-own [ age infected? contracepting? menopause? fertile? pregnant? months-pregnant months-postpartum breastfeeding ideal-family-size parity fear foolhardy bore-zika-baby ] to setup clear-all set culture-breastfeeding-maximum 7 set zika-monthly-recovery-chance 10 set zika-births 0 nw:generate-preferential-attachment turtles links n-agents [ ;; initialise agent counters and Boolean variables set parity 0 set months-pregnant 0 set months-postpartum 0 set pregnant? FALSE set menopause? FALSE set fertile? TRUE set contracepting? FALSE set infected? FALSE set bore-zika-baby 0 set fear 0 set foolhardy random 30 ;; age of agent in years set age 21 + random 10 ;; how many offspring agent wants set ideal-family-size random-poisson culture-ideal-family-size set shape "person" set color white setxy random-xcor random-ycor if show-labels? [ set label (word age " " parity " " ideal-family-size " " months-pregnant " " months-postpartum) ] ] repeat 300 [ layout-spring turtles links 0.2 7 1.3 ] reset-ticks end to go ask turtles [ ;; pregnant women only ifelse pregnant? [ set months-pregnant months-pregnant + 1 if months-pregnant > 9 [ birth ] ] ;; non-pregnant women [ if months-postpartum > 0 [ set fertile? FALSE set months-postpartum months-postpartum - 1 ] ifelse menopause? [ set fertile? FALSE ] [ decide-contracept ] if fertile? [ if random 100 > 90 [ conceive ] ] ] ;; all women if infected? [ if random 100 < zika-monthly-recovery-chance [ set infected? FALSE set pcolor black ] ] if random 100 < zika-prevalence * 10 [ set infected? TRUE set pcolor brown ] calculate-fear colour-status if show-labels? [ set label (word age " " parity " " ideal-family-size " " months-pregnant " " months-postpartum) ] ] ;; end of main ask turtles if all? turtles [ menopause? = TRUE OR parity = ideal-family-size ] [ stop ] age-increment tick end to colour-status ifelse pregnant? [ set color red ] [ if months-postpartum = 0 [ set color white ] ] ifelse months-postpartum > 0 [ set color blue ] ;; not postpartum [ if contracepting? [ set color green ] ] if menopause? = TRUE [ set color grey ] end to conceive set pregnant? TRUE set months-pregnant 1 end to birth if infected? [ zika-birth ] ;; add 1 to number of offspring ever birthed by this agent set parity parity + 1 set pregnant? FALSE set months-pregnant 0 set breastfeeding random culture-breastfeeding-maximum ;; number of months before agent regains possibility of conceiving set months-postpartum 1 + breastfeeding end ;; every 12th month, age of all agents is incremented by 1 year to age-increment if ticks mod 12 = 0 [ ask turtles [ set age age + 1 ;; annual check for menopause starting if menopause? = FALSE [ if age > 40 [ if random 100 < 10 [ set menopause? TRUE ] ] if age > 50 [ if random 100 < 50 [ set menopause? TRUE ] ] if age > 55 [ set menopause? TRUE ] ] ] ] end to calculate-fear ;; initialise local variables let background 0 let impact-of-self-infected 0 let impact-of-self-bearing-zika-baby 0 let n-friends-infected 0 let impact-of-friend-infected 0 let n-friends-had-zika-baby 0 let impact-of-friend-having-zika-baby 0 let n-others-had-zika-baby 0 let impact-of-others-having-zika-baby 0 set background ( zika-prevalence * 10 ) ;; self is infected if infected? [ set impact-of-self-infected 30 ] if bore-zika-baby > 0 [ set impact-of-self-bearing-zika-baby 80 ] ;; friend is infected set n-friends-infected ( count link-neighbors with [ infected? ] ) set impact-of-friend-infected ( n-friends-infected * 10 ) ;; friend bore Zika baby set n-friends-had-zika-baby round ( sqrt count link-neighbors with [ bore-zika-baby > 0 ] ) set impact-of-friend-having-zika-baby ( n-friends-had-zika-baby * 40 ) ;; other bore Zika baby set n-others-had-zika-baby ( zika-births - n-friends-had-zika-baby ) set impact-of-others-having-zika-baby ( round ( sqrt n-others-had-zika-baby * 10 ) ) set fear background + impact-of-self-infected + impact-of-self-bearing-zika-baby + impact-of-friend-infected + impact-of-friend-having-zika-baby + impact-of-others-having-zika-baby - foolhardy ;; debugging the components of fear ;; show ( word background " FI:" impact-of-friend-infected " FB:" impact-of-friend-having-zika-baby " O:" impact-of-others-having-zika-baby " R:-" foolhardy ) end to decide-contracept set contracepting? FALSE set fertile? TRUE let contracept? FALSE ;; family incomplete so maybe try for conception if not too risky ifelse parity < ideal-family-size [ if random 100 < fear [ set contracept? TRUE ] ] ;; family complete [ set contracept? TRUE ] if contracept? [ set contracepting? TRUE set fertile? FALSE ] end to zika-birth ;; record that agent had a Zika-affected baby set bore-zika-baby bore-zika-baby + 1 ;; increment cohort total set zika-births zika-births + 1 end
There is only one version of this model, created almost 9 years ago by John McKeown.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Zika babies and women's life-history.png | preview | Preview for 'Zika babies and women's life-history' | almost 9 years ago, by John McKeown | Download |
This model does not have any ancestors.
This model does not have any descendants.