【干货】MaxDiff系列(六)--通过Excel Solver来了解条件逻辑模型-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 考研考博>>

考研

>>

【干货】MaxDiff系列(六)--通过Excel Solver来了解条件逻辑模型

【干货】MaxDiff系列(六)--通过Excel Solver来了解条件逻辑模型

发布:liuchaos | 分类:考研

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

最近10年来,MaxDiff在解决多个对象的偏好测量上被应用到越来越多的领域里,但是国内关于MaxDiff数据具体应该如何分析的介绍很少。尽管本系列曾经就MaxDiff的分析做了一些简单的介绍,但主要是从频数分析角度出发简单 ...
扫码加入统计交流群


最近10年来,MaxDiff在解决多个对象的偏好测量上被应用到越来越多的领域里,但是国内关于MaxDiff数据具体应该如何分析的介绍很少。尽管本系列曾经就MaxDiff的分析做了一些简单的介绍,但主要是从频数分析角度出发简单介绍其分析思想。

目前MaxDiff的主流分析模型是逻辑模型(Logitmodel)的以及基于此模型的分层贝叶斯估算(HierarchicalBayesian Estimation)方法。其中逻辑模型是核心模型。我们就先从逻辑模型的分析开始,看看它是如何用来估算MaxDiff中各个对象的偏好效用值。至于分层贝叶斯算法,我们会在以后的系列文章中进行介绍。

为什么要使用逻辑模型,这是因为MaxDiff记录的是消费者在面对不同对象集合时的选择(Choice)。从模型的角度看,消费者的选择是因变量Y,他所面对的对象集合是自变量X。而消费者的选择(Y)是一个离散型变量(要么选中,要么不选中),而非连续型数据(偏好打分)。

更准确地说,对于MaxDiff,我们通常采用的是条件逻辑模型(conditionallogit model)。之所以使用条件逻辑模型,是因为MaxDiff本身的特性:通过观察消费者在给定不同备选对象时的权衡取舍,进而估算对象之间的相对偏好程度。


我们从一个简单的例子出发来看看具体应该怎样一步步的建模和分析。

假设我们要评测8个对象,每个受访者要做6道MaxDiff的题目(任务),每个题目中出现4个对象,每个任务里出现的对象如下图所示。

现在假设这个受访者在任务1的4个对象中最喜欢3号对象,最不喜欢8号对象。那么我们收集到的回答数据就是这样。



如果我们把这个受访者在所有6个任务的回答都排列在一起,那么数据就是下面这种形式。


当然,上面这种数据还不能直接进行分析,必须进行进一步的编码。


条件逻辑模型的编码方式

针对MaxDiff数据,我们通常采用dummycoding的方式。

首先,我们需要记录受访者的编号ID,例如我们取第1个受访者的数据(ID=1),然后分别是任务(Task)、概念(Concept)、对象(Item1-Item8)。


以任务1为例。其第1个概念(concept)中出现是8号对象,于是我们将其他7个对象编码为0,将8编码为1:


我们可以依次将任务1中的4个概念均按照这种方式进行编码:


接下来,我们需要把因变量数据(response)也加上。考虑到这个受访者在第一个任务中最喜欢3号对象(Item3),那么在相对应行上就是1,其余就是0。


需要注意的是,MaxDiff不仅仅要受访者选择“最喜欢”的对象,还要选择“最不喜欢”的对象。我们可以简单地把自变量编码中的1变为-1,而因变量的编码格式不变。


我们把这两部分编码数据合并起来,就得到了第一个任务完整的数据:


通过这样的编码方式,我们每个任务都被编码了两次,用于分析的实际任务总数也就由6个变成了12个。

把所有任务按照以上编码方式编码,会得到下图的数据:


现在要将受访者对每个对象的偏好效用进行估计。

根据随机效用理论(Random utility theory),一般认为人们对不同对象的偏好存在一定的随机性,且这种随机扰动往往服从Gumbel distribution。由此我们可以推算出在面对多个对象时,人们选择第i个对象为“最喜欢”的期望概率为:

以上面的第1个任务为例,这里我们不妨猜测对象8、4、5、3的效用值分别为0、2、4、8。那么,对象3被选为“最喜欢”的概率为:

同理,我们可以依次计算这个任务中所有对象被选为“最喜欢”的概率,如下:


此外,我们还需要计算每个对象被选为“最不喜欢”的概率,此时的概率公式就相应变为

对象8被选为“最不喜欢”的概率就是:

我们把每个对象被选为“最不喜欢”的概率也依次计算出来。得到任务1的概率:


接下来我们需要将我们计算的概率和实际的选择进行对比,来衡量我们效用值的准确度。

一个最简单的对比原则是,如果根据某一组效用值计算出的“最喜欢”和“最不喜欢”的概率越接近实际选择,那么这组效用值越准确,因为它越能还原消费者的实际选择行为。这种“完美预测/拟合”如果反映在数据上,就应该是当这组效用值被代入上面的公式后,被选中的对象的概率接近于1。即下图的效果:


来看看我们刚才的猜测结果


我们发现这种猜测(对象8、4、5、3的效用值u分别为0、2、4、8)不够好,仍然有改善的空间。


当然,仅仅使得一个任务拟合得完美还不够,我们需要每个任务都拟合地很好。这时我们需要计算每个任务里被选为“最喜欢”和“最不喜欢”的对象的似然度,并且将其求和(或取几何平均),并且通过优化算法找到能使其最大的一组效用值。


