Biogeme: Python Library  4.6a
nested.py
Go to the documentation of this file.
1 
3 
4 from biogeme import *
5 from mev import *
6 
7 
42 def getMevForNested(V,availability,nests) :
43 
44  y = {}
45  for i,v in V.items() :
46  y[i] = exp(v)
47 
48  Gi = {}
49  for m in nests:
50  sumdict = []
51  for i in m[1]:
52  sumdict.append(Elem({0:0.0,1: y[i] ** m[0]},availability[i]!=0))
53  sum = bioMultSum(sumdict)
54  for i in m[1]:
55  Gi[i] = Elem({0:0,1:y[i]**(m[0]-1.0) * sum ** (1.0/m[0] - 1.0)},availability[i]!=0)
56  return Gi
57 
58 
59 
90 def nested(V,availability,nests,choice) :
91  Gi = getMevForNested(V,availability,nests)
92  P = mev(V,Gi,availability,choice)
93  return P
94 
95 
126 def lognested(V,availability,nests,choice) :
127  Gi = getMevForNested(V,availability,nests)
128  logP = logmev(V,Gi,availability,choice)
129  return logP
130 
131 
132 
133 
170 def nestedMevMu(V,availability,nests,choice,mu) :
171 
172  y = {}
173  for i,v in V.items() :
174  y[i] = exp(v)
175 
176  Gi = {}
177  for m in nests:
178  sum = {}
179  for i in m[1]:
180  sum[i] = Elem({0:0,1: y[i] ** m[0]},availability[i]!=0)
181  for i in m[1]:
182  Gi[i] = Elem({0:0,1:mu * y[i]**(m[0]-1.0) * bioMultSum(sum) ** (mu/m[0] - 1.0)},availability[i]!=0)
183  P = mev(V,Gi,availability,choice)
184  return P
185 
186 
187 
224 def lognestedMevMu(V,availability,nests,choice,mu) :
225 
226  y = {}
227  for i,v in V.items() :
228  y[i] = exp(v)
229 
230  Gi = {}
231  for m in nests:
232  sum = {}
233  for i in m[1]:
234  sum[i] = Elem({0:0,1: y[i] ** m[0]},availability[i]!=0)
235  for i in m[1]:
236  Gi[i] = Elem({0:0,1:mu * y[i]**(m[0]-1.0) * bioMultSum(sum) ** (mu/m[0] - 1.0)},availability[i]!=0)
237  logP = logmev(V,Gi,availability,choice)
238  return logP
def logmev(V, Gi, av, choice)
Log of the choice probability for a MEV model.
Definition: mev.py:75
Definition: mev.py:1
def lognested(V, availability, nests, choice)
Implements the log of a nested logit model as a MEV model.
Definition: nested.py:126
def getMevForNested(V, availability, nests)
Implements the MEV generating function for the nested logit model.
Definition: nested.py:42
def lognestedMevMu(V, availability, nests, choice, mu)
Implements the log of the nested logit model as a MEV model, where mu is also a parameter, if the user wants to test different normalization schemes.
Definition: nested.py:224
def nested(V, availability, nests, choice)
Implements the nested logit model as a MEV model.
Definition: nested.py:90
def nestedMevMu(V, availability, nests, choice, mu)
Implements the nested logit model as a MEV model, where mu is also a parameter, if the user wants to ...
Definition: nested.py:170
Copyright 2017 Michel Bierlaire