Difference between revisions of "3.5 Synthetic Population"
(Updated to NERPMAB2) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
<h3 id="id-3.5SYNTHETICPOPULATION-Overview"><span style="color: rgb(255,102,0);">Overview</span></h3><p class="BodyParagraph">In trip-based models, trip rates are applied to aggregate households grouped in Traffic Analysis Zones (TAZs) to generate trips. On the other hand, in an activity-based model (ABM), choices involving activities and trips are simulated for each of the individual persons in households. Hence, it is necessary to first develop a “synthetic population” of the regions’ residents. Synthetic population is a list of households and persons that is based on observed or forecasted distributions of socioeconomic attributes and created by sampling detailed Census microdata. This produces individual household agents and individual person agents that are subjects of the simulation.</p><p class="BodyParagraph">Prior to their use in the simulation, synthetic populations are represented in data tables, often in a relational database or some equivalently structured file system. Typically there are separate tables for households and person records. The household records file provides details about various household-level socio-demographic attributes such as household income, size, number of workers, etc. Similarly, the person records file provides information about person-level attributes such as age, gender, employment status, etc. Person records are linked to household records through ID numbers.</p><h4 class="BodyParagraph" id="id-3.5SYNTHETICPOPULATION-TABLE3-2SAMPLEHOUSEHOLDRECORDSFILE">TABLE 3-2 SAMPLE HOUSEHOLD RECORDS FILE</h4><div class="table-wrap"> | <h3 id="id-3.5SYNTHETICPOPULATION-Overview"><span style="color: rgb(255,102,0);">Overview</span></h3><p class="BodyParagraph">In trip-based models, trip rates are applied to aggregate households grouped in Traffic Analysis Zones (TAZs) to generate trips. On the other hand, in an activity-based model (ABM), choices involving activities and trips are simulated for each of the individual persons in households. Hence, it is necessary to first develop a “synthetic population” of the regions’ residents. Synthetic population is a list of households and persons that is based on observed or forecasted distributions of socioeconomic attributes and created by sampling detailed Census microdata. This produces individual household agents and individual person agents that are subjects of the simulation.</p><p class="BodyParagraph">Prior to their use in the simulation, synthetic populations are represented in data tables, often in a relational database or some equivalently structured file system. Typically there are separate tables for households and person records. The household records file provides details about various household-level socio-demographic attributes such as household income, size, number of workers, etc. Similarly, the person records file provides information about person-level attributes such as age, gender, employment status, etc. Person records are linked to household records through ID numbers.</p><h4 class="BodyParagraph" id="id-3.5SYNTHETICPOPULATION-TABLE3-2SAMPLEHOUSEHOLDRECORDSFILE">TABLE 3-2 SAMPLE HOUSEHOLD RECORDS FILE</h4><div class="table-wrap"> | ||
− | {| class=" | + | {| class="wikitable" |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhno</strong></p> |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhsize</strong></p> |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhvehs</strong></p> |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhwkrs</strong></p> |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhftw</strong></p> |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhptw</strong></p> |
− | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhret</strong></p> |
− | |- | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhoad</strong></p> |
− | | class="confluenceTd" | <p> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhuni</strong></p> |
− | | class="confluenceTd" | <p align="center"> | + | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhhsc</strong></p> |
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hh515</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhcu5</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhincome</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hownrent</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hrestype</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhparcel</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhtaz</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhexpfac</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>samptype</strong></p> | ||
+ | |- | ||
+ | | class="confluenceTd" | <p>1</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">75095</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">2699</p> | ||
+ | | class="confluenceTd" | <p align="center">227</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">11</p> | ||
+ | |- | ||
+ | | class="confluenceTd" | <p>2</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">58074</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">2699</p> | ||
+ | | class="confluenceTd" | <p align="center">227</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">11</p> | ||
+ | |- | ||
+ | | class="confluenceTd" | <p>3</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">0</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">30288</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">3</p> | ||
+ | | class="confluenceTd" | <p align="center">23479</p> | ||
+ | | class="confluenceTd" | <p align="center">227</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">11</p> | ||
+ | |- | ||
+ | | class="confluenceTd" | <p>4</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">0</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">1802</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">3</p> | ||
+ | | class="confluenceTd" | <p align="center">37105</p> | ||
+ | | class="confluenceTd" | <p align="center">227</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">11</p> | ||
+ | |}</div><h4 id="id-3.5SYNTHETICPOPULATION-TABLE3-3SAMPLEPERSONRECORDSFILE">TABLE 3-3 SAMPLE PERSON RECORDS FILE</h4><div class="table-wrap"> | ||
+ | {| class="wikitable" | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>hhno</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pno</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pptyp</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pagey</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pgend</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pwtyp</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pwpcl</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pwtaz</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pwautime</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pwaudist</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pstyp</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pspcl</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pstaz</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>psautime</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>psaudist</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>puwmode</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>puwarrp</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>puwdepp</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>ptpass</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>ppaidprk</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pdiary</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>pproxy</strong></p> | ||
+ | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>psexpfac</strong></p> | ||
+ | |- | ||
+ | | class="confluenceTd" | <p>1</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | |||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">41</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | + | | class="confluenceTd" | <p align="center">-1</p> | |
− | + | | class="confluenceTd" | <p align="center">-1</p> | |
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center">1</p> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center"> | ||
− | | class="confluenceTd" | <p align="center"> | ||
| class="confluenceTd" | <p align="center">0</p> | | class="confluenceTd" | <p align="center">0</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | |- | + | |- |
− | | class="confluenceTd" | <p> | + | | class="confluenceTd" | <p>2</p> |
− | |||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | |||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">34</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | |||
− | |||
− | |||
− | |||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center">1</p> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | | + | | class="confluenceTd" | <p align="center">0</p> |
− | + | | class="confluenceTd" | <p align="center">-1</p> | |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
− | + | | class="confluenceTd" | <p align="center">-1</p> | |
− | | class="confluenceTd" | <p> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center"> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | | class="confluenceTd" | <p | + | |- |
+ | | class="confluenceTd" | <p>3</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">5</p> |
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">26</p> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
| class="confluenceTd" | <p align="center">0</p> | | class="confluenceTd" | <p align="center">0</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | |- | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
− | | class="confluenceTd" | <p align="center"> | + | | class="confluenceTd" | <p align="center">-1</p> |
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
− | | class="confluenceTd" | <p | + | |- |
+ | | class="confluenceTd" | <p>4</p> | ||
| class="confluenceTd" | <p align="center">1</p> | | class="confluenceTd" | <p align="center">1</p> | ||
+ | | class="confluenceTd" | <p align="center">4</p> | ||
+ | | class="confluenceTd" | <p align="center">34</p> | ||
| class="confluenceTd" | <p align="center">2</p> | | class="confluenceTd" | <p align="center">2</p> | ||
| class="confluenceTd" | <p align="center">0</p> | | class="confluenceTd" | <p align="center">0</p> | ||
− | |}</div><p class="BodyParagraph">Population synthesized by any synthetic population generator may be used with DaySim as long as the required household and person socio-demographic attributes are provided to it in the appropriate format. | + | | class="confluenceTd" | <p align="center">-1</p> |
− | {| class=" | + | | class="confluenceTd" | <p align="center">-1</p> |
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">0</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">-1</p> | ||
+ | | class="confluenceTd" | <p align="center">1</p> | ||
+ | |}</div><p class="BodyParagraph">Population synthesized by any synthetic population generator may be used with DaySim as long as the required household and person socio-demographic attributes are provided to it in the appropriate format. PopulationSim is an open platform for population synthesis and survey weighting. It emerged from Oregon DOT’s desire to build a shared, open, platform that could be easily adapted for statewide, regional, and urban transportation planning needs. It has the ability to control for both household and person level demographic attributes simultaneously.</p><h3 id="id-3.5SYNTHETICPOPULATION-PreparingSyntheticPopulationsforDaySim"><span style="color: rgb(255,102,0);">Preparing Synthetic Populations for DaySim</span></h3><p class="BodyParagraph">The design of the synthetic population should support the design of the activity-based model (DaySim in this case) and provide the variables it needs. In addition, the activity-based model should only rely on information that can be realistically provided in the synthetic population.</p><p class="BodyParagraph">Population synthesis generally consists of the synthesis of two sub-populations – those living in regular households and those living in non-institutionalized group quarters such as college dormitories. For this effort, an additional segment of population was synthesized which comprised of seasonal households. These segments were established to reflect the differences in travel patterns associated with these sub-populations as well as to provide the ability to support seasonal analyses. For example, the seasonal population is generally older than the permanent population, has lower levels of workforce participation, and clusters in certain geographic areas. All of these attributes influence travel patterns and the demand for travel.</p><p class="BodyParagraph">There are three major steps in creating a synthetic population:</p><ol><li>Specifying the inputs to the process—the control variables and sample households as well as the level of geographic resolution. Specifying the control variables is essential. In addition, there is often an additional step of specifying additional, uncontrolled variables to be added to the synthetic population.</li><li>Actually running a program that produces the synthetic households.</li><li>The third major step would be transforming the model-generated outputs into characteristics of the population that will be used throughout the rest of the model system. This could involve creating categorical variables out of continuous variables, reformulating income, or allocating households from the zonal level to a finer level of geographic resolution, such as a parcel.</li></ol><h4 id="id-3.5SYNTHETICPOPULATION-DaySimPersonTypes"><em>DaySim Person Types</em></h4><p class="BodyParagraph">Although person are being modeled in disaggregate form in an ABM, it is often useful to create person type categories. DaySim uses 8 such person types. Person type categories may be used for various purposes:</p><ol><li>As a basic segmentation for certain models, such as daily activity pattern models</li><li>To summarize and compare observed versus estimated data and calibrate models</li><li>As explanatory variables in models</li><li>As constraints on alternatives that are available; for example, work and school activities are only available to workers and student; and driving is restricted by age</li></ol><h4 id="id-3.5SYNTHETICPOPULATION-TABLE3-4DAYSIMPERSONTYPES">TABLE 3-4 DAYSIM PERSON TYPES</h4><div class="table-wrap"> | ||
+ | {| class="wikitable" | ||
| class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> No.</strong></p> | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong> No.</strong></p> | ||
| class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>Person Type</strong></p> | | class="highlight-red confluenceTd" data-highlight-colour="red" | <p class="TableHeadingGray"><strong>Person Type</strong></p> | ||
Line 134: | Line 278: | ||
| class="confluenceTd" | <p align="center">Unemployed</p> | | class="confluenceTd" | <p align="center">Unemployed</p> | ||
| class="confluenceTd" | <p align="center">None</p> | | class="confluenceTd" | <p align="center">None</p> | ||
− | |}</div><h4 id="id-3.5SYNTHETICPOPULATION-ControlAttributesandTargetDistributions"><em>Control Attributes and Target Distributions</em></h4><p class="BodyParagraph">There are three major inputs required for population synthesis of which the first step is to identify a set of control attributes and their levels. Next, target distributions of the control attributes and their levels are derived at appropriate geographic units. These target distributions are also known as marginal control totals since they represent the margins of a joint distribution of multiple attributes. Typically, the smallest level of spatial resolution that can be feasibly and reliably used to control attributes is used. If control attribute totals are not accurate at a particular spatial unit, they could be specified at a lower resolution.</p><p class="BodyParagraph">The following considerations are usually important in choosing control variables:</p><ul><li>The number of control variables is important. If there are too few, the synthetic population may not accurately reflect the true population. On the other hand, too many control attributes may cause sample issues. There may not be any sample households with joint attributes of the control variables and this could distort the synthetic population.</li><li>Control attributes may be single or multi-dimensional. Multi-dimensional attributes can be treated as single dimensional attributes with number of categories equal to the product of the numbers of categories in individual attributes. The primary advantage of multi-dimensional attributes is more precise regional control over the correlation between attributes. The disadvantage again is with sparse sample.</li><li>The best choices of variables, will be meaningful attributes that are somewhat “orthogonal” to each other, which means that their variance in the population is largely independent. Conversely, if there are two attributes that are highly correlated, then controlling for both may not achieve much more than controlling for just one.</li><li>Finally, different sets of control attributes may be used for base and forecast years, if limited by forecasting accuracy. This is not necessarily desirable, though. The ability to forecast marginal control totals should be a consideration when specifying control attributes for this base year.</li></ul><p class="BodyParagraph">Target distributions of control variables for the base year could be obtained from a variety of data sources including the following:</p><ul><li>Decennial Census: ~100% sample</li><li>American Community Survey (ACS) summary files: 3% sample, rolling 5-year sample, yields an estimate of ~15% of population</li><li>Census Transportation Planning Products (CTPP)</li><li>Other zonal data developed locally (TAZs)</li></ul><p class="BodyParagraph">For the forecast year, regional socio-economic forecasts or outputs from a land-use model are often used.</p><p class="BodyParagraph">The following | + | |}</div><h4 id="id-3.5SYNTHETICPOPULATION-ControlAttributesandTargetDistributions"><em>Control Attributes and Target Distributions</em></h4><p class="BodyParagraph">There are three major inputs required for population synthesis of which the first step is to identify a set of control attributes and their levels. Next, target distributions of the control attributes and their levels are derived at appropriate geographic units. These target distributions are also known as marginal control totals since they represent the margins of a joint distribution of multiple attributes. Typically, the smallest level of spatial resolution that can be feasibly and reliably used to control attributes is used. If control attribute totals are not accurate at a particular spatial unit, they could be specified at a lower resolution.</p><p class="BodyParagraph">The following considerations are usually important in choosing control variables:</p><ul><li>The number of control variables is important. If there are too few, the synthetic population may not accurately reflect the true population. On the other hand, too many control attributes may cause sample issues. There may not be any sample households with joint attributes of the control variables and this could distort the synthetic population.</li><li>Control attributes may be single or multi-dimensional. Multi-dimensional attributes can be treated as single dimensional attributes with number of categories equal to the product of the numbers of categories in individual attributes. The primary advantage of multi-dimensional attributes is more precise regional control over the correlation between attributes. The disadvantage again is with sparse sample.</li><li>The best choices of variables, will be meaningful attributes that are somewhat “orthogonal” to each other, which means that their variance in the population is largely independent. Conversely, if there are two attributes that are highly correlated, then controlling for both may not achieve much more than controlling for just one.</li><li>Finally, different sets of control attributes may be used for base and forecast years, if limited by forecasting accuracy. This is not necessarily desirable, though. The ability to forecast marginal control totals should be a consideration when specifying control attributes for this base year.</li></ul><p class="BodyParagraph">Target distributions of control variables for the base year could be obtained from a variety of data sources including the following:</p><ul><li>Decennial Census: ~100% sample</li><li>American Community Survey (ACS) summary files: 3% sample, rolling 5-year sample, yields an estimate of ~15% of population</li><li>Bureau of Economic and Business Research (BEBR)</li><li>Census Transportation Planning Products (CTPP)</li><li>Other zonal data developed locally (TAZs)</li></ul><p class="BodyParagraph">For the forecast year, regional socio-economic forecasts or outputs from a land-use model are often used.</p><p class="BodyParagraph">The following table provides the list of control attributes, their geographic and demographic levels along with the relative importance of each control.</p><h4 id="id-3.5SYNTHETICPOPULATION-TABLE3-PopulationSim Controls">TABLE 3-5 PopulationSim Controls</h4><div class="table-wrap"> |
− | {| | + | {| class="wikitable" |
− | | | + | |- |
− | | | + | ! target |
− | | | + | ! geography |
− | | | + | ! seed_table |
− | | | + | ! importance |
− | | | + | ! control_field |
− | | | + | ! expression |
− | | | + | |- |
− | | | + | | num_hh |
− | |- | + | | MAZ |
− | | | + | | households |
− | | | + | | 1000000000 |
− | | | + | | HHS |
− | | | + | | (households.WGTP > 0) & (households.WGTP < np.inf) |
− | | | + | |- |
− | | | + | | hh_size_1 |
− | | | + | | TAZ |
− | | | + | | households |
− | | | + | | 5000 |
− | |- | + | | HHSIZE1_S3 |
− | | | + | | households.NP == 1 |
− | | | + | |- |
− | | | + | | hh_size_2 |
− | | | + | | TAZ |
− | | | + | | households |
− | | | + | | 5000 |
− | | | + | | HHSIZE2_S3 |
− | | | + | | households.NP == 2 |
− | | | + | |- |
− | |- | + | | hh_size_3 |
− | | | + | | TAZ |
− | | | + | | households |
− | | | + | | 5000 |
− | | | + | | HHSIZE3_S3 |
− | | | + | | households.NP == 3 |
− | | | + | |- |
− | | | + | | hh_size_4 |
− | | | + | | TAZ |
− | | | + | | households |
− | |- | + | | 5000 |
− | | | + | | HHSIZE4M_S3 |
− | | | + | | households.NP >= 4 |
− | | | + | |- |
− | | | + | | hh_age_15_to_44 |
− | |- | + | | TAZ |
− | | | + | | households |
− | | | + | | 5000 |
− | | | + | | HHAGE1_S3 |
− | | | + | | (households.AGEHOH > 14) & (households.AGEHOH <= 44) |
− | | | + | |- |
− | | | + | | hh_age_45_to_64 |
− | | | + | | TAZ |
− | | | + | | households |
− | | | + | | 5000 |
− | |- | + | | HHAGE2_S3 |
− | | | + | | (households.AGEHOH > 44) & (households.AGEHOH <= 64) |
− | | | + | |- |
− | | | + | | hh_age_65_abv |
− | + | | TAZ | |
− | |- | + | | households |
− | | | + | | 5000 |
− | | | + | | HHAGE3_S3 |
− | | | + | | (households.AGEHOH > 64) & (households.AGEHOH <= np.inf) |
− | | | + | |- |
− | | | + | | hh_wrks_0 |
− | | | + | | TAZ |
− | | | + | | households |
− | | | + | | 5000 |
− | | | + | | HHWRK1_S3 |
− | | | + | | households.NWESR == 0 |
− | | | + | |- |
− | + | | hh_wrks_1 | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHWRK2_S3 | |
− | + | | households.NWESR == 1 | |
− | + | |- | |
− | + | | hh_wrks_2 | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHWRK3_S3 | |
− | + | | households.NWESR == 2 | |
− | + | |- | |
− | + | | hh_wrks_3m | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHWRK4_S3 | |
− | + | | households.NWESR >= 3 | |
− | + | |- | |
− | + | | hh_inc_0_25 | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHINC1_S3 | |
− | + | | (households.HHINCADJ > -999999999) & (households.HHINCADJ <= 24999) | |
− | + | |- | |
− | + | | hh_inc_25_60 | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHINC2_S3 | |
− | + | | (households.HHINCADJ > 24999) & (households.HHINCADJ <= 59999) | |
− | + | |- | |
− | + | | hh_inc_60_100 | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHINC3_S3 | |
− | + | | (households.HHINCADJ > 59999) & (households.HHINCADJ <= 99999) | |
− | + | |- | |
− | + | | hh_inc_100_plus | |
− | + | | TAZ | |
− | + | | households | |
− | + | | 5000 | |
− | + | | HHINC4_S3 | |
− | + | | (households.HHINCADJ > 99999) & (households.HHINCADJ <= 999999999) | |
− | + | |- | |
− | + | | person_male | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | MALE_S | |
− | + | | persons.SEX == 1 | |
− | + | |- | |
− | + | | person_female | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | FEMALE_S | |
− | + | | persons.SEX == 2 | |
− | + | |- | |
− | + | | person_age0to4 | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | AGE0to4_S | |
− | + | | (persons.AGEP > 0) & (persons.AGEP <= 4) | |
− | + | |- | |
− | + | | person_age5to17 | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | AGE5to17_S | |
− | + | | (persons.AGEP >= 5) & (persons.AGEP <= 17) | |
− | + | |- | |
− | + | | person_age18to24 | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | AGE18to24_S | |
− | + | | (persons.AGEP >= 18) & (persons.AGEP <= 24) | |
− | + | |- | |
− | + | | person_age25to54 | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | AGE25to54_S | |
− | + | | (persons.AGEP >= 25) & (persons.AGEP <= 54) | |
− | + | |- | |
− | + | | person_age55m | |
− | + | | SCOUNTY | |
− | + | | persons | |
− | + | | 1000 | |
− | + | | AGE55M_S | |
− | + | | persons.AGEP >= 55 | |
− | + | |}</div><h4 id="id-3.5SYNTHETICPOPULATION-SampleData"><em>Sample Data</em></h4><p class="BodyParagraph">During population synthesis, individual household and person records are drawn from a disaggregate sample of households to match target distributions of controlled attributes. It may not be possible to control all the desired attributes and so “uncontrolled” attributes are added to the synthetic population from disaggregate sample data. It is essential that the disaggregate sample is representative of the population of the entire region.</p><p class="BodyParagraph">In most cases, the primary source of disaggregate sample data will is Public Use Microdata Sample (PUMS) data, which is now part of the ACS, and follows the same sampling framework, but provides disaggregate records for households and persons across numerous different attributes. PUMS is sampled and grouped according to geographic units, better known as PUMAs. PUMAs cover contiguous areas of roughly 100,000 population, including persons living in group quarters. For example, a metro area of 850,000 might be covered by 8 or more likely 9 PUMAs. In general, ACS-PUMS provides good representative coverage of most regions and is rigorously tested and monitored, so it is was used for creating sample data for this effort.</p><h4 id="id-3.5SYNTHETICPOPULATION-PopulationSim Run"><em>PopulationSim Run</em></h4><p class="BodyParagraph">The control totals and disaggregate sample data are input into a population synthesizer to generate a synthetic population. According to the PopulationSim wiki, 'the objective of a population synthesizer is to generate household weights which satisfies the marginal control distributions. This is achieved by use of a data fitting technique. The most common fitting technique used by various population synthesizers is the Iterative Proportional Fitting (IPF) procedure. Generally, the IPF procedure is used to obtain joint distributions of demographic variables. Then, random sampling from PUMS generates the baseline synthetic population.</p><p class="BodyParagraph">One of the limitations of the simple IPF method is that it does not incorporate both household and person level attributes simulatenously. Some population synthesizers use a heuristic algorithm called the Iterative Proportional Updating Algorithm (IPU) to incorporate both person and household-level variables in the fitting procedure.</p><p class="BodyParagraph">Besides IPF, entropy maximization algorithms have been used as a fitting technique. In most of the entropy based methods, the relative entropy is used as the objective function. The relative entropy based optimization ensures that the least amount of new information is introduced in finding a feasible solution. The base entropy is defined by the initial weights in the seed sample. The weights generated by the entropy maximization algorithm preserves the distribution of initial weights while matching the marginal controls. This is an advantage of the entropy maximization based procedures over the IPF based procedures. PopulationSim uses the entropy maximization based list balancing to match controls specified at various geographic levels.'</p> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 14:29, 9 November 2020
Overview
In trip-based models, trip rates are applied to aggregate households grouped in Traffic Analysis Zones (TAZs) to generate trips. On the other hand, in an activity-based model (ABM), choices involving activities and trips are simulated for each of the individual persons in households. Hence, it is necessary to first develop a “synthetic population” of the regions’ residents. Synthetic population is a list of households and persons that is based on observed or forecasted distributions of socioeconomic attributes and created by sampling detailed Census microdata. This produces individual household agents and individual person agents that are subjects of the simulation.
Prior to their use in the simulation, synthetic populations are represented in data tables, often in a relational database or some equivalently structured file system. Typically there are separate tables for households and person records. The household records file provides details about various household-level socio-demographic attributes such as household income, size, number of workers, etc. Similarly, the person records file provides information about person-level attributes such as age, gender, employment status, etc. Person records are linked to household records through ID numbers.
TABLE 3-2 SAMPLE HOUSEHOLD RECORDS FILE
hhno |
hhsize |
hhvehs |
hhwkrs |
hhftw |
hhptw |
hhret |
hhoad |
hhuni |
hhhsc |
hh515 |
hhcu5 |
hhincome |
hownrent |
hrestype |
hhparcel |
hhtaz |
hhexpfac |
samptype |
1 |
1 |
-1 |
1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
75095 |
-1 |
1 |
2699 |
227 |
1 |
11 |
2 |
1 |
-1 |
1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
58074 |
-1 |
1 |
2699 |
227 |
1 |
11 |
3 |
1 |
-1 |
0 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
30288 |
-1 |
3 |
23479 |
227 |
1 |
11 |
4 |
1 |
-1 |
0 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
1802 |
-1 |
3 |
37105 |
227 |
1 |
11 |
TABLE 3-3 SAMPLE PERSON RECORDS FILE
hhno |
pno |
pptyp |
pagey |
pgend |
pwtyp |
pwpcl |
pwtaz |
pwautime |
pwaudist |
pstyp |
pspcl |
pstaz |
psautime |
psaudist |
puwmode |
puwarrp |
puwdepp |
ptpass |
ppaidprk |
pdiary |
pproxy |
psexpfac |
1 |
1 |
1 |
41 |
1 |
1 |
-1 |
-1 |
-1 |
-1 |
0 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
1 |
2 |
1 |
1 |
34 |
1 |
1 |
-1 |
-1 |
-1 |
-1 |
0 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
1 |
3 |
1 |
5 |
26 |
1 |
0 |
-1 |
-1 |
-1 |
-1 |
1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
1 |
4 |
1 |
4 |
34 |
2 |
0 |
-1 |
-1 |
-1 |
-1 |
0 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
1 |
Population synthesized by any synthetic population generator may be used with DaySim as long as the required household and person socio-demographic attributes are provided to it in the appropriate format. PopulationSim is an open platform for population synthesis and survey weighting. It emerged from Oregon DOT’s desire to build a shared, open, platform that could be easily adapted for statewide, regional, and urban transportation planning needs. It has the ability to control for both household and person level demographic attributes simultaneously.
Preparing Synthetic Populations for DaySim
The design of the synthetic population should support the design of the activity-based model (DaySim in this case) and provide the variables it needs. In addition, the activity-based model should only rely on information that can be realistically provided in the synthetic population.
Population synthesis generally consists of the synthesis of two sub-populations – those living in regular households and those living in non-institutionalized group quarters such as college dormitories. For this effort, an additional segment of population was synthesized which comprised of seasonal households. These segments were established to reflect the differences in travel patterns associated with these sub-populations as well as to provide the ability to support seasonal analyses. For example, the seasonal population is generally older than the permanent population, has lower levels of workforce participation, and clusters in certain geographic areas. All of these attributes influence travel patterns and the demand for travel.
There are three major steps in creating a synthetic population:
- Specifying the inputs to the process—the control variables and sample households as well as the level of geographic resolution. Specifying the control variables is essential. In addition, there is often an additional step of specifying additional, uncontrolled variables to be added to the synthetic population.
- Actually running a program that produces the synthetic households.
- The third major step would be transforming the model-generated outputs into characteristics of the population that will be used throughout the rest of the model system. This could involve creating categorical variables out of continuous variables, reformulating income, or allocating households from the zonal level to a finer level of geographic resolution, such as a parcel.
DaySim Person Types
Although person are being modeled in disaggregate form in an ABM, it is often useful to create person type categories. DaySim uses 8 such person types. Person type categories may be used for various purposes:
- As a basic segmentation for certain models, such as daily activity pattern models
- To summarize and compare observed versus estimated data and calibrate models
- As explanatory variables in models
- As constraints on alternatives that are available; for example, work and school activities are only available to workers and student; and driving is restricted by age
TABLE 3-4 DAYSIM PERSON TYPES
No. |
Person Type |
Age |
Work Status |
School Status |
1 |
Full-time worker |
18 or more |
Full-time |
None/Part-time |
2 |
Part-time worker |
18 or more |
Part-time |
None/Part-time |
3 |
Retired person |
65 or more |
Unemployed |
|
4 |
Non-working adult |
Less than 65 |
Unemployed |
None/Part-time |
5 |
University student |
18 or more |
Unemployed/Part-time |
Full-time |
6 |
High school student |
16 or more |
Unemployed/Part-time |
Full-time |
7 |
Primary school child |
5-15 |
Unemployed |
Full-time |
8 |
Preschool child |
0-4 |
Unemployed |
None |
Control Attributes and Target Distributions
There are three major inputs required for population synthesis of which the first step is to identify a set of control attributes and their levels. Next, target distributions of the control attributes and their levels are derived at appropriate geographic units. These target distributions are also known as marginal control totals since they represent the margins of a joint distribution of multiple attributes. Typically, the smallest level of spatial resolution that can be feasibly and reliably used to control attributes is used. If control attribute totals are not accurate at a particular spatial unit, they could be specified at a lower resolution.
The following considerations are usually important in choosing control variables:
- The number of control variables is important. If there are too few, the synthetic population may not accurately reflect the true population. On the other hand, too many control attributes may cause sample issues. There may not be any sample households with joint attributes of the control variables and this could distort the synthetic population.
- Control attributes may be single or multi-dimensional. Multi-dimensional attributes can be treated as single dimensional attributes with number of categories equal to the product of the numbers of categories in individual attributes. The primary advantage of multi-dimensional attributes is more precise regional control over the correlation between attributes. The disadvantage again is with sparse sample.
- The best choices of variables, will be meaningful attributes that are somewhat “orthogonal” to each other, which means that their variance in the population is largely independent. Conversely, if there are two attributes that are highly correlated, then controlling for both may not achieve much more than controlling for just one.
- Finally, different sets of control attributes may be used for base and forecast years, if limited by forecasting accuracy. This is not necessarily desirable, though. The ability to forecast marginal control totals should be a consideration when specifying control attributes for this base year.
Target distributions of control variables for the base year could be obtained from a variety of data sources including the following:
- Decennial Census: ~100% sample
- American Community Survey (ACS) summary files: 3% sample, rolling 5-year sample, yields an estimate of ~15% of population
- Bureau of Economic and Business Research (BEBR)
- Census Transportation Planning Products (CTPP)
- Other zonal data developed locally (TAZs)
For the forecast year, regional socio-economic forecasts or outputs from a land-use model are often used.
The following table provides the list of control attributes, their geographic and demographic levels along with the relative importance of each control.
TABLE 3-5 PopulationSim Controls
target | geography | seed_table | importance | control_field | expression |
---|---|---|---|---|---|
num_hh | MAZ | households | 1000000000 | HHS | (households.WGTP > 0) & (households.WGTP < np.inf) |
hh_size_1 | TAZ | households | 5000 | HHSIZE1_S3 | households.NP == 1 |
hh_size_2 | TAZ | households | 5000 | HHSIZE2_S3 | households.NP == 2 |
hh_size_3 | TAZ | households | 5000 | HHSIZE3_S3 | households.NP == 3 |
hh_size_4 | TAZ | households | 5000 | HHSIZE4M_S3 | households.NP >= 4 |
hh_age_15_to_44 | TAZ | households | 5000 | HHAGE1_S3 | (households.AGEHOH > 14) & (households.AGEHOH <= 44) |
hh_age_45_to_64 | TAZ | households | 5000 | HHAGE2_S3 | (households.AGEHOH > 44) & (households.AGEHOH <= 64) |
hh_age_65_abv | TAZ | households | 5000 | HHAGE3_S3 | (households.AGEHOH > 64) & (households.AGEHOH <= np.inf) |
hh_wrks_0 | TAZ | households | 5000 | HHWRK1_S3 | households.NWESR == 0 |
hh_wrks_1 | TAZ | households | 5000 | HHWRK2_S3 | households.NWESR == 1 |
hh_wrks_2 | TAZ | households | 5000 | HHWRK3_S3 | households.NWESR == 2 |
hh_wrks_3m | TAZ | households | 5000 | HHWRK4_S3 | households.NWESR >= 3 |
hh_inc_0_25 | TAZ | households | 5000 | HHINC1_S3 | (households.HHINCADJ > -999999999) & (households.HHINCADJ <= 24999) |
hh_inc_25_60 | TAZ | households | 5000 | HHINC2_S3 | (households.HHINCADJ > 24999) & (households.HHINCADJ <= 59999) |
hh_inc_60_100 | TAZ | households | 5000 | HHINC3_S3 | (households.HHINCADJ > 59999) & (households.HHINCADJ <= 99999) |
hh_inc_100_plus | TAZ | households | 5000 | HHINC4_S3 | (households.HHINCADJ > 99999) & (households.HHINCADJ <= 999999999) |
person_male | SCOUNTY | persons | 1000 | MALE_S | persons.SEX == 1 |
person_female | SCOUNTY | persons | 1000 | FEMALE_S | persons.SEX == 2 |
person_age0to4 | SCOUNTY | persons | 1000 | AGE0to4_S | (persons.AGEP > 0) & (persons.AGEP <= 4) |
person_age5to17 | SCOUNTY | persons | 1000 | AGE5to17_S | (persons.AGEP >= 5) & (persons.AGEP <= 17) |
person_age18to24 | SCOUNTY | persons | 1000 | AGE18to24_S | (persons.AGEP >= 18) & (persons.AGEP <= 24) |
person_age25to54 | SCOUNTY | persons | 1000 | AGE25to54_S | (persons.AGEP >= 25) & (persons.AGEP <= 54) |
person_age55m | SCOUNTY | persons | 1000 | AGE55M_S | persons.AGEP >= 55 |
Sample Data
During population synthesis, individual household and person records are drawn from a disaggregate sample of households to match target distributions of controlled attributes. It may not be possible to control all the desired attributes and so “uncontrolled” attributes are added to the synthetic population from disaggregate sample data. It is essential that the disaggregate sample is representative of the population of the entire region.
In most cases, the primary source of disaggregate sample data will is Public Use Microdata Sample (PUMS) data, which is now part of the ACS, and follows the same sampling framework, but provides disaggregate records for households and persons across numerous different attributes. PUMS is sampled and grouped according to geographic units, better known as PUMAs. PUMAs cover contiguous areas of roughly 100,000 population, including persons living in group quarters. For example, a metro area of 850,000 might be covered by 8 or more likely 9 PUMAs. In general, ACS-PUMS provides good representative coverage of most regions and is rigorously tested and monitored, so it is was used for creating sample data for this effort.
PopulationSim Run
The control totals and disaggregate sample data are input into a population synthesizer to generate a synthetic population. According to the PopulationSim wiki, 'the objective of a population synthesizer is to generate household weights which satisfies the marginal control distributions. This is achieved by use of a data fitting technique. The most common fitting technique used by various population synthesizers is the Iterative Proportional Fitting (IPF) procedure. Generally, the IPF procedure is used to obtain joint distributions of demographic variables. Then, random sampling from PUMS generates the baseline synthetic population.
One of the limitations of the simple IPF method is that it does not incorporate both household and person level attributes simulatenously. Some population synthesizers use a heuristic algorithm called the Iterative Proportional Updating Algorithm (IPU) to incorporate both person and household-level variables in the fitting procedure.
Besides IPF, entropy maximization algorithms have been used as a fitting technique. In most of the entropy based methods, the relative entropy is used as the objective function. The relative entropy based optimization ensures that the least amount of new information is introduced in finding a feasible solution. The base entropy is defined by the initial weights in the seed sample. The weights generated by the entropy maximization algorithm preserves the distribution of initial weights while matching the marginal controls. This is an advantage of the entropy maximization based procedures over the IPF based procedures. PopulationSim uses the entropy maximization based list balancing to match controls specified at various geographic levels.'