回到我们的例子中,由于采用了dummy coding我们需要将对象的最后一列移除(或去除这8列中的任何一列),作为参照水平。然后将初始系数均设置为0(也可以随机设置成别的数值),如下图:


使用Excel进行估算

接下来我们用excel中的sumproduct函数,逐行将对象乘以系数,便可以得到一列每个概念的效用值(J列)。


Sumproduct函数是将两个数列中对应位置上的数字先依次相乘,然后再求总和的函数。这是因为我们的自变量已经转化为0-1格式的变量,如果把所有对象的效应值视为一个向量,那么自变量向量和效应值向量相乘就可以得到相对应的对象的效用值。

由于Maxdiff实际上是仅包含一个因子(属性)的离散选择模型,因此,每个对象的效用值(utility)等价于其自身的效应值(effect)。所以我们在谈到Maxdiff时,往往不加区分效用值(u)和效应值(β),因为这二者实际上是一回事。所以在很多参考书里,我们也通常看到这样描述每个对象被选中的概率


随后我们用Excel中的exp函数将每个效用值转化为偏好分数(K列)。最后由偏好分数计算其被选择概率(L列),如下图:


需要注意的是,在运用公式计算每个任务中对象被选择概率的时候,其分母是相对应的每个任务的偏好分数之和。


由于已经将效用值的初始值都设置为0,此时每个任务中的对象被选择的概率都是1/4,这时可以视为受访者对任何对象都没有相对的偏好,于是每个产品被选中的概率就是均等的。

M列是受访者在每个任务中所选择“最喜欢”和“最不喜欢”的对象的概率拟合值(似然度),我们希望在估算后,这一列的每个数值都能接近于1。M3中的RLH是几何平均似然度(Root Likelihood),RLH估算的是给定效用值下这位受访者实际选择数据拟合的平均准确率。

在N列中我们将M列的数都取了自然对数,其总和就是N3中的自然对数似然度(LogLikelihood);该参数往往是模型优化的目标,也就是该似然度越高则模型估算的越准确。从数学角度上说,无论取RLH还是Log likelihood作为优化的目标函数都是可以的,但是从优化算法角度看,对数似然度会对迭代过程更加敏感,能够更快地找到效用值的最优解。


以下是J:N列所对应的Excel函数。


接下来我们开始使用Solver(规划求解插件)进行求解。需要注意的是,这里我们对效用值系数的估算进行了某种约束,即限定估算出来的效用值系数最大不能超过100,全距(最大效用值减去最小效用值)也不能超过100。这一方面是为了避免Excel中Exp函数溢出导致的无法运算的情形,另一方面也是为了避免模型的过度拟合。因此,在Excel中做如下设置:在C3中计算最大系数,在F3中计算全距,并且在Solver中对这两个单元格都做出约束限定(小于等于100)


由于模型拟合的目标是让自然对数似然度最大化,所以N3是目标单元格,需要估算的是B2到H2中的系数。然后点击Solve(求解)。我们得到以下结果:

可以看到这个受访者最喜欢3号对象,其次是2号和7号对象;最不喜欢的是6号对象。

如果我们补上被视为参照水平的第8个对象的效用值0,那么ID=1的受访者的效用值就是


我们还发现估算的效用值已经能让模型在大多数任务上的预测准确,平均来说,我们的预测准确率接近80%(RLH=0.79)。


如果我们有很多个受访者,比如有500个受访者。而且每个人所对应的试验设计都足够好,每个对象的出现次数均衡。那么我们可以按照此方法计算每个受访者在每个对象上的效用值。进一步的,我们还可以计算这500个人在每个对象上的效用值的平均值(当然,这涉及到一些尺度调整工作),从而得到样本层面上每个对象的偏好效用值。


和mlogit作比较

我们之前提到过专业统计软件R中的mlogit拓展包,我们可以将同样的数据用R来估算一下并和Excel的结果进行比对。相应的R代码如下图所示,对R有经验的读者可以不妨动手试一下:


其中的原始数据choicedata.csv(部分)如下所示:


如果我们将mlogit计算得到的效用值粘贴回我们的Excel表格B2:H2,如下图:

可以看到,尽管Excel的solver插件与mlogit计算的效用值不尽相同,但是两种方法都能使得模型的拟合优度RLH达到0.79,自然对数似然度都等于-2.77,效果一样好。

我们计算下两种软件估算的效用值之间的相关系数,见下图


在这里Excel与mlogit计算得到的效用值差异不大,接近于一个线性变换。

当然,如果Maxdiff对应的对象更多,数据量更大时,我们还是建议使用专业的统计软件来建立模型并进行效用值的估算,其计算效率和准确性要优于Excel。


小结

本文通过一步步的Excel的操作,让大家看到针对Maxdiff数据的条件逻辑模型该如何建立,编码及求解。实际上通过本文的介绍,大家可以看到Maxdiff的逻辑模型并不复杂,通过一般的Excel都可以进行一定的运算求解。


另外,Maxdiff可以视为一种仅含一个因子(或属性)的联合分析,本文所介绍的编码(coding)和估算过程稍加推广,就可以运用到一般的离散选择模型(或基于选择的联合分析CBC)的条件逻辑模型求解。我们也会在今后的系列中继续介绍如何使用Excel对一般的离散选择模型进行分析。请大家继续关注。


「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-5091908-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。