Nested Logit交通方式划分-基于Biogeme

前段时间做交通模型,需要用到nested-logit模型做交通方式划分,常用的工具有SPSS、TransCAD,近期发现一个开源的软件Biogeme,尝试着做了一下。
1.原理部分可参考概率论书籍和关宏志教授的《非集计模型交通行为分析的工具》,书籍网址:https://www.mayiwenku.com/p-1111913.html
2.biogeme官网:http://biogeme.epfl.ch/,官网上有软件,有说明和案例,Biogeme是一个开放源代码免费软件,通常用于参数模型的最大似然估计,尤其着重于离散选择模型,基于python编程语言的扩展,原理部分软件提及的较少,具体算法需要查看概率论和相关应用理论的知识。软件只有英文说明,大家伙加油!!!
nested logit模型建模基本步骤逻辑图:
NL建模步骤
模型划分过程是先将步行从所有方式中五种方式出行总量中单独划分,其余交通方式利用调查数据和Emme模型建立三层nested logit模型。
在这里插入图片描述
交通方式具体步骤:

  1. 将居民出行调查(性别、选用交通方式)和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_参数。
在这里插入图片描述

<think>嗯,用户想了解Biogeme工具的使用和文档。首先,我需要确认Biogeme是什么。根据记忆,Biogeme是一个用于离散选择模型的开源软件包,主要用于交通和经济学领域的统计分析。用户可能需要进行参数估计或模型验证。 接下来,用户提到的引用中有Bioformats和Python扩展包的信息,但Biogeme和这些引用可能没有直接关联。需要检查是否有混淆。例如,引用[1]提到Bioformats处理生命科学文件,而用户的问题是关于离散选择建模工具,可能属于不同领域。需要明确Biogeme的正确文档来源,避免误导用户。 然后,用户需要用法和文档。我应该先提供Biogeme的基本信息,比如全称、用途和主要功能。然后分步骤说明安装方法、数据准备、模型定义、参数估计、结果分析等。同时,需要确保使用正确的中文术语,比如“离散选择模型”而不是直译的英文术语。 安装部分,Biogeme通常通过Python的pip安装,但可能需要依赖项,如Numpy-MKL和Visual C++运行时库,这在引用[2]和[3]中提到过。需要提醒用户注意这些依赖,特别是在Windows环境下,可能需要安装额外的软件包,比如Microsoft Visual C++ Redistributable,以确保Biogeme正常运行。 数据准备方面,Biogeme支持CSV或数据库格式,用户需要正确格式化数据,特别是分类变量可能需要编码。模型定义部分,示例代码会帮助用户理解如何导入库、加载数据、定义变量和参数,并构建效用函数。需要确保代码示例正确,使用$$...$$格式,并检查LaTeX语法是否正确,比如效用函数中的变量符号。 参数估计部分,使用Biogeme的estimate方法,并生成报告。需要说明如何解读输出结果,如参数估计值、t统计量等。结果分析可能涉及统计检验,比如似然比检验,需要简要解释其用途。 文档和资源方面,官方文档是最重要的,应提供链接。同时,示例和教程有助于用户快速上手,可能包括官方提供的示例和第三方资源。社区支持如GitHub和邮件列表也是用户解决问题的渠道。 相关问题部分,需要覆盖Biogeme的安装问题、与其他工具的比较、模型验证、高级功能以及与其他软件的集成。这些问题应该自然延伸用户可能的后续疑问,比如如何处理特定错误或选择不同模型类型。 最后,需要检查所有数学表达式是否正确使用$...$或$$...$$格式,例如效用函数中的$V_i$和参数估计中的$\beta$。确保没有引用错误,如Bioformats可能与Biogeme无关,但用户提供的引用中有关于Python扩展包的信息,可能与安装依赖有关,需要正确关联。</think>### Biogeme工具简介 Biogeme(全称:Biogeme Discrete Choice Analysis)是一款开源的离散选择模型估计工具,主要用于交通需求建模、经济学和行为科学中的选择行为分析。其核心功能包括参数估计、模型验证及统计推断,支持多项Logit、混合Logit、嵌套Logit等模型类型[^1]。 --- ### 基础用法与文档说明 #### 1. **安装方法** - 通过Python包管理器安装: ```bash pip install biogeme ``` - **依赖项**:需提前安装`numpy`和`pandas`,Windows用户需确保Microsoft Visual C++运行时库已配置[^3]。 #### 2. **数据准备** - 数据格式:支持CSV或数据库(如SQLite) - 示例数据结构: ```python import biogeme.database as db data = db.Database('transport_data', 'data.csv') ``` #### 3. **模型定义** - **变量声明**: ```python from biogeme import models, variables time = variables.Variable('travel_time') cost = variables.Variable('travel_cost') ``` - **效用函数构建**: $$ V_i = \beta_{\text{time}} \cdot \text{time} + \beta_{\text{cost}} \cdot \text{cost} $$ #### 4. **参数估计** ```python from biogeme import estimators results = estimators.MaximumLikelihoodEstimator(model, data).estimate() results.write() ``` #### 5. **结果分析** - 输出包含参数估计值、标准误差、t统计量等,例如: $$ \beta_{\text{time}} = -0.05 \quad (p < 0.01) $$ --- ### 文档与资源 1. **官方文档** [Biogeme官方文档](http://biogeme.epfl.ch/)提供完整教程、API说明及案例研究。 2. **示例与教程** GitHub仓库包含交通模式选择、能源消费行为等案例代码。 3. **社区支持** 通过[GitHub Issues](https://github.com/michelbierlaire/biogeme/issues)或邮件列表提问。 ---
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值