前段时间做交通模型,需要用到nested-logit模型做交通方式划分,常用的工具有SPSS、TransCAD,近期发现一个开源的软件Biogeme,尝试着做了一下。
1.原理部分可参考概率论书籍和关宏志教授的《非集计模型交通行为分析的工具》,书籍网址:https://www.mayiwenku.com/p-1111913.html
2.biogeme官网:http://biogeme.epfl.ch/,官网上有软件,有说明和案例,Biogeme是一个开放源代码免费软件,通常用于参数模型的最大似然估计,尤其着重于离散选择模型,基于python编程语言的扩展,原理部分软件提及的较少,具体算法需要查看概率论和相关应用理论的知识。软件只有英文说明,大家伙加油!!!
nested logit模型建模基本步骤逻辑图:
模型划分过程是先将步行从所有方式中五种方式出行总量中单独划分,其余交通方式利用调查数据和Emme模型建立三层nested logit模型。
交通方式具体步骤:
- 将居民出行调查(性别、选用交通方式)和Emme中的skim矩阵获取的成本(Time、cost、出行距离)数据存放到excel中;
2.按照案例中将数据保存为.dat文件
3.利用官方文档的“01nestedEstimation”进行修改,修改要点:
a) 标定参数初始化:
b) 效用函数:选定认定参数,交通方式中的影响因子多为出行时间(车内车外时间)、出行成本(停车费用、车辆行驶费用)等。
c) 效用函数key-vaule值与可替代方式key-value:
d) 定义树形结构
e) 定义树形结构
4.利用biogeme软件,将.dat文件和步骤3的“01nestedEstimation”进行运算,得到“01nestedEstimation_param”参数标定值。内容包括2部分:1.标定参数;2.敏感度分析值。
a) 标定的参数是否与实际情况想违背,比如时间的参数值如果为正值,说明随着时间的增长,效用将加大,采用该方式的概率越大,明显与实际不符。
b) T检验值判定:
c) 如果t检验值过小,说明该参数不产生影响,可以删除,如果一定要保留,则需要对原始参数做校核以及做梯度化修改和验证,方法可以查看《非集计模型交通行为分析的工具》第九章。
5.数据仿真,打开官方案例中的“02nestedSimulation”。
a) 将步骤4得到的标定参数值,效用函数和V,av,树形结构、排他项输入。
b) 01nestedEstimation_param中输入敏感性分析参数。
6. 结论判定:如果提示矩阵为非正定矩阵,则数据或者删除不产生影响的参数,需要修改。
7. 需要做拟合计算,根据调查数据和biogeme仿真数据做拟合曲线,比对。主要的重点为方式的交叉点和趋势。
8. Excel模拟计算,结论与BIOGEME软件计算一致。上层效用函数和下层效用函数的关系式:
.
λ为biogeme标定的nest_参数。