biogeme巢式logit选择学习笔记

本文详细介绍了使用Python进行巢式logit模型的学习,从导入库到定义变量、效用函数,再到估计参数和模拟计算选择概率。通过biogeme工具进行模拟,证实了结果的准确性并提升了计算速度。
摘要由CSDN通过智能技术生成

导入库

import pandas as pd
import csv
from biogeme import models
import biogeme.biogeme as bio
import biogeme.database as db
from biogeme.expressions import Beta, Variable
import biogeme.results as res
import biogeme.exceptions as excep
import sys

输入选择集

df=pd.read_csv('choice.csv')
database=db.Database('choice',df)##输入选择集创建数据库

globals().update(database.variables)##定义全局变量
database.variables
{'Unnamed: 0.2': Unnamed: 0.2,
 'Unnamed: 0.1': Unnamed: 0.1,
 'Unnamed: 0': Unnamed: 0,
 'id': id,
 'hc_time_all': hc_time_all,
 'hc_cishu': hc_cishu,
 'hc_fare': hc_fare,
 'path_length': path_length,
 'car_fare': car_fare,
 'car_time': car_time,
 'car_cishu': car_cishu,
 'bus_time': bus_time,
 'metro_fare': metro_fare,
 'metro_cishu': metro_cishu,
 'metro_time': metro_time,
 'bus_fare': bus_fare,
 'bus_cishu': bus_cishu,
 'choice': choice}

定义变量

#首先定义常数项
ASC_CAR = Beta('ASC_CAR',0,None,None,0)
ASC_BUS = Beta('ASC_BUS',0,None,None,0)
ASC_METRO = Beta('ASC_METRO',0,None,None,0)
ASC_HC = Beta('ASC_HC',0,None,None,0)
#定义与效用有关参数的系数
BETA_TIME_CAR = Beta('BETA_TIME_CAR',0,None,None,0)
BETA_FARE_CAR = Beta('BETA_FARE_CAR',0,None,None,0)
BETA_LENGTH = Beta('BETA_LENGTH',0,None,None,0)
BETA_TIME_BUS  =Beta('BETA_TIME_BUS',0,None,None,0)
BETA_FARE_BUS = Beta('BETA_FARE_BUS',0<
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Biogeme是一个用于建立和估计离散选择模型的软件包。以下是使用Biogeme的一般步骤: 1. 准备数据:将数据存储在CSV文件中,并确保文件中包含所有必要的变量。 2. 编写模型规范:使用Biogeme语言编写模型规范,该语言类似于语法。 3. 运行Biogeme:运行Biogeme并指定数据文件和模型规范。 4. 检查结果:检查Biogeme输出,例如模型系数、标准误差和p值。 5. 解释结果:根据结果解释模型。 以下是一些示例代码,说明如何使用Biogeme: ```python import biogeme.database as db import biogeme.biogeme as bio import biogeme.models as models # 准备数据 myData = db.Database("myData.csv") myScale = myData.variables["myScale"] myVariable = myData.variables["myVariable"] myChoice = myData.variables["myChoice"] # 编写模型规范 beta_scale = bio.Beta('beta_scale', 0, None, None, 0) beta_variable = bio.Beta('beta_variable', 0, None, None, 0) V = beta_scale * myScale + beta_variable * myVariable prob = models.logit(V, 1) # 运行Biogeme myModel = bio.Model(prob, myData) results = myModel.estimate() # 检查结果 print(results.getEstimatedParameters()) # 解释结果 print("The estimated coefficient for Scale is: ", results.getBetaValues()['beta_scale']) ``` 在这个示例中,我们首先导入Biogeme所需的模块。接下来,我们定义了数据,包括自变量(myScale和myVariable)和因变量(myChoice)。然后,我们编写了模型规范,其中我们使用了一个对数线性模型,并将其传递给Biogeme模型对象。最后,我们运行了Biogeme,并检查了结果。 请注意,这只是一个简单的示例,更复杂的模型可能需要更详细的编写和解释。建议您查看Biogeme文档,以获取更多帮助和指导。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值