DOI: 10.3886/e120585
title: Re-introducing the Cambridge Group Family Reconstitutions

description: English Population History from Family Reconstitution 1580-1837 (1997) was important both for its scope and its methodology. The volume was based on data from 26 family reconstitution studies carefully selected to represent 250 years of English demographic history (Wrigley, Davies, Oeppen, & Schofield, 2018). These data remain relevant for new research questions, such as studying the intergenerational inheritance of fertility and mortality. To expand their availability the family reconstitutions have been translated into new formats: a relational database, the Intermediate Data Structure (IDS) and an episode file for fertility analysis. This paper describes that process and examines the impact of methodological decisions on analysis of the data. Wrigley, Davies, Oeppen, and Schofield were sensitive to changes in the quality of the parish registers and cautiously applied the principles of family reconstitution developed by Louis Henry. We examine how these choices affect the measurement of fertility and biases that are introduced when important principles are ignored. <br><br><br><br><br>
description: Program code for "Re-introducing the Cambridge Group Family Reconstitutions"<br> George Alter, University of Michigan<br> August 4, 2020<br><br>1. Creating the "Chronicle" file<br>The Chronicle file was created using Microsoft Access file CAMPOP_fert_groups_to_Chronicle.accdb<br><br>a. Due to the size of the CamPOP reconstitution files in IDS, chronicle and episode files were created for 5 sub-samples of parishes and ultimately concatenated in Stata. Queries 00A to 00E read IDS tables from the full set of parishes and copy sub-samples of parishes to work on. Tables in the full dataset are connected to this database by linking to an external Access database, and they are renamed with "_all" (e.g. CONTEXT_all). The sub-samples use the original IDS table names (e.g. CONTEXT, INDIVIDUAL, etc.). <br><br>b. Macro "run chronicle" invokes all the queries used to create the Chronicle file. "run chronicle" begins by calling two other macros "Run bd_dates" and "run event first last".<br><br>c. "Run bd_dates" creates the "bd_dates" table, which organizes dates of birth and death for each individual. Dates reported as "birth_date" are preferred to dates of "baptism_date", and dates of "death_date" are preferred to "funeral_date". <br><br>When dates are incomplete, 15 is imputed for the day and 6 for the month. Estimated dates are recorded in the "best" (birth estimation)and "dest" (death estimation) columns of table "bd_dates". The "bd_dates" table also includes "sex".<br><br>d. "run event first last" identifies the first and last event in each family history. Events are stored in table "all_fam_events". When deaths of the husband and/or wife are observed, the last event is the earliest death or the wife's 50th birthday. If death dates of spouses are no available, the last event involving a child is assigned. If there are no events to children, the date of marriage is usually the last event. <br><br>e. "run chronicle" adds rows to the Chronicle file for each event and variable used in fertility analysis.<br>-- Marital "Unions" are identified with an ID_C found in the INDIV_CONTEXT table<br>-- If a birth date is not available for any child in the family, all events for the family are discarded.<br>-- For each child, we identify the dates of birth and death of the previous child. <br>-- Twins are recorded as separate records in the Chronicle file.<br>-- An "end of lactation" event is created 365+280 days after each birth. If the next birth is less than 365+280 days, the "end of lactation" event ends at the birth. The death of the preceding child (or death of last surviving twin) ends lactation with a lag of 280 days.<br>-- Family histories are removed from the Chronicle file if there is no date for the start of the union or only one date in the history.<br>-- Values for "DayFrac" (aka "offset") are added to rows in Chronicle by Type or by Value within some Types. "DayFrac" is a value between 0 and .99 used to sequence events that occur on the same day. <br>-- Tables are produced showing duplicate events. The Stata program used to create episodes does not allow an event type to occur twice on the same day.<br><br>2. Chronicle tables for subsamples in CAMPOP_fert_groups_to_Chronicle.accdb were converted to a Stata .dta file using the StatTransfer program. <br><br>3. chron_fix&run.do<br>This Stata script converts Chronicle files to Episode files using a modified version of Quaranta's EpisodesFileCreator.do script (see chron_run.do below). chron_fix&run.do runs the episode create 5 times on each of the subsamples exported from the CAMPOP_fert_groups_to_Chronicle.accdb database. It also changes values of DayFrac equal to .5 to .4, which resolved date collisions caused by twins. <br><br>4. chron_run.do<br>This is a modified version of Quaranta's EpisodesFileCreator.do that converts a chronicle file into an episodes file.<br>This script reads variable descriptions from the VarSetup.dta file.<br><br>chron_run.do was modified from EpisodesFileCreator.do to make debugging the data easier. The EpisodesFileCreator is sensitive to duplicate events and other problems in the chronicle file. In several places temporary variables or files are saved to make it easier to find problems in the chronicle file.<br><br>5. rates_graph_v2.do<br>This .do file creates most of the tables and graphs used in the paper. Each set of rules for selecting fertility histories is in a .do file, such as Fert_select_standard.do for the "Reference sample". <br><br>The selection do files call fert_init_v2a.do to read the data and fert_stset_25y.do to split the data into 25-year periods and 5-year age groups. Then, fertility rates are computed by age and period and saved in .dta files. <br><br>rates_graph_v2.do combines .dta files of fertility rates into a single dataset which is used to graph fertility rates by age and period. The Stata strate command is used to compute rates by age and period. Each .do file creates a sampleType variable indicating which selection criteria it uses.<br><br><br>6. Fertility history selection scripts<br><br>sampleType<br> 1 Fert_select_standard.do -- "Reference sample"<br> 2 Fert_select_endbirth.do -- Fertility history ends in a birth<br> 3 Fert_select_DoBM_est.do -- Mother's date of birth estimated<br> 4 Fert_select_DoMarr_est.do -- Date of marriage estimated<br> 5 Fert_select_endDeaths_est.do -- Date of death used to end history is estimated<br> 6 Fert_select_dthlt50.do -- Fertility history ends with spouse death before wife reaches age 50<br> 7 Fert_select_end2Deaths.do -- Death dates for both husband and wife available<br> 8 Fert_select_notQual.do -- Includes data from periods when recording of events is considered incomplete<br> 9 Fert_select_remarr.do -- Family histories in which one spouse had been previously married<br>10 Fert_select_nonselect.do -- Includes data from years not included by CamPOP selection criteria <br>11 Fert_select_age50.do -- Family histories in which both spouses survive until the wife reaches age 50<br>12 Fert_select_birthEst.do -- One or more birth dates of children are estimated<br>13 Fert_select_birth_YYYY.do -- One or more birth dates of children is only given as year without day and month<br>14 Fert_select_remarrW.do -- Second marriage for wife<br>15 Fert_select_remarrH.do -- Second marriage for husband<br>16 Fert_select_occupations.do -- Occupation of husband is known<br><br>7. fert_init_v2a.do <br>fert_init_v2a.do reads the episode files and combines them into a single dataset. Variable and value labels are added. Dates are converted from to Stata's internal date format.<br><br>8. fert_stset_25y.do<br>fert_stset_25y.do uses Stata survival time (st) functions to split the data into time periods and age groups. <br><br>9. occ_parish_yr25.do and occ_parish_yr25.R<br>occ_parish_yr25.do and occ_parish_yr25.R create Figure 12. Proportion of Husbands with Occupations by Parish and Time Period<br>occ_parish_yr25.do is a stata script that aggregates data on husband's occupation into 25-year periods.<br>occ_parish_yr25.R is an R script that creates the "ridge" plat used in Figure 12. <br> <br> <br><br> <br> <br><br><br>