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

离散选择模型中的分散系数theta到底该放在哪里呢?

前言

\quad~~   一直都在想为啥子离散选择模型中分散系数以分母形式出现而在路径选择公式中以系数形式出现呢?看着公式想了想,现在想出了一个似乎感觉应该差不多很合理的答案,希望与大家一起探讨。

进入正题

根据随机效用理论,决策者在面对 nnn 个备选方案做选择时,会根据自身的意愿感知哪一个备选方案对自身而言是最好的,从而作出自身选择。这里的最好用数量来进行衡量就可以说是效用最高的

比如从A点到B点共有 nnn 条路,我现在需要从A点到B点,从节约时间的角度来考虑的话,那么我肯定希望选择最快捷的一条路。即如果我能以最快的时间到达我的目的地的话,对我而言,我就得到了最高的出行效用。

通常呢,我们的感知能力是有限的,如果我们记选择任意一个方案 jjj 的效用为 UjU_jUj,那么 UjU_jUj 为一个随机变量,它可以分为两部分,一部分呢是我们可以以实际那数字量化出来的,我们称为系统效用。另一部分呢为我们无法测量出来的,或估测时的误差,为一个随机变量,我们称为感知误差项。因此这里的方案 jjj 的效用 UjU_jUj 就可以写为系统效用 VjV_jVj 与随机误差项 εj\varepsilon_jεj 的和,即:
Uj=Vj+εj.(1)U_j=V_j+\varepsilon_j.\tag{1}Uj=Vj+εj.(1)
在多项式Logit模型中,我们假设随机误差项 εj\varepsilon_jεj 服从零均值的Gumbel分布,其概率密度函数与累积分布函数分别为:
f(x)=1θexp(−xθ−Φ)exp[−exp(xθ−Φ)],(2)f(x)=\frac{1}{\theta}exp(-\frac{x}{\theta}-\Phi)exp[-exp(\frac{x}{\theta}-\Phi)],\tag{2}f(x)=θ1exp(θxΦ)exp[exp(θxΦ)],(2)F(x)=Pr(εj≤x)=exp[−exp(xθ−Φ)],(3)F(x)=Pr(\varepsilon_j\leq x)=exp[-exp(\frac{x}{\theta}-\Phi)],\tag{3}F(x)=Pr(εjx)=exp[exp(θxΦ)],(3)这里的参数 Φ\PhiΦ 为欧拉常数,Φ≈0.577\Phi\approx0.577Φ0.577
从而可以得出决策者选择备选方案 jjj 的概率为:pj=Pr(Uj>Uk,∀k≠j)=exp(Vj/θ)∑kexp(Vk/θ).(4)p_j=Pr(U_j>U_k,\forall k\neq j)=\frac{exp(V_j/\theta)}{\sum_k exp(V_k/\theta)}.\tag{4}pj=Pr(Uj>Uk,k=j)=kexp(Vk/θ)exp(Vj/θ).(4)

而通常在路径选择情形中我们以出行阻抗作为我们的出行负效用(因为我们出行就会花费时间,金钱等,这都属于是对我们自身资源的一种消耗),负效用越小的路径被选择的可能性就会越大。这里呢,同样因为人们的感知,计算等能力有限,我们所判定的出行负效用也为一个随机变量,为可直接估量的系统效用与随机误差项的和。同样以路径 jjj 为例,其感知出行负效用为 CjC_jCj, 可进行估测的系统效用为 cjc_jcj,随机误差项为 ξj\xi_jξj, 则 CjC_jCj 就可写为:
Cj=cj+ξj,(5)C_j=c_j+\xi_j,\tag{5}Cj=cj+ξj,(5)那么选择路径 jjj 的效用就可以写为:Uj=−Cj,(6)U_j=-C_j,\tag{6}Uj=Cj,(6)那么我们使用概率密度函数公式 (2) 计算得出的选择路径 jjj 的概率为:
pj=Pr(Uj>Uk,∀k≠j)=exp(−cj/θ)∑kexp(−ck/θ).(7)p_j=Pr(U_j>U_k,\forall k\neq j)=\frac{exp(-c_j/\theta)}{\sum_k exp(-c_k/\theta)}.\tag{7}pj=Pr(Uj>Uk,k=j)=kexp(ck/θ)exp(cj/θ).(7)但通常呢,路径选择概率会写为如下形式:
pj=Pr(Uj>Uk,∀k≠j)=exp(−θcj)∑kexp(−θck).(8)p_j=Pr(U_j>U_k,\forall k\neq j)=\frac{exp(-\theta c_j)}{\sum_k exp(-\theta c_k)}.\tag{8}pj=Pr(Uj>Uk,k=j)=kexp(θck)exp(θcj).(8)所以公式 (7) 和 (8) 同样是路径选择概率公式为什么不一样呢?

