Re: [UrbanSim-Users] estimating ELCM

From: Hana Sevcikova <hana_at_cs.washington.edu>
Date: Mon, 28 Jan 2008 16:00:15 -0800

Thanks for the feedback, Brian. I will try to improve the user guide
along your suggestions.

Hana

Brian Miles wrote:
>
> Thanks Hana,
>
> This solves a mystery for us. We didn't see anything in the manual
> about how submodels of the employment location choice models are applied
> to subsets of the data. I now see where this is listed in the creators
> for the models and also, obliquely, in the user guide. However, it
> would be nice if this relationship were more explicitly stated in the
> user guide entry for each model.
>
> As it's listed now in section 8.4.14 (p. 124 in my copy of the manual),
> the value of submodel_string is listed among 20 or so of the default
> values for the model constructor. It would be more helpful if, for each
> description of each model, before the "Model Configuration" subsection,
> there were a subsection, titled "Model Estimation", that states the
> mapping between submodels in the specification and the subsets of the
> data these submodels are applied to.
>
> Thanks as usual for your prompt help,
>
> Brian
>
> On Jan 28, 2008, at 5:17 PM, Hana Sevcikova wrote:
>
>> Brian,
>>
>> Your specification is defined for submodel 1 (i.e. sector_id 1) but
>> there are no commercial jobs for this sector. If you don't want to
>> distinguish submodels in your estimation, set the submodel number in
>> the specification file to -2.
>>
>> Hana
>>
>>
>> Brian Miles wrote:
>>> Hello,
>>> I'm beginning to estimate employment location choice models. I've
>>> been able estimate the industrial model group, but the commercial
>>> model group is failing (the output that follows this message
>>> contains the successful industrial run as well as the failing
>>> commercial run).
>>> I'm using the same basic specification for both cases. I'm assuming
>>> the problem lies in our "jobs"/"jobs_for_estimation" (they contain
>>> the same data right now) tables (which we know need some work).
>>> However I've compared my jobs data to the eugene data and to what is
>>> described in the manual, and can't find anything obviously wrong
>>> aside from possibly the fact that our commercial jobs are heavily
>>> clustered in one sector of jobs, and this sector's jobs are heavily
>>> clustered in a few gridcells (see first below).
>>> So what I'm wondering is, as we start sorting through our jobs data,
>>> should we be on the lookout for any other obvious causes to the
>>> problem we are having estimating the
>>> commercial_employment_location_choice_model?
>>> Thanks,
>>> Brian
>>> mysql> select * from job_building_types;
>>> +------+--------------+------------+
>>> | id | name | home_based |
>>> +------+--------------+------------+
>>> | 1 | home_based | 1 |
>>> | 2 | commercial | 0 |
>>> | 3 | industrial | 0 |
>>> | 4 | governmental | 0 |
>>> | 5 | other | 0 |
>>> +------+--------------+------------+
>>> 5 rows in set (0.00 sec)
>>> mysql> select distinct sector_id,count(sector_id) as count from jobs
>>> where building_type=2 group by sector_id order by sector_id;
>>> +-----------+-------+
>>> | sector_id | count |
>>> +-----------+-------+
>>> | 2 | 1 |
>>> | 3 | 1 |
>>> | 5 | 5 |
>>> | 7 | 4 |
>>> | 8 | 20 |
>>> | 9 | 10 |
>>> | 10 | 7 |
>>> | 11 | 91 |
>>> | 12 | 16 |
>>> | 13 | 10981 |
>>> +-----------+-------+
>>> 10 rows in set (0.02 sec)
>>> mysql> select distinct sector_id,count(sector_id) as count from jobs
>>> where building_type=3 group by sector_id order by sector_id;
>>> +-----------+-------+
>>> | sector_id | count |
>>> +-----------+-------+
>>> | 1 | 38 |
>>> | 2 | 9178 |
>>> | 3 | 243 |
>>> | 4 | 925 |
>>> | 5 | 1971 |
>>> | 6 | 13 |
>>> | 7 | 66 |
>>> | 8 | 292 |
>>> | 9 | 547 |
>>> | 10 | 345 |
>>> | 11 | 1474 |
>>> | 12 | 115 |
>>> | 14 | 34 |
>>> | 15 | 148 |
>>> +-----------+-------+
>>> 14 rows in set (0.02 sec)
>>> mysql> select count(distinct grid_id) from jobs where sector_id=13;
>>> +-------------------------+
>>> | count(distinct grid_id) |
>>> +-------------------------+
>>> | 22 |
>>> +-------------------------+
>>> 1 row in set (0.03 sec)
>>> mysql> select count(distinct grid_id) from jobs where sector_id=2;
>>> +-------------------------+
>>> | count(distinct grid_id) |
>>> +-------------------------+
>>> | 199 |
>>> +-------------------------+
>>> 1 row in set (0.02 sec)
>>> C:\myworkspace\chittenden\estimation>python run_estimation.py -c
>>> estimation_conf
>>> ig_services --use-trapperkeeper=false --save-estimation-to-baseyear-
>>> db=false
>>> Cache Directory set to: C://urbansim_cache/chittco_1990_baseyear_cache
>>> Start simulation run: started on Mon Jan 28 16:50:04 2008
>>> random seed = (1,)
>>> Starting simulation for year 1990: started on Mon Jan 28
>>> 16:50:04 2008
>>> Closing log file: C://urbansim_cache/
>>> chittco_1990_baseyear_cache\run_mul
>>> tiprocess.log
>>> Logging to file: C://urbansim_cache/
>>> chittco_1990_baseyear_cache\year_199
>>> 0_log.txt
>>> Simulate year 1990: started on Mon Jan 28 16:50:04 2008
>>> Creating object
>>> urbansim.datasets.vacant_land_and_building_type_data
>>> set.VacantLandAndBuildingTypeDataset
>>> Creating object
>>> urbansim.datasets.development_constraint_dataset.Dev
>>> elopmentConstraintDataset
>>> Creating object urbansim.datasets.zone_dataset.ZoneDataset
>>> Creating object
>>> urbansim.datasets.household_dataset.HouseholdDataset
>>> Creating object
>>> urbansim.datasets.gridcell_dataset.GridcellDataset
>>> Creating object urbansim.datasets.job_dataset.JobDataset
>>> Creating object
>>> urbansim.datasets.target_vacancy_dataset.TargetVacan
>>> cyDataset
>>> Creating object
>>> urbansim.datasets.job_building_type_dataset.JobBuild
>>> ingTypeDataset
>>> Creating object
>>> urbansim.datasets.development_event_history_dataset.
>>> DevelopmentEventHistoryDataset
>>> Creating object urbansim.datasets.rate_dataset.RateDataset
>>> Running Employment Relocation Model (from
>>> urbansim.models.agent_relo
>>> cation_model): started on Mon Jan 28 16:50:05 2008
>>> compute_probabilities ...
>>> compute_choices ...
>>> Number of movers: 2436
>>> Running Employment Relocation Model (from
>>> urbansim.models.agent_relo
>>> cation_model): completed...4.2 sec
>>> 'agents_grouping_attribute' set to job.building_type.
>>> Estimating Industrial Employment Location Choice Model
>>> (from urbansi
>>> m.models.employment_location_choice_model): started on Mon Jan 28
>>> 16:50:10 2008
>>> Number of agents for estimation: 15389
>>> Sampling locations for estimation ...
>>> Submodel 1 sampled in 1 chunk(s).
>>>
>>> urbansim.gridcell.total_number_of_possible_SSS_jobs......0.7 sec
>>> Choice set size: 30
>>> Compute variables ...
>>>
>>> urbansim.gridcell.is_near_arterial.......................0.4 sec
>>> Estimate ...
>>> submodel: 1
>>> WARNING: Cannot find increase
>>> Akaike's Information Criterion (AIC): 260.08180285
>>> Number of Iterations: 12
>>> ***********************************************
>>> Log-likelihood is: -129.040901425
>>> Null Log-likelihood is: -129.245500503
>>> Likelihood ratio index: 0.0015830267003
>>> Adj. likelihood ratio index: -0.00615418655747
>>> Number of observations: 38
>>> Suggested |t-value| > 1.90724569988
>>> Convergence statistic is: 34.4413652987
>>> -----------------------------------------------
>>> Coeff_names estimate std err t-
>>> values
>>> BART 7.61714e+015 6.49589e+014
>>> 11.7261
>>> ***********************************************
>>> Elapsed time: 0.128297602078 seconds
>>> Estimating Industrial Employment Location Choice Model
>>> (from urbansi
>>> m.models.employment_location_choice_model): completed...4.1 sec
>>> Simulate year 1990:
>>> completed...................................10.6 sec
>>> Closing log file: C://urbansim_cache/
>>> chittco_1990_baseyear_cache\year_19
>>> 90_log.txt
>>> Starting simulation for year 1990:
>>> completed........................10.6 sec
>>> Start simulation run:
>>> completed.........................................10.6 sec
>>> Closing log file: C://urbansim_cache/chittco_1990_baseyear_cache
>>> \run_multiproces
>>> s.log
>>> C:\myworkspace\chittenden\estimation>python run_estimation.py -c
>>> estimation_conf
>>> ig_services --use-trapperkeeper=false --save-estimation-to-baseyear-
>>> db=false
>>> Cache Directory set to: C://urbansim_cache/chittco_1990_baseyear_cache
>>> Start simulation run: started on Mon Jan 28 16:50:44 2008
>>> random seed = (1,)
>>> Starting simulation for year 1990: started on Mon Jan 28
>>> 16:50:44 2008
>>> Closing log file: C://urbansim_cache/
>>> chittco_1990_baseyear_cache\run_mul
>>> tiprocess.log
>>> Logging to file: C://urbansim_cache/
>>> chittco_1990_baseyear_cache\year_199
>>> 0_log.txt
>>> Simulate year 1990: started on Mon Jan 28 16:50:44 2008
>>> Creating object
>>> urbansim.datasets.vacant_land_and_building_type_data
>>> set.VacantLandAndBuildingTypeDataset
>>> Creating object
>>> urbansim.datasets.development_constraint_dataset.Dev
>>> elopmentConstraintDataset
>>> Creating object urbansim.datasets.zone_dataset.ZoneDataset
>>> Creating object
>>> urbansim.datasets.household_dataset.HouseholdDataset
>>> Creating object
>>> urbansim.datasets.gridcell_dataset.GridcellDataset
>>> Creating object urbansim.datasets.job_dataset.JobDataset
>>> Creating object
>>> urbansim.datasets.target_vacancy_dataset.TargetVacan
>>> cyDataset
>>> Creating object
>>> urbansim.datasets.job_building_type_dataset.JobBuild
>>> ingTypeDataset
>>> Creating object
>>> urbansim.datasets.development_event_history_dataset.
>>> DevelopmentEventHistoryDataset
>>> Creating object urbansim.datasets.rate_dataset.RateDataset
>>> Running Employment Relocation Model (from
>>> urbansim.models.agent_relo
>>> cation_model): started on Mon Jan 28 16:50:46 2008
>>> compute_probabilities ...
>>> compute_choices ...
>>> Number of movers: 2436
>>> Running Employment Relocation Model (from
>>> urbansim.models.agent_relo
>>> cation_model): completed...4.2 sec
>>> 'agents_grouping_attribute' set to job.building_type.
>>> Estimating Commercial Employment Location Choice Model
>>> (from urbansi
>>> m.models.employment_location_choice_model): started on Mon Jan 28
>>> 16:50:51 2008
>>> Number of agents for estimation: 11136
>>> Sampling locations for estimation ...
>>> Choice set size: 30
>>> Compute variables ...
>>>
>>> urbansim.gridcell.is_near_arterial.......................0.3 sec
>>> Estimate ...
>>> submodel: 1
>>> Estimating Commercial Employment Location Choice Model
>>> (from urbansi
>>> m.models.employment_location_choice_model): completed...1.1 sec
>>> Simulate year 1990:
>>> completed....................................7.8 sec
>>> Closing log file: C://urbansim_cache/
>>> chittco_1990_baseyear_cache\year_19
>>> 90_log.txt
>>> Starting simulation for year 1990:
>>> completed.........................7.8 sec
>>> Start simulation run:
>>> completed..........................................7.8 sec
>>> Closing log file: C://urbansim_cache/chittco_1990_baseyear_cache
>>> \run_multiproces
>>> s.log
>>> Traceback (most recent call last):
>>> File "run_estimation.py", line 72, in <module>
>>> estimationRunner.run_estimation(my_configuration, model,
>>> save_estimation_res
>>> ults=save_estimation_results)
>>> File "run_estimation.py", line 45, in run_estimation
>>> self.estimator.estimate()
>>> File "C:\opusworkspace-svn\urbansim\estimation\estimator.py", line
>>> 68, in esti
>>> mate
>>> self.model_system.run(self.config,
>>> write_datasets_to_cache_at_end_of_year=Fa
>>> lse)
>>> File "C:\opusworkspace-svn\urbansim\model_coordinators
>>> \model_system.py", line
>>> 135, in run
>>> write_datasets_to_cache_at_end_of_year
>>> =write_datasets_to_cache_at_end_of_yea
>>> r)
>>> File "C:\opusworkspace-svn\urbansim\model_coordinators
>>> \model_system.py", line
>>> 299, in _run_year
>>> self.vardict[outputvar] = self.do_process(locals())
>>> File "C:\opusworkspace-svn\urbansim\model_coordinators
>>> \model_system.py", line
>>> 377, in do_process
>>> return eval(ev)
>>> File "<string>", line 1, in <module>
>>> File "C:\opusworkspace-svn\opus_core\model.py", line 60, in
>>> logged_estimate_me
>>> thod
>>> results = estimate_method(*req_args, **opt_args)
>>> File "C:\opusworkspace-svn\urbansim\models
>>> \agent_location_choice_model_member.
>>> py", line 57, in estimate
>>> agents_index=agents_index[new_agents_index], **kwargs)
>>> File "C:\opusworkspace-svn\urbansim\models
>>> \location_choice_model.py", line 199
>>> , in estimate
>>> agents_index, procedure, estimate_config=estimate_config,
>>> debuglevel=debugle
>>> vel)
>>> File "C:\opusworkspace-svn\opus_core\choice_model.py", line 313,
>>> in estimate
>>> del self.estimate_config["selected_choice"]
>>> KeyError: 'selected_choice'
>>> C:\myworkspace\chittenden\estimation>
>>> _______________________________________________
>>> Users mailing list
>>> Users_at_urbansim.org
>>> http://www.urbansim.org/mailman/listinfo/users
>
Received on Mon Jan 28 2008 - 16:00:16 PST

This archive was generated by hypermail 2.2.0 : Mon Jan 28 2008 - 16:00:17 PST