1 / 21

Building and Learning Activity-Based Models

Erik's recommendations (and the price you'll have to pay). Get into the critical pathThough it will put the hurt on scheduleSoftware is the hardest part Steal someone else's if you canModelers must program WELL!The custom versus vendor conundrumEstimate a few modelsSome basic skills are indispensibleWhy let a few consultants have all the fun?.

reegan
Download Presentation

Building and Learning Activity-Based Models

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Building and Learning Activity-Based Models Erik Sabina Jennifer Malm Suzanne Childress John Bowman DeVon Culbertson

    2. Erik’s recommendations (and the price you’ll have to pay) Get into the critical path Though it will put the hurt on schedule Software is the hardest part Steal someone else’s if you can Modelers must program WELL! The custom versus vendor conundrum Estimate a few models Some basic skills are indispensible Why let a few consultants have all the fun? (notes about # of variables, number of choices, number of models, not how much of sw is modular so you don’t have to buy into someone else’s approach to get the benefit of the sw.) (notes about # of variables, number of choices, number of models, not how much of sw is modular so you don’t have to buy into someone else’s approach to get the benefit of the sw.)

    3. Expertise we started with Discrete choice model estimation Decent theory, limited practice Programming/software development Very strong in IT, modelers good programmers Math, stats, econ, etc. Pretty strong across the board Trip-based modeling Very strong WHICH OF THESE WERE CRITICAL? Discuss what tasks you should back off of if you lack certain skills, versus recommendations for just making sure you have those skills, and getting them if you don’t already have them? Me: trained in model estimation (but rarely got a chance to do it, like most modelers.) Suz: also trained in model est. Math major undergrad. Jen: some model estimation, lot of math, MS in transportation. Physics undergrad All of us could program quite well. Junior modelers for ops, lots of GIS and econ people. WHICH OF THESE WERE CRITICAL? Discuss what tasks you should back off of if you lack certain skills, versus recommendations for just making sure you have those skills, and getting them if you don’t already have them? Me: trained in model estimation (but rarely got a chance to do it, like most modelers.) Suz: also trained in model est. Math major undergrad. Jen: some model estimation, lot of math, MS in transportation. Physics undergrad All of us could program quite well. Junior modelers for ops, lots of GIS and econ people.

    4. Levels of Knowledge Sensitivities Limitations and approximations Fix/update variables Re-calibrate Re-estimate some components Re-design the theoretical structure Re-design or extend sw structure Sensitivities (provide example of a variable or two with subtleties. Me.) Limitations and approximations (perhaps the whole joint versus sequential TOD/model thing, and all that implies. Me.) Understanding how fix/update variables (this gets us into sw, and the tie between your vendor travel sw and the custom sw of your ABM. Give example of knowing a variable really well. Jen) Understanding how to re-calibrate it (example of calib target data, and how recalibrating one can ricochet through to other models. Suz.) Understanding how to re-estimate some components. Suz. Understanding how to re-design its theoretical structure. Me/Bowman. Understanding how to re-design or extend its sw structure (Jen/DeVon think up example.) There’s theoretical knowledge, and then there’s just keeping track of the project as it went along: Understanding design – high level. How do the components work together? Understanding design – low level. Theoretical details of: Choice sets Logsums Difficulties with interaction of sequential models (that may be more properly joint, but we don’t do them that way for some practical reasons.) Example: need to simulate things. Other issue: limiting choice set. Example: simulate time before mode choice. Pick from modes available during that time. Then run time of day model for real. Must limit those choices to ones that have available the mode that was selected. “doubly constrained” location choice models (enforcing some sort of quota in the selected zones, or doing shadow pricing of them.) Sensitivities (provide example of a variable or two with subtleties. Me.) Limitations and approximations (perhaps the whole joint versus sequential TOD/model thing, and all that implies. Me.) Understanding how fix/update variables (this gets us into sw, and the tie between your vendor travel sw and the custom sw of your ABM. Give example of knowing a variable really well. Jen) Understanding how to re-calibrate it (example of calib target data, and how recalibrating one can ricochet through to other models. Suz.) Understanding how to re-estimate some components. Suz. Understanding how to re-design its theoretical structure. Me/Bowman. Understanding how to re-design or extend its sw structure (Jen/DeVon think up example.) There’s theoretical knowledge, and then there’s just keeping track of the project as it went along: Understanding design – high level. How do the components work together? Understanding design – low level. Theoretical details of: Choice sets Logsums Difficulties with interaction of sequential models (that may be more properly joint, but we don’t do them that way for some practical reasons.) Example: need to simulate things. Other issue: limiting choice set. Example: simulate time before mode choice. Pick from modes available during that time. Then run time of day model for real. Must limit those choices to ones that have available the mode that was selected. “doubly constrained” location choice models (enforcing some sort of quota in the selected zones, or doing shadow pricing of them.)

    5. Model sensitivities What (example) - non-motorized mode choice Blend point-based and skim distances Point locations for households and jobs Intersection, retail, mixed use density How – programmed all utility function variables Why – can’t apply model without it! 103 utility functions terms in the HBW tour choice models (not including constants.) Something like 5 times the number in the current tour-based model.103 utility functions terms in the HBW tour choice models (not including constants.) Something like 5 times the number in the current tour-based model.

    6. Limitations and approximations What (examples) - Little: simpler logsums skims Little: Twice O-D, rather than O-D + D-O Big: sequential TOD and mode choice Big: Implicit intra-household interactions How – programmed all utility function variables Why – know what model can/can’t do

    7. Fix/update variables What (examples) – Simple: changes to input data/ GISDK Simple once you get used to it - change SQL Server table / variables in C# Pretty hard - understand how component works (older sibling school, logit solver) How – wrote GISDK/ C# model components Why – changes to variables over time are very common Non-DB input data mostly network stuff. How much need to know about model to change/update variable. Theoretical knowledge? Software knowledge? Other categories of knowledge? Most variables simple to change: just put in a new variable to the UtilityFunctionTermVariable table, in case where you’re changing in utility function Full-time worker to Part-time worker, for instance. Must understand a little about SQL Server and structure of our database. Will have to add to data table as well. Some variables more complicated: infamous OlderSiblingInSchoolZone variable. This variable depends on school zone choice of multiple students in the model and required numerous changes to the code – such as looping over people by household and descending order of age, saving older siblings school zone choice, etc.Non-DB input data mostly network stuff. How much need to know about model to change/update variable. Theoretical knowledge? Software knowledge? Other categories of knowledge? Most variables simple to change: just put in a new variable to the UtilityFunctionTermVariable table, in case where you’re changing in utility function Full-time worker to Part-time worker, for instance. Must understand a little about SQL Server and structure of our database. Will have to add to data table as well. Some variables more complicated: infamous OlderSiblingInSchoolZone variable. This variable depends on school zone choice of multiple students in the model and required numerous changes to the code – such as looping over people by household and descending order of age, saving older siblings school zone choice, etc.

    8. Variable example //Additional created in code variable, Older Sibling's school district if (householdID != currentHouseholdID) { currentHouseholdID = householdID; //Clear Sibling's school zone variable foreach (string choice in OlderSiblingSchoolZoneChoice) { this.UtilityFunctionParameters.AlternativeSpecificVariables[choice]["OldSibSchZone"].Value = 0; } OlderSiblingSchoolZoneChoice.Clear(); } else { //take choice and add a 1 to the OldSibSchZone variable in the choosen zone. tempList = choosenAlternative.Split(' '); zoneID = int.Parse(tempList[1]); if (universityStudent != 1) //Doesn't matter where an older sib university student went to school { if (zoneID != 0) { this.UtilityFunctionParameters.AlternativeSpecificVariables[choosenAlternative]["OldSibSchZone"].Value = 1; } } } Here’s some C# code that processes the Older Sibling in School Zone variable.Here’s some C# code that processes the Older Sibling in School Zone variable.

    9. Variable changes in Database

More Related