解决问题

观察概率密度函数,即公式 (2), 如果令 y=−xθy=-\frac{x}{\theta}y=θx, 那么就有f(−θy)=1θexp(y−Φ)exp[−exp(y−Φ)],(9)f(-\theta y)=\frac{1}{\theta}exp(y-\Phi)exp[-exp(y-\Phi)],\tag{9}f(θy)=θ1exp(yΦ)exp[exp(yΦ)],(9)那么θf(−θy)=exp(y−Φ)exp[−exp(y−Φ)],(10)\theta f(-\theta y)=exp(y-\Phi)exp[-exp(y-\Phi)],\tag{10}θf(θy)=exp(yΦ)exp[exp(yΦ)],(10)对应的累积分布函数为θF(−θy)=exp[−exp(y−Φ)],(11)\theta F(-\theta y)=exp[-exp(y-\Phi)],\tag{11}θF(θy)=exp[exp(yΦ)],(11)看着公式 (10) 和公式 (11) 是不是相对于(2),(3) 来说更简洁呢?公式 (10) 和公式 (11) 变成了零均值的标准Gumbel分布。所以如果公式(2)为随机变量 εj\varepsilon_jεj 的概率密度函数,从简化的角度来看,我们是不是可以让随机变量 ξj=−εj/θ\xi_j =- \varepsilon_j/\thetaξj=εj/θ,即εj=−θξj\varepsilon_j= -\theta \xi_jεj=θξj,那么为了统一公式 (6),我们可以令 Vj=−θcjV_j = -\theta c_jVj=θcj,那么 εj\varepsilon_jεj 经过处理后的概率密度函数就可以表示为公式 (10) 和公式 (11),即选择路径 jjj 的概率就表示为pj=∫−∞+∞exp[−exp(εj+Vj−Vk−Φ)]∗exp(εj−Φ)exp[−exp(εj−Φ)]dεj,(12)p_j=\int_{-\infty}^{+\infty}exp[-exp(\varepsilon_j+V_j-V_k-\Phi)]* \\ exp(\varepsilon_j-\Phi)exp[-exp(\varepsilon_j-\Phi)]d\varepsilon_j, \tag{12}pj=+exp[exp(εj+VjVkΦ)]exp(εjΦ)exp[exp(εjΦ)]dεj,(12)
整理可得概率公式为:pj=Pr(Uj>Uk,∀k≠j)=exp(Vj)∑kexp(Vk),(13)p_j=Pr(U_j>U_k,\forall k\neq j)=\frac{exp(V_j)}{\sum_k exp(V_k)},\tag{13}pj=Pr(Uj>Uk,k=j)=kexp(Vk)exp(Vj),(13)Vj=−θcjV_j = -\theta c_jVj=θcj代入公式 (13),即得到公式 (8)。

相关文章:

离散选择模型中的分散系数theta到底该放在哪里呢?

前言 \quad~~一直都在想为啥子离散选择模型中分散系数以分母形式出现而在路径选择公式中以系数形式出现呢?看着公式想了想,现在想出了一个似乎感觉应该差不多很合理的答案,希望与大家一起探讨。 进入正题 根据随机效用理论,决策…...

【CSAPP】进程 | 上下文切换 | 用户视角下的并发进程

💭 写在前面:本文将学习《深入理解计算机系统》的第六章 - 关于异常控制流和系统级 I/O 的 进程部分。CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写,该教材由Randal E. Bryant和David R. OHallaron 合著…...

节流还在用JS吗?CSS也可以实现哦

函数节流是一个我们在项目开发中常用的优化手段,可以有效避免函数过于频繁的执行。一般函数节流用在scroll页面滚动,鼠标移动等。 为什么需要节流呢,因为触发一次事件就会执行一次事件,这样就形成了大量操作dom,会出现卡顿的情况…...

带你看看 TypeScript 5.0 的新特性

一、写在前面 TypeScript 5.0 已经于 2023 年 3 月 16 日发布了,带来了许多新功能,同时也在性能方面进行了优化,下面让我们来一起看看新版 TypeScript 中比较有重要的变化吧。 二、新特性 2-1、速度、包体积优化 首先是新版本性能的提升&…...

C语言预处理条件语句的 与或运算

C语言预处理条件语句的 与或运算 1.#ifdef 与或运算 #ifdef (MIN) && (MAX) ----------------------------错误使用 #if defined(MIN) && defined(MAX) ---------------- 正确使用 #ifdef (MIN) || (MAX) -----------------------------错误使用 …...

从零实现深度学习框架——学习率调整策略介绍

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 要深入理解深度学习,从零开始创建的经验非常重要,从自己可以理解的角度出发,尽量不使用外部完备的框架前提下,实现我…...

系统架构:经典三层架构

