当前位置: 首页 > news >正文

Biogeme Mlogit 分类变量回归代码

import pandas as pd
from biogeme.database import Database
from biogeme.expressions import Variable
import biogeme.biogeme_logging as blog
from IPython.core.display_functions import display
from biogeme.biogeme import BIOGEME
from biogeme.expressions import Beta, Draws, MonteCarlo, log
from biogeme.models import logit
from biogeme.models import loglogit
from biogeme.results_processing import get_pandas_estimated_parameters#导入数据
df = pd.read_csv('C:/Users/24722/Desktop/CE.csv', sep=',')
#设置分类哑变量
for i in range(1, 7):df[f'A{i}_2'] = 1 * (df[f'A{i}'] == 2)df[f'A{i}_3'] = 1 * (df[f'A{i}'] == 3)df[f'B{i}_2'] = 1 * (df[f'B{i}'] == 2)df[f'B{i}_3'] = 1 * (df[f'B{i}'] == 3)
#查看数据导入情况
print(df.head())
#创建Biogeme数据库对象
database = Database('CE', df)# 定义选择与可用性,av是必须设定的
CHOICE = Variable('CHOICE')
A_AV = Variable('A_AV')
B_AV = Variable('B_AV')#备选常数(ASC)
ASC_A = Beta('ASC_A', 0, None, None, 0)
ASC_B = Beta('ASC_B', 0, None, None, 0)#日志
logger = blog.get_screen_logger(level=blog.INFO)
logger.info('wo bu zhi dao wei shen me yao zhe ge ri zhi.py')# 定义参数(A/B 共享系数)
b_1_lv2 = Beta('b_1_lv2', 0, None, None, 0)
b_1_lv3 = Beta('b_1_lv3', 0, None, None, 0)
b_2_lv2 = Beta('b_2_lv2', 0, None, None, 0)
b_2_lv3 = Beta('b_2_lv3', 0, None, None, 0)
b_3_lv2 = Beta('b_3_lv2', 0, None, None, 0)
b_3_lv3 = Beta('b_3_lv3', 0, None, None, 0)
b_4_lv2 = Beta('b_4_lv2', 0, None, None, 0)
b_4_lv3 = Beta('b_4_lv3', 0, None, None, 0)
b_5_lv2 = Beta('b_5_lv2', 0, None, None, 0)
b_5_lv3 = Beta('b_5_lv3', 0, None, None, 0)
b_6_lv2 = Beta('b_6_lv2', 0, None, None, 0)
b_6_lv3 = Beta('b_6_lv3', 0, None, None, 0)# 构建效用(A/B 共享相同等级的系数;基准等级=1 隐含系数为0),Variable也可在数据导入时转换,例如A1 = Variable('A1')
v_A = (ASC_A+ b_1_lv2 * Variable('A1_2') + b_1_lv3 * Variable('A1_3')+ b_2_lv2 * Variable('A2_2') + b_2_lv3 * Variable('A2_3')+ b_3_lv2 * Variable('A3_2') + b_3_lv3 * Variable('A3_3')+ b_4_lv2 * Variable('A4_2') + b_4_lv3 * Variable('A4_3')+ b_5_lv2 * Variable('A5_2') + b_5_lv3 * Variable('A5_3')+ b_6_lv2 * Variable('A6_2') + b_6_lv3 * Variable('A6_3')
)v_B = (ASC_B+ b_1_lv2 * Variable('B1_2') + b_1_lv3 * Variable('B1_3')+ b_2_lv2 * Variable('B2_2') + b_2_lv3 * Variable('B2_3')+ b_3_lv2 * Variable('B3_2') + b_3_lv3 * Variable('B3_3')+ b_4_lv2 * Variable('B4_2') + b_4_lv3 * Variable('B4_3')+ b_5_lv2 * Variable('B5_2') + b_5_lv3 * Variable('B5_3')+ b_6_lv2 * Variable('B6_2') + b_6_lv3 * Variable('B6_3')
)#设置索引
v = {1: v_A, 2: v_B}
av = {1: A_AV, 2: B_AV}#设定模型1
log_probability = loglogit(v, av, CHOICE)
the_biogeme = BIOGEME(database, log_probability)
the_biogeme.model_name = 'b01logit'#输出结果
results = the_biogeme.estimate()
print(results.short_summary())#输出系数结果
pandas_results = get_pandas_estimated_parameters(estimation_results=results,
)
display(pandas_results)

 

http://www.jsqmd.com/news/26579/

相关文章:

  • 构建AI智能体:五十三、反应式应急+深思式优化:反应速度与规划智慧的平衡 - 详解
  • 中间件架构师-混沌工程-蓝绿发布
  • 2025年知名的有油空压机厂家最新TOP排行榜
  • QOJ8085 Bulbasaur
  • 2025 年贵州旅游攻略旅行社推荐:贵州客哪点服务解析,定制化体验与品质保障深度测评
  • Launcher 卡片框架多模块集成
  • 从实验室到产线:苏州永创-STD2000X如何统一分立器件静态参数测试仪的“语言”? - FORCREAT
  • 2025年知名的1500千瓦柴油发电机组品牌厂家排行榜
  • 2025 年中空锚杆厂家最新推荐榜,自进式 / 注浆型全覆盖,聚焦技术实力与市场口碑深度解析
  • 2025 年 10 月实验室家具厂家推荐排行榜:通风柜,钢木结构,全钢结构,PP,不锈钢,实验台,落地式,网格桌公司精选
  • 洛谷题单指南-进阶数论-P2158 [SDOI2008] 仪仗队
  • 2025年比较好的注水式热水袋厂家最新权威实力榜
  • 2025 年刹车卡钳厂家最新推荐榜,技术实力与市场口碑深度解析,挖掘适配性与制动性能双优品牌
  • 2025年比较好的家用除湿机优质厂家推荐榜单
  • 2025 年 10 月高尔夫教练权威推荐榜:专业教学与实战提升口碑之选,助您精准挥杆进阶无忧
  • 2025 年北京旅游旅行社最新推荐榜,综合实力与服务竞争力深度解析玩本地 / 纯玩跟团 / 纯玩度假 / 纯玩无购物 / 纯玩无自费旅游推荐
  • 契约战歌手游新服免费体验,数量有限
  • 2025年工业吸油吸尘器源头厂家权威推荐榜单:电瓶工业吸尘器/工业除尘设备 /工业防爆吸尘器源头厂家精选
  • OAuth2 协议解析(安全视角)
  • [转] 封装并发任务方法
  • MyEMS:重塑能源管理格局的智能化利器
  • 2025 年防撞护栏生产厂家最新推荐排行榜:涵盖铝合金 / Q235/Q355B 桥梁及景观、灯光、河道、公路、喷塑、道路护栏企业
  • 成人草书培训市场:北兰亭引领专业风尚
  • 逆向基础--反编译介绍(002)
  • 2025年锤片式粉碎机供货厂家权威推荐榜单:食品添加剂‍粉碎机/白糖粉碎机 /五谷杂粮粉碎机源头厂家精选
  • 2025年热门的吸塑塑料托盘TOP品牌厂家排行榜
  • 【项目复现上新】突破推理瓶颈!LightLLM轻量化部署新范式,打造高性能法律智能体
  • 2025年跨境电商APP权威推荐榜单:海外跨境电商/跨境电商系统/跨境电商开店服务商精选
  • 麒麟服务器v11安装
  • 2025年铜箔PCB滤芯源头厂家权威推荐榜单:光纤滤芯/CMP抛光液滤芯 /墨水滤芯源头厂家精选