前言:本文主要介绍效用最大化理论及其在离散选择模型中的建模应用。并给出BinaryProbit模型的建模过程。
本文为系列离散选择模型(Discrete Choice Model, DCM)系列文章的第7篇。
温馨提示:阅读本文之前,请准备好纸、笔、以及小板凳。自己动手推导一遍有助于理解。
前文从模型结构的角度对比了线性模型和Logit模型。归纳起来说,二者之前的区别主要在于:(1)线性模型中的因变量是连续的,而Logit模型中的因变量是离散的;(2)线性模型描述了自变量和因变量之间的线性关系,而Logit模型描述的是非线性关系。
再来回顾一下Logit模型的结构(详见本系列的第4篇:正确打开/解读Logit模型系数的方式——离散选择模型之四)。记事件发生的概率为 P_{i} ,对应的Odds为 frac{P_{i}}{1-P_{i}} 。Logit模型是直接对Odds进行建模的——如下式所示,等号左边是Odds的对数,右边则是自变量的线性组合:
log ; it=log(Odds)=ln(frac{P_{i}}{1-P_{i}})=β_{0}+β_{1} x_{1}+⋯+β_{n} x_{n} ; ; ; (1)
整理可得:
P_{i}=frac{1}{1+e^{-(β_0+β_1 x_1+⋯+β_n x_n )}} ; ; ; (2)
下图给出了只考虑一个变量 x_1 且 β_0=0 时的Logit函数图像:
实际上,(1)式的作用是对概率 P_{i} 做了一个Logit变换: P_{i}→frac{P_i}{1-P_i}→ln(frac{P_i}{1-P_i}) ,将概率 P_i 从 left[ 0,1 right] 的区间映射到 left( -infty, +infty right) 。除了Logit变换,我们还可以构造其它的函数将概率 P_i 从 left[ 0,1 right] 映射到 left( -infty, +infty right) 。例如,我们可以构造一个正切函数 f(P_i )=tan(π⋅P_i-π/2) ,其在0-1区间上的图像如下:
类似的函数还可以构造出很多个。那问题来了:我们为什么要选择Logit变换?能不能选择其它的变换函数?要回答这些问题,就要从选择行为的建模过程来看。
从经济学的角度来说,决策者在面临多个可选方案的时候,通常会选择效用最大的那个方案。在中文里面,效用这个词的使用并不普遍;在英文里,效用所对应的英文单词是utility,它所对应的英文含义就是“something useful or designed for use”。日常生活中,常见的水、电、气这些物质满足了人们的在某方面的生活需要,它们都属于 utility。水费账单/电费账单/燃气账单都可以叫做 utility bill。
所以,你可以把这里的效用(utility)理解成每一个方案所能提供的价值,或者是某个方案所能够给你带来的满足感/幸福感。举个例子,在买车的时候,你可能会考虑多个品牌的多款车型,你最终选择了某款车型是因为你觉得该车型的外形设计比较新颖时尚、加速性能好、安全系数较高,等等。
另外一个例子,假设你打算从家去火车站,有两种方式可供选择——公交和地铁;考虑三个维度的属性:时间、费用、可靠性。你最终选择地铁的原因是:相对于公交,地铁的出行时间更短、更可靠;尽管费用比公交要贵一点,但是综合起来看,选择地铁可以提供更高的效用。
如果我们假设每一个决策主体都是理性的(经济学中的“理性经济人”的假设),其所追求的目标都是使自己的效用最大化——这就是所谓的“效用最大化准则”。
对于决策主体 n 而言,若方案 i 的效用 U_{in} 高于方案 j 的效用 U_{jn} ,则 n 选取方案 i 。即:
if ; U_{in}>U_{jn},; then ; n ; choose; i
换个说法,方案 i 被个体 n 选中的概率 P_{n}(i) 等价于事件 U_{in}>U_{jn} 发生的概率:
P_{n}(i)=P(U_{in}>U_{jn} ) ; ; ; (3)
这里,我们已经初步把一个选择问题表示成一个概率问题。下面需要做的是:
(1)建立效用U_{in}和U_{jn}与自变量之间的关系;
(2)确定概率P_{n}(i)的表达形式。
在上面的第二个例子中,我们考虑了三个维度的属性:时间、费用、可靠性。需要说明的是,现实情况中,除了上面提到的这三个因素以外,人们在选择交通工具的时候还会考虑其它的因素,比如天气、步行距离、换乘次数以及出行时的心情,等等。在建模的时候,有些参数是可以观测到的,比如上面提到的时间、费用、可靠性——时间、价格不必说,可靠性我们可以用准点率或者运行时间的方差来衡量;然而有些因素则是无法测量或者说很难测量——比方说你们家楼下就有一个公交站点,下班的时候,你一般都会选择坐公交;但某天下班后,你打算先和朋友去地铁站附近撸个窜,然后顺道坐地铁回去——这些偶然的因素就是不可观测的。另外,测量的过程中的可能还会有误差。因此,建模的时候,我们可以把效用当作一个随机变量;它由两部分组成——可观测到的确定性部分(deterministic component)和随机部分(random component)。基于此,上面的例子中,公交、地铁这两种出行方式所对应的效用 U_{in} 和 U_{jn} 可以分别表示为:
U_{in}=V_{in}+ε_{in}
U_{jn}=V_{jn}+ε_{jn}
i 、j 分别对应公交、地铁这两种出行方案; V_{in} 和 V_{jn} 分别表示 U_{in} 、 U_{jn} 中确定性的部分——这一部分效用对于分析人员来说时可以观测得到的,且一般可以表示成多个自变量的线性组合:
V_{in}=β_{1} X_{in1} + β_{2} X_{in2} + ⋯ +β_{K} X_{inK}={bf β^{'} X_{in}}
V_{jn}=β_{1} X_{jn1} + β_{2} X_{jn2} + ⋯ +β_{K} X_{jnK}={bf β^{'} X_{jn}}
ε_{in} 和 ε_{jn} 则表示方案 i 、 j 的效用中的随机部分。假设分析人员的手上只有关于公交/地铁的时间、费用两方面的数据,则:
U_{in}=-0.25-0.1c_{in}-0.05t_{in}+ε_{in}
U_{jn}=-0.1c_{jn}-0.05t_{jn}+ε_{jn}
上式中, c_{in} / c_{jn} 分别表示对象 n 选择公交 i /地铁 j 的费用(Cost); t_{in} / t_{jn} 分别表示对象 n 乘坐公交 i /地铁 j 所花费的时间(Time); ε_{in} / ε_{jn} 表示其它未观测到的效用。此时,出行对象 n 选择公交 i 的概率可以表示为:
P_{n} (i)=P(U_{in}>U_{jn} )
=P(-0.25-0.1c_{in}-0.05t_{in}+ε_{in}>-0.1c_{jn}-0.05t_{jn}+ε_{jn} )
更具体一些,如果出行者 n 乘坐公交、地铁所需的时间分别为30、20分钟,所需的费用分别为2、5元,我们可以粗略地认为:对于出行者 n 而言,公交所提供的效用的均值为 -0.25-0.1(2)-0.05(30)=-1.95 ;相应地,地铁的效用均值为 -0.1(5)-0.05(20)=-1.5 。需要说明的是:这种说法是一种较为粗糙的解释。例如,我们同时把上面的效用增加一个常量100,新的效用可以表示为:
U_{in}^{'}=100-0.25-0.1c_{in}-0.05t_{in}+ε_{in}
U_{jn}^{'}=100-0.1c_{jn}-0.05t_{jn}+ε_{jn}
此时, n 选择公交 i 的概率 P_{n}^{'}(i) 可以表示为:
P_{n}^{'}(i)=P(U_{in}^{'}>U_{jn}^{'})
=P(100-0.25-0.1c_{in}-0.05t_{in}+ε_{in}>100-0.1c_{jn}-0.05t_{jn}+ε_{jn} )
=P(-0.25-0.1c_{in}-0.05t_{in}+ε_{in}>-0.1c_{jn}-0.05t_{jn}+ε_{jn} )
=P_{n}(i)
可见,在方案 i 和方案 j 的效用表达式中同时增加一个常量并不会改变方案 i 被选中的概率!另外,将 U_{in} 和 U_{jn} 同时乘以 sigma ; (sigma>0) 也不会影响 i 被选中的概率。也就是说,影响决策的是方案 i 的效用和方案 j 的效用的相对差值,而不是各方案效用的绝对大小。如果把“每个方案的效用”理解成“每个方案的所能提供的幸福感”,那么更文艺的说法是——在谈论幸福的意义之前,要先给出参照物,否则无意义。
进入正题之前,先补充点概率统计的知识。
1)若随机变量 X 服从均值为 mu 、方差为 sigma^{2} 的正态分布,记为 X sim N(μ,σ^2 ) ,则其概率密度函数为:
f(x)=frac{1} {sqrt{2 pi} sigma} e^{frac{-(x-μ)^2}{2σ^2}}
当 mu=0 、 sigma=1 时称为标准正态分布。此时上式可以简化为:
f(x)=frac{1} {sqrt{2 pi}} e^{frac{-x^2}{2}}
2)累积分布函数是指随机变量 X 小于或等于 x 的概率,用密度函数表示为:
F(x)=int_{-infty}^{x} frac{1} {sqrt{2 pi} sigma} e^{frac{-(x-μ)^2}{2σ^2}} dx
标准正态分布的累积分布函数习惯上记为 Phi ,它对应 mu=0 、 sigma=1 的情形:
Phi(x)=int_{-infty}^{x} frac{1} {sqrt{2 pi}} e^{frac{-x^2}{2}} dx
3)若随机变量 X_{1} 、X_{2} 均服从正态分布,且 X_{1} sim N(mu_{1}, sigma_{1}^{2} ) 、 X_{2} sim N(mu_{2}, sigma_{2}^{2} ) ,则两者的差 X_{1}-X_{2} 服从均值为 mu_{1}-mu_{2} 、方差为 sigma_{1}^{2} + sigma_{2}^{2} – 2sigma_{1}sigma_{2} 的正态分布,即:
X_{1} – X_{2} sim N(mu_{1} – mu_{2}, sigma_{1}^{2} + sigma_{2}^{2} – 2sigma_{1}sigma_{2} )
由(3)式可知,方案 i 被个体 n 选中的概率 P_{n}(i) 等价于事件 U_{in}>U_{jn} 发生的概率:
P_{n} (i)=P(U_{in}>U_{jn} )
=P(V_{in}+ε_{in} > V_{jn}+ε_{jn})
=P(ε_{jn}-ε_{in} < V_{in} – V_{jn}) ; ; ; (4)
对于随机效用变量 ε_{in} 和 ε_{jn} ,我们并不知道其确切的分布形式。另外,采用不同的分布形式会得到不同的离散选择模型——在Probit模型中,我们假设随机效用变量 ε 服从正态分布;在Logit模型中,我们假设随机效用变量 ε 服从Logistic分布。下图给出了标准正态分布和标准Logistic分布的概率密度函数(probability density function, PDF)图像:
先看Probit模型。
由中心极限定理可知:大量的独立随机变量之和近似于服从正态分布。如果我们把效用的随机部分—— ε_{in} 和 ε_{jn} ——看成多个不可观测的随机变量的组合,那么,根据中心极限定理,我们可以假设 ε_{in} 和 ε_{jn} 近似地服从正态分布。更具体地,我们假设变量 ε_{in} 和 ε_{jn} 服从均值为0、方差为 sigma_{1}^{2} 和 sigma_{2}^{2} 的正态分布,即:
ε_{in} sim N(0, sigma_{1}^{2} ), ; ε_{jn} sim N(0, sigma_{2}^{2} )
需要说明的是,你也可以假设 ε_{in} 和 ε_{jn} 的均值为 mu ; (mu >0) ,但这实际上是相当于在效用函数 U_{in} 、 U_{jn} 中同时增加了一个常数项——这并不会改变 n 选择方案 i 的概率。为方便起见,我们令 ε_{in} 和 ε_{jn} 的均值都为0。由前文可知:
ε_{jn} -ε_{in} sim N(0, sigma^{2} ) ; ; ; ; (5)
其中, sigma^{2} = sigma_{1}^{2} + sigma_{2}^{2} – 2sigma_{1}sigma_{2} 。
结合(4)、(5)两式可得:
P_{n} (i) = P(ε_{jn}-ε_{in} < V_{in} – V_{jn})
=int_{-infty}^{V_{in}-V_{jn}} frac{1} {sqrt{2 pi} sigma} e^{-frac{varepsilon^2}{2sigma^2}} dvarepsilon , ; sigma>0
=int_{-infty}^{frac{V_{in}-V_{jn}}{sigma}} frac{1} {sqrt{2 pi}} e^{-frac{u^2}{2}} du
=Phi(frac{V_{in}-V_{jn}}{sigma}) ; ; ; ; (6)
(6)式中 Phi() 表示标准正态分布的累积分布函数, V_{in} 、 V_{jn} 表示方案 i 、 j 的效用中的确定的部分。一般地,效用的确定性部分可以表示成多个自变量的线性组合,即:
V_{in}={bf β^{'} X_{in}}
V_{jn}={bf β^{'} X_{jn}}
最终,决策者 n 选择方案 i 的概率可以表示为:
P_{n} (i) =Phi left( frac{ {bf β^{'} (X_{in} – X_{jn})}}{sigma} right) ; ; ; ; (7)
(6)、(7)两式便是Probit模型的表达式。几点说明:
有没有觉得上面这个Probit模型的函数图像和Logit模型的函数图像非常的接近?下一篇我们将会基于效用最大化理论推导出Logit模型的表达式,并将 Logit 模型和 Probit 模型进行对比。
【本篇完】
离散选择模型基础:
二项Logit/Probit:
多项Logit(MNL):
统计学相关:
关注【DCM笔记】公众号,私信作者获取相关文章中的 练习数据 和 代码:
上一篇
下一篇
“本文整理了一下,关于imatest 软件colorcheck模块的测试过程及结果分析,主要是参考了imatest官网及自己的一些使用理解,目 ...