引言 经典三层架构是分层架构中最原始最典型的分层模式,其他分层架构都是其变种或扩展,例如阿里的四层架构模式和DDD领域驱动模型。阿里的 四层架构模型在三层基础上增加了 Manager 层,从而形成变种四层模型;DDD架构则在顶层用户…...

数据结构--二叉树

目录1.树概念及结构1.1数的概念1.2数的表示2.二叉树概念及结构2.1二叉树的概念2.2数据结构中的二叉树2.3特殊的二叉树2.4二叉树的存储结构2.4.1顺序存储2.4.2链式存储2.5二叉树的性质3.堆的概念及结构3.1堆的实现3.1.1堆的创建3.1.2堆的插入3.1.3堆顶的删除3.1.4堆的代码实现3.…...

Keil5安装和使用小记

随着keil版本的更新,一些使用问题一随之产生。本文针对安装目前最新版本keil软件和使用问题做一些总结。 目录1 Keil5下载&安装1.1 官网下载链接1.2 软件安装1.2.1 安装说明1.2.2 关于 51 和 ARM 共存的问题1.3 软件破解2 pack包安装 & 破解2.1 下载2.2 安装…...

多机器人集群网络通信协议分析

本文讨论的是多机器人网络通信各层的情况和协议。 每个机器人连接一个数据传输通信模块(以下简称为数传,也泛指市面上的图传或图数一体的通信模块),数传之间进行组网来传递信息。 根据ISO的划分,网络通信的OSI模型分…...

【PyTorch】手把手带你快速搭建PyTorch神经网络

手把手带你快速搭建PyTorch神经网络1. 定义一个Class2. 使用上面定义的Class3. 执行正向传播过程4. 总结顺序相关资料话不多说,直接上代码1. 定义一个Class 如果要做一个神经网络模型,首先要定义一个Class,继承nn.Module,也就是i…...

【完整代码】用HTML/CSS制作一个美观的个人简介网页

【完整代码】用HTML/CSS制作一个美观的个人简介网页整体结构完整代码用HTML/CSS制作一个美观的个人简介网页——学习周记1HELLO!大家好,由于《用HTML/CSS制作一个美观的个人简介网页》这篇笔记有幸被很多伙伴关注,于是特意去找了之前写的完整…...

Java分布式事务(九)

文章目录🔥XA强一致性分布式事务实战_Atomikos介绍🔥XA强一致性分布式事务实战_业务说明🔥XA强一致性分布式事务实战_项目搭建🔥XA强一致性分布式事务实战_多数据源实现🔥XA强一致性分布式事务实战_业务层实现&#x1…...

基于深度学习的动物识别系统(YOLOv5清新界面版,Python代码)

摘要:动物识别系统用于识别和统计常见动物数量,通过深度学习技术检测日常几种动物图像识别,支持图片、视频和摄像头画面等形式。在介绍算法原理的同时,给出Python的实现代码、训练数据集以及PyQt的UI界面。动物识别系统主要用于常…...

K8S集群之-ETCD集群监控

### 生产ETCD集群监控核心指标 etcd服务存活状态 ​ up{job~"kubernetes-etcd.*"}0 ​ 说明:up0代表服务挂掉 etcd是否有脱离情况 etcd_server_has_leader{job~"kubernetes-etcd.*"}0 说明:每个instance,该值应该都…...

一文弄懂熵、交叉熵和kl散度(相对熵)

一个系统中事件发生的概率越大,也就是其确定性越大,则其包含的信息量越少,可以认为一个事件的信息量就是该事件发生难度的度量,事件所包含的信息量越大则其发生的难度越大。并且相互独立的事件,信息量具有可加性。相互…...

10从零开始学Java之开发Java必备软件Intellij idea的安装配置与使用

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言壹哥在前面的文章中,带大家下载、安装、配置了Eclipse这个更好用的IDE开发工具,并教会了大家如何在Ecli…...

04 - 进程参数编程

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中)Linux系统编程训练营 - 目录 文章目录1. 问题1.1 再论execve(...)1.2 main函数(默认进程入口)1.3 进程空间概要图1.4 编程实验:进程参数剖析1…...

【python进阶】你真的懂元组吗?不仅是“不可变的列表”

📚引言 🙋‍♂️作者简介:生鱼同学,大数据科学与技术专业硕士在读👨‍🎓,曾获得华为杯数学建模国家二等奖🏆,MathorCup 数学建模竞赛国家二等奖🏅&#xff0c…...

《C++ Primer Plus》(第6版)第13章编程练习

《C Primer Plus》(第6版)第13章编程练习《C Primer Plus》(第6版)第13章编程练习1. Cd类2. 使用动态内存分配重做练习13. baseDMA、lacksDMA、hasDMA类4. Port类和VintagePort类《C Primer Plus》(第6版)第…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...