Birth Number and Intervals
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model simulates the growth of a "natural fertility" (no birth control) population. Agents age, reproduce, and die according to different parameters. Unlike other models that simulate reproduction, this one takes into account precise proximate determinants of fertility such as risk of pregnancy, risk of miscarriage, etc., making the model an accurate microsimulation of human natural fertility populations.
HOW IT WORKS
Every month, a female agent between the years of 15-45 has a certain probability of conceiving of a child if they are above their "marriage age." At five months pregnant (based on Preston, Heuveline, and Guillot 2000), every pregnancy risks a miscarriage. If there is a miscarriage the pregnancy is terminated and the agent is fertile again. If the agent does not miscarry, then at nine months the agent creates an offspring. The offspring is subjected to an "infant mortality" probability of dying at birth, is assigned a gender, and starts to age. Meanwhile, the parent continues to be infertile until a set number of postpartum months, after which they become fertile and are again subject to the possibility of conceiving a child.
HOW TO USE IT
Every tick is worth one month. Consequently, the agent age is considered in terms of months. However, the marriage age, life expectancy, and "run length" of the program, all of which are controlled with sliders, are in years. This program follows the older demographic convention of referring to the age of initiation of sex as "marriage age." This is done as a shorthand way of referring to the age at which the agent is consistently exposed to the risk of pregnancy.
To provide maximum control over the starting population, the ages and genders of the starting agents are initialized in the code itself. All agents have a "monthspreg" ("months pregnant") score of -1 until they become pregnant, at which time it becomes a 0. The infantmortality, percfemaleatbirth, and perc_miscarriage sliders are all percentage probabilities of infants dying, the offspring being female, and the probability of a miscarriage, respectively.
The fertility (.2), miscarriage probability (.2), and the postpartum infertility time period (7.5) are all initialized to values based on Preston, Heuveline, and Guillot (2000). Percentage female at birth is derived from average sex ratios at birth for countries that do not report significant female infanticide. Breastfeeding and other behaviors may alter these parameters and may need to be modified accordingly.
THINGS TO NOTICE
Remember to make sure that agent age is treated in months while the other time parameters are all considered in terms of years.
THINGS TO TRY
This model is particularly useful in concert with BehaviorSpace. Specifically, the model can be run multiple times in order to derive an average total fertility rate, population pyramids, or other measures, and the parameters can be modified in order to examine the effects of different changes on these demographic characteristics.
If the sum total offspring of the founding set of agents is desired, and not just the fertility of the females for the calculation of TFR and other purposes, set the percentage female to 100. This way all members are capable of reproducing.
NETLOGO FEATURES
This code is relatively simple, relying on random functions, hatching, and a series of "if" statements.
RELATED MODELS
This model is comparable to any of the other NetLogo models that simulate reproduction.
CREDITS AND REFERENCES
Preston, Samuel, Patrick Heuveline, and Michel Guillot. "Demography: measuring and modeling population processes." (2000). Wiley-Blackwell.
Comments and Questions
turtles-own [age female monthspreg miscarriagenum birthnum] to setup clear-all create-turtles 11 [ setxy random-xcor random-ycor ] set postpartum_infertility 8 set marriage_age 15 set perc_female_at_birth 49 set fertility 20 set runlength 55 set perc_miscarriage 20 set life_expectancy 45 ask turtle 10 [set age -24 set female 1 set monthspreg -1 set birthnum 0] ask turtle 9 [set age 0 set female 1 set monthspreg -1 set birthnum 0] ask turtle 8 [set age 264 set female 1 set monthspreg -1 set birthnum 0] ask turtle 7 [set age 192 set female 1 set monthspreg -1 set birthnum 0] ask turtle 5 [set age 192 set female 1 set monthspreg -1 set birthnum 0] ask turtle 6 [set age 168 set female 1 set monthspreg -1 set birthnum 0] ask turtle 0 [set age 192 set female 1 set monthspreg -1 set birthnum 0] ask turtle 1 [set age 216 set female 1 set monthspreg -1 set birthnum 0] ask turtle 2 [set age 240 set female 1 set monthspreg -1 set birthnum 0] ask turtle 3 [set age 264 set female 1 set monthspreg -1 set birthnum 0] ask turtle 4 [set age 288 set female 1 set monthspreg -1 set birthnum 4] reset-ticks end to go tick if ticks >= (runlength * 12) [ stop ] ask turtles [increment-age] ask turtles [increment-monthspreg] ask turtles [conceive] ask turtles [miscarry] ask turtles [birth] ask turtles [dopostpartum] ask turtles [check-death] ;; increase the tick counter by 1 each time through end to increment-age set age (1 + age) end to increment-monthspreg if monthspreg > -1 [ set monthspreg (1 + monthspreg)] end to conceive if random 100 <= fertility and monthspreg = -1 and female = 1 and age >= (marriage_age * 12 ) and age <= 540 ; 15-45 [set monthspreg 0 ] end to miscarry if random 100 < perc_miscarriage and monthspreg = 5 and female = 1 [set monthspreg -1 set miscarriagenum (1 + miscarriagenum)] end to birth if monthspreg = 9 and female = 1 and random 100 >= infant_mortality [ hatch 1 [ set birthnum (1 + birthnum) set age 0 setxy random-xcor random-ycor ifelse random 100 < perc_female_at_birth [set female 1] [set female 0]] ] end to dopostpartum if monthspreg = 9 + postpartum_infertility [set monthspreg -1] end to check-death if age = (life_expectancy / 12) [ die ] ;; Dies once they hit life expectancy end
There is only one version of this model, created almost 7 years ago by Stephen Cranney.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Birth Number and Intervals.png | preview | Preview for 'Birth Number and Intervals' | almost 7 years ago, by Stephen Cranney | Download |
This model does not have any ancestors.
This model does not have any descendants.