-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Hi there,
First off, I'm still at location choice model (I got crash when I tried to update to discrete choice model). I get the following error when I run "elcm_choice" model with my own data. Do you have any idea what is going on? Thanks very much!
Here is the message in ipython notebook:
Running model 'elcm_estimate'
LinAlgError Traceback (most recent call last)
in ()
----> 1 sim.run(["elcm_estimate"])
C:\Anaconda\lib\site-packages\urbansim\sim\simulation.pyc in run(models, years, data_out, out_interval)
1458 model = get_model(model_name)
1459 t2 = time.time()
-> 1460 model()
1461 print("Time to execute model '{}': {:.2f}s".format(
1462 model_name, time.time()-t2))
C:\Anaconda\lib\site-packages\urbansim\sim\simulation.pyc in call(self)
670 kwargs = _collect_variables(names=self._argspec.args,
671 expressions=self._argspec.defaults)
--> 672 return self._func(**kwargs)
673
674 def _tables_used(self):
C:\Users\xzhang\Documents\PythonScripts\Marion_urbansim_test_0514_with_building_ids\models.pyc in elcm_estimate(jobs, buildings, zones)
45 def elcm_estimate(jobs, buildings, zones):
46 return utils.lcm_estimate("elcm.yaml", jobs, "building_id",
---> 47 buildings, zones)
48
49
C:\Users\xzhang\Documents\PythonScripts\Marion_urbansim_test_0514_with_building_ids\utils.pyc in lcm_estimate(cfg, choosers, chosen_fname, buildings, nodes)
131 chosen_fname,
132 alternatives,
--> 133 cfg)
134
135
C:\Anaconda\lib\site-packages\urbansim\models\lcm.pyc in fit_from_cfg(cls, choosers, chosen_fname, alternatives, cfgname)
1573 logger.debug('start: fit from configuration {}'.format(cfgname))
1574 lcm = cls.from_yaml(str_or_buffer=cfgname)
-> 1575 lcm.fit(choosers, alternatives, choosers[chosen_fname])
1576 for k, v in lcm._group.models.items():
1577 print("LCM RESULTS FOR SEGMENT %s\n" % str(k))
C:\Anaconda\lib\site-packages\urbansim\models\lcm.pyc in fit(self, choosers, alternatives, current_choice)
1302 self.add_segment(x)
1303
-> 1304 results = self._group.fit(choosers, alternatives, current_choice)
1305 logger.debug(
1306 'finish: fit models in segmented LCM {}'.format(self.name))
C:\Anaconda\lib\site-packages\urbansim\models\lcm.pyc in fit(self, choosers, alternatives, current_choice)
908 return {
909 name: self.models[name].fit(df, alternatives, current_choice)
--> 910 for name, df in self._iter_groups(choosers)}
911
912 @Property
C:\Anaconda\lib\site-packages\urbansim\models\lcm.pyc in ((name, df))
908 return {
909 name: self.models[name].fit(df, alternatives, current_choice)
--> 910 for name, df in self._iter_groups(choosers)}
911
912 @Property
C:\Anaconda\lib\site-packages\urbansim\models\lcm.pyc in fit(self, choosers, alternatives, current_choice)
347
348 self.log_likelihoods, self.fit_parameters = mnl.mnl_estimate(
--> 349 model_design.as_matrix(), chosen, self.sample_size)
350 self.fit_parameters.index = model_design.columns
351
C:\Anaconda\lib\site-packages\urbansim\urbanchoice\mnl.pyc in mnl_estimate(data, chosen, numalts, GPU, coeffrange, weights, lcgrad, beta)
248 beta = bfgs_result[0]
249 stderr = mnl_loglik(
--> 250 beta, data, chosen, numalts, weights, stderr=1, lcgrad=lcgrad)
251
252 l0beta = np.zeros(numvars)
C:\Anaconda\lib\site-packages\urbansim\urbanchoice\mnl.pyc in mnl_loglik(beta, data, chosen, numalts, weights, lcgrad, stderr)
91 gradmat = data.multiply_by_row(gradmat.reshape(1, gradmat.size()))
92 gradmat.reshape(numvars, numalts * numobs)
---> 93 return get_standard_error(get_hessian(gradmat.get_mat()))
94
95 chosen.reshape(numalts, numobs)
C:\Anaconda\lib\site-packages\urbansim\urbanchoice\mnl.pyc in get_hessian(derivative)
54
55 def get_hessian(derivative):
---> 56 return np.linalg.inv(np.dot(derivative, np.transpose(derivative)))
57
58
C:\Anaconda\lib\site-packages\numpy\linalg\linalg.pyc in inv(a)
518 signature = 'D->D' if isComplexType(t) else 'd->d'
519 extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
--> 520 ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
521 return wrap(ainv.astype(result_t))
522
C:\Anaconda\lib\site-packages\numpy\linalg\linalg.pyc in _raise_linalgerror_singular(err, flag)
88
89 def _raise_linalgerror_singular(err, flag):
---> 90 raise LinAlgError("Singular matrix")
91
92 def _raise_linalgerror_nonposdef(err, flag):
LinAlgError: Singular matrix