1、蚁 群算法在 Logit 模型参数标定中的应用王 雷1高 扬2(1.广州铁路职业技术学院 ,广东 广州 510430;2.广州市城市规划勘测设计研究院 ,广东 广州 510000)摘 要 :Logit 模型作为一种离散选择模型 ,被广泛地应用于交通需求预测 ,其中的交通方式选择是其应用的一个典型 。 建立 logit 模型最重要的步骤之一 ,便是对模型的参数进行标定 。 logit 模型参数估计是极大似然估计 ,求解参数的算法一般使用 NR 法 (NewtonRaphson)和 DGP 法 (DavidonFetcherPowellmethod),本文尝试采用一种新兴的人工智能算法 蚁群算法
2、,来代替 NR 法和 DGP 法对 logit 模型的参数进行标定 。 最后结合一实例进行验证 ,并与 NR 算法下的结果进行对比 ,证明蚁群算法解决 logit 模型参数标定的可行性和合理性 。关键词 :蚁群算法 ;logit 模型 ;参数标定中图分类号 :U 491 文献标识码 :A 文章编号 :1672 - 402X(2009)03 - 0016 - 04收稿日期 :2009-07-25基金项目 :广州铁路职业技术学院科研项目 (No.GTXYY0710)作者简介 :王雷 (1975-),男 ,山东潍坊人 ,广州铁路职业技术学院讲师 ,博士 。 研究方向 :智能交通 、交通仿真以及物流信
3、息系统等 。广东技术师范学院学报 (自然科学 )2009 年第 3 期 Journal of Guangdong Polytechnic Normal University No3,20090 引 言Logit 模型是基于经济学中的效用最大化理论推导出来的方式划分选择模型 , 由于其不需要很大的调查样本也能比较准确的模拟个体的选择行为 ,所以在经济学 、社会学及交通工程等领域均有广泛的应用 。传统的 Logit 模型参数估计采用极大似然估计 ,以调查全体的同时概率最大为目标函数 , 然后再利用NR 法或 DGP 等算法求解需标定的参数变量1。 而蚁群算法做为一种新兴仿生优化算法 , 具有极强的
4、随机搜索能力和正反馈并行机制 , 使其在求解组合优化问题时表现出优异的性能和巨大的发展潜力 。 鉴于此 ,本文将蚁群算法用于 Logit 模型的对数似然函数最大化求解 ,经具体实例分析证明 ,这种尝试是可行的和有效的 。1 Logit 模型及传统参数标定法1.1 Logit 模型Logit 模型的一般形式是 MNL 模型 ,其选择项的效用随机项 in相互独立且服从同一二重指数 in 分布 。 设出行方式有 J 种 ,则个体对于出行方式选择的概率为 :Pin=eVinJj=1eVjn(i=1,2,J)(n=1,2,N) (1)式中 ,N 为出行者个数 ;Pin为出行者 n 选择方式i 的概率 ;
5、Vin为方式 i 对于出行者 n 的效用函数中的固定项 ;J 为可供选择方式的个数 。这里 ,假定每个出行者的选择集都是相同的 。效用函数 Vin的表示方式有多种 ,最简单最常用的形式为假设二者呈线性关系 ,其形式如下 :Vin=Kk=1kXink(i=1,2,J)(n=1,2,N) (2)式中 ,K 表示各选择方式的特性变量个数 ;k表示对应的特性变量参数 ,也就是在建模过程中需要标定的参数 ;Xink表示出行者 n 的第 i 个选择方式上 ,第 k 个特性变量的值 。 每种选择方式对应的特性变量包括选择方案特性变量 ,出行者特性变量两大部分 ,前者又由选择方案固有哑元 、选择方案固有变量以
6、及选择方案公共变量组成 。 Xink可由调查获得数据 。1.2 Logit 模型极大似然估计确定了模型的基本形式及效用函数中的特性变量 ,下面的工作便是对模型中的未知参数进行标定 。Logit 模型参数标定方法均采用极大似然函数法 。 在第 3 期 王 雷 高 扬 :蚁群算法在 Logit 模型参数标定中的应用介绍具体方法前 ,需引进一个概率变量 inin=1,选择结果与 i 相同时0,其,他,个人选择的似然函数为 :Ji=1仪Pinin,样本似然函数为 :L*=Nn=1仪Ji=1仪Pinin,其对数似然函数 L 为 :L=lnL*=Nn=1Ji=1inlnpin=Nn=1Ji=1in(Kk=
7、1kXink-lnJi=1eKk=1kXink)。 (3)标定模型参数 的思想就是求一个 的组合 ,使 L 式的值取最大值 。求 解 的 解 析 计 算 方 法 有 牛 顿 拉 普 松 法(NewtonRaphson,NR)和 DGP 法 (DavidonFetcherPowellmethod)、最速下降法等 ,当把 (3)式化为线性方程组进行求解时 , 还可使用高斯消去法 、JACOBI迭代法 、高斯 塞德尔迭代法等2。 各种方法求解思路各有特色 ,但均对目标函数式有个共同的要求 ,即目标函数为凸函数 。 而蚁群算法作为一种新的仿生优化算法 ,对目标函数并无特殊要求 ,且其寻优能力还要高于某
8、些数值算法 ,下面 ,详细介绍怎样将蚁群算法用于 logit 模型极大似然的参数标定 。2 蚁群算法2.1 蚁群算法基本思想最初的蚁群算法用于离散域优化问题的求解(如 TSP,最短路 ),其思想是模仿蚂蚁在自然界中的群体觅食行为 ,找到从出发点 (蚁穴 )到目的地 (食物源 )的最优路径 。 其基本机理是蚂蚁在寻找食物时 ,会在它所经过的路径上留下一种称之为信息素(pheromone)的物质进行传递 ,而蚂蚁能感知这种物质并以此物质的浓度此来指导自己的运动方向 。 由于信息素会随着时间的推移逐渐挥发掉 , 因此路径的长短决定了路径上残留信息素的多少 。 由大量蚂蚁组成的蚁群集体行为便表现出一种
9、信息正反馈现象 :某一路径上走过的蚂蚁越多 ,则后来者选择该路径的概率就越大 。 蚁群就是通过这种方式最终找到最短路的3。将蚁群算法用于连续域优化问题求解所用的基本思想和离散域相同 ,只是在很多细节问题上需要修改 。 这里 ,介绍一种基于网格划分策略的蚁群算法4用于求解该模型所需的 变量 。 其基本思路如下 :首先根据所求连续域优化问题的性质估计出变量的取值范围 xjlowerxjxjupper(j1,2,3,n)。 在变量区域内打网格 ,空间上的点对应与一个状态 ,蚂蚁在各空间网格点之间移动 ,并根据各网格点的目标函数值留下不同的信息量 , 以此影响下一批蚂蚁的移动方向 。每一次循环 ,目标
10、函数值最优的网格点 ,信息量最大 ,循环一段时间后 , 找出信息量较大的空间网格点 ,并缩小变量的取值范围 , 再在新的变量区域内打网格 ,不断重复这一过程 ,直到满足算法的停止条件为止 。假设共有 n 个变量 ,使问题成为 n 级决策问题 ,每个变量分为 N 等份 , 每一级便有 N+1 个节点 ,这样共有 (N1)n 个节点从第一级到第 n 级之间连接在一起 ,组成了解空间内的一个解 ,如图 1假设最终每一级信息量最大的节点所组成的状态空间为 (1,3,1,4),则其对应的解为(x1,x2,x3,xn)=(x1lower+x1upper-x1lowerN1,x2lower+x2upper-
11、x2lowerN3x3lower+x3upper-x3lowerN1,xnlower+xnupper-xnlowerN4)。 (4)蚂蚁从第一级到第 n 级之间的状态转移概率可按下式计算Pij=ijNi=1ij。 (5)这里 ij可理解为第 j 级第 i 个节点的吸引强度 。 信图 1 状态空间解17 第 3 期息素更新方程为newij=(1-)oldij+Q/(Rf)。 (6)式中 , 表示信息素挥发系数 , 取值一般在 00.5;Q和 R 为一正常数 ,为了保证 Rf 的值不小零 ,R 应取一足够大的正常数 ;f 为目标函数值 , 当求目标函数最大化时 ,为 R-f,反之 ,R+f。2.2
12、 蚁群算法用于参数标定为了提高算法的稳定性及计算效率和参数标定精度 ,特将原算法做了一些改进3:将各条路径上可能残留的信息素数量限制在 min,max,每次循环结束后保留最优路径 , 且在一个循环中只有路径最优的蚂蚁才有权修改 ij(t),并按照下式对信息素进行阀值判断选择ij(t+n)=min,若 ij(t)minij(t),若 minmax。 (7)算法的具体步骤如下 :第一步 :参数初始化 ,Nc/Ncmax迭代次数 /最大迭代次数 ,m蚂蚁个数 ,n变量个数 ,N变量等份 ,min信息素下界 ,max信息素上界 ,迭代精度 ,Q、R常量 ,ij较小正常数 。 minmaxijxxx 估
13、计出各变量的取值范围 xjlowerxjxjupper(j1,2,3,n),将变量分为 N 等份 ,hj=xjuuper-xjlowerN(j1,2,n)。第二步 :若 max(h1,h2,hn),则算法停止 ,最优解为 x*=xjuuper+xjlower2(j1,2,n);否则转到第三步 。第三步 :Nc0,对每只蚂蚁按公式 (5)选择节点 ,从第 1 级到第 n 级 。第四步 :计算每只蚂蚁的目标函数值 ,选取最优蚂蚁的值按公式 (6)进行信息素的加强更新 ,其他路径信息素则挥发 。 同时按照公式 (7)进行信息素阀值判断 。第五步 :Nc Nc+1;第六步 :若 Nc Ncmax,转到
14、第三步 ;否则 ,找到 矩阵每列最大元素 (m1,m2,mn),并缩小变 cmax-ij12n 量的取值范围 :xjlowermj-hj,xuppermj+hj(j1,2,n),转到第二步 。3 实例演示分析及比较从文献 1中提取一个个人出行工具选择的调查数据 ,其考虑选择的对象为私家车 (i1)和公共汽车 (i2),效用函数 Vin 的形式为线性函数 ,特性变量为固有哑元和出行时间 ,因此 Vin形式如下私家车 V1n=1+2X1n2,公共汽车 :V2n=2X2n2。1、2为需标定的未知参数 ,Xin2为交通方式 i 的出行时间 (min)。 因此选择交通方式 i 的概率如下所示 :P1n=
15、11+exp-1+2(X1n2-X2n2 ),P2n=1-P1n=exp-1+2(X1n2-X2n2 )1+exp-1+2(X1n2-X2n2 )。调查样本数为 21。 样本对数似然函数为L=21i=1 1nln11+e-(X1n+X2n) +2nlne-(X1n+X2n)1+e-(X1n+X2n) 。用 MATLAB6.5 实现基于网格的蚁群算法 ,结果不稳定 ;运行经改进后的蚁群算法 ,结果稳 N 定且符合要求 。 参数初始值设置 :m10,N10,0.001,Q50,0.3,Ncmax100。 由蚁群算法和 NR 算法最终得到的结果见表 1。上表可看出 , 由蚁群算法和 NR 算法得到的
16、结果相近 , 且蚁群算法计算的对数似然函数值比 NR法要优 0.0556。参数标定后 ,还需对参数进行检验 ,以验证参数选择的正确度和模型的精度 。 把两种算法下的结果用各检验指标进行检验分析及比较 , 汇总结果如下表所示 :表 2 参数检验指标比较检验指标 NR 法 蚁群算法 备注检验1 0.32 0.39 判断特性变量 1 是否对模型有显著影响2 2.57 2.43 判断特性变量 2 是否对模型有显著影响0216.78 16.8916 检验所有参数是否为零的指标c216.732 15.675 检验除固有哑元外的所有参数是否为零的指标的中率HitR 0.905 0.905 全体的中率中Hit
17、R1 0.905 0.905 选择方案 1 的中率HitR2 0.905 0.905 选择方案 2 的中率优度比 20.576 0.5802 取值 01,数值越大模型精度越高适合度 -20.521 0.5249 越接近 1,模型精度越高表 1 两种算法下的结果结果 NR ACA对数似然函数值 L -6.166 -6.1104参数 1-0.237 0.3435参数 2-0.053 -0.053王 雷 高 扬 :蚁群算法在 Logit 模型参数标定中的应用18 第 3 期The Application of Ant Colony Algorithm in Parameter Calibration
18、 of Logit ModelWANG Lei1GAO Yang2(1.Guangzhou Institute of Railway Technology, Guangzhou 510430,China;2.Guangzhou Urban Planning & Design Surey Research Institute,Guangzhou 510000,China)Abstract: Logit model,as a discrete choice model, has been used widely in travel demand forcast trafficmode-choice
19、 is one of its typical application. One of the most important step to build logit model is to calibratethe model parameters. The estimation of parameter is maximum likehood estimation.Generally, the algorithm useNewton-Raphson method and Davidon-Fetcher-Powell method to work out parameters.This pape
20、r tries to use anovel artification intelligence algorithm -ant colony algorithm, to replace the Newton -Raphson method andDavidon-Fetcher-Powell method. Finally, it is validated by an example, and compared with the results solved byNR method. It has been testified that it is feasible and reasonable
21、to take ant colony algorithm to calibrate logitmodel parameter.Key words: colony algorithm;logit model;parameter calibration上表可看出 ,在 t 检验和 20、2c检验上 ,两种算法的检验情况一致 ,即在 95%的置信度水平上 ,可得到未必所有参数均为零以及除固有哑元外所有参数也未必都为零的结论 。 的中率是表示观测的实际选择行为的结果与用模型预测的结果是否一致的指标 , 在这个指标上 , 两种算法运算结果一致 , 均为90.5%,通常的中率达到 80%时 ,就可认为模型
22、的精度相当高了 。 在优度 22 比 2和适合度指标 -2上 ,两种算法的精度均较高 , 且蚁群算法的值还要优于NR 算法的值 ,这也表示蚁群算法下的模型精度要高于 NR 算法下的模型精度 。以上结果显示 ,蚁群算法完全可以用于 Logit 模型的参数标定 , 且其某些评价指标在精度上还要优于传统算法 。4 结 语为了克服 Logit 模型的一些缺陷 , 人们又在原Logit 模型的基础上做了很多改进 (如 NestLogit 模型 ),改进后的 Logit 模型更为复杂 ,进行参数标定时仍采用极大似然估计法 , 但其对数似然函数为非凸函数 , 这时用对目标函数要求为凸函数的很多解析算法来说
23、, 求解较为困难 , 且由于目标函数过为复杂 ,求解时间也不是很理想 。 此时 ,利用蚁群算法具有的并行式计算和对目标函数无特殊要求等性能 ,可望为复杂 Logit 模型的参数标定提供有效的解决方法 。蚁群算法虽然具有很多优异的性能 , 但也具有搜索时间长 ,易陷入局部最优等特点 ,所以在实际应用中 ,应进一步加强对蚁群算法的改进研究 。参考文献 :1关宏志 .非集计模型 交通行为分析的工具 M.北京 :人民交通出版社 ,2004.2李辰 .交通方式划分的 LOGIT 模型方法 D.硕士论文2004.3段海滨 .蚁群算法原理及其应用 M.北京 :科学出版社 ,2005.4高尚 ,钟娟 ,莫述军 .连续优化问题的蚁群算法研究 J.微机发展 ,2003,13(1):2122.王 雷 高 扬 :蚁群算法在 Logit 模型参数标定中的应用19