210 likes | 333 Views
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?.
E N D
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