Maxdiff系列(六)MaxDiff的数据分析(用Excel进行logit分析).pdf
Maxdiff系列(六)MaxDiff的数据分析(用Excel进行logit分析)
最近10年来,Maxdiff在解决多个对象的偏好测量上被应用到越来越多的领域里,但是国内关于Maxdiff数据具体
应该如何分析的介绍很少。尽管本系列曾经就Maxdiff的分析做了一些简单的介绍(参见《Maxdiff系列(五)Maxdiff
的数据分析》),但主要是从频数分析角度出发简单介绍其分析思想。
目前Maxdiff的主流分析模型是逻辑模型(Logitmodel)的以及基于此模型的分层贝叶斯估算(HierarchicalBayesian
Estimation)方法。其中Logitmodel是核心模型。我们就先从Logitmodel的分析开始,看看它是如何用来估算Maxdiff
中各个对象的偏好效用值。至于分层贝叶斯算法,我们会在以后的系列文章中进行介绍。
为什么要使用logitmodel,这是因为Maxdiff记录的是消费者在面对不同对象集合时的选择(Choice)。从模型的角
度看,消费者的选择是因变量Y,他所面对的对象集合是自变量X。而消费者的选择(Y)是一个离散型变量(要么
选中,要么不选中),而非连续型数据(偏好打分)。这时,我们的因变量实际上具有一种概率意义,只不过我们收
集到的样本数据并不是如同概率那样可以在0-1的区间里任意取值,而是只能为0或1。
更准确地说,对于Maxdiff,我们通常采用的是条件逻辑模型(conditionallogitmodel)。之所以使用条件逻辑模型,
是因为MaxDiff本身的特性:通过观察消费者在给定不同备选对象时的权衡取舍(trade-off),进而估算对象之间的
相对偏好程度。
我们还是从一个简单的例子出发来看看具体应该怎样一步步的建模和分析。假设我们要评测8个对象,每个受访者
要做6道MaxDiff的题目(任务),每个题目中出现4个对象,每个任务里出现的对象如下图所示。
现在假设这个受访者在任务1的4个对象中最喜欢3号对象,最不喜欢8号对象。那么我们收集到的回答数据就是
这样。
如果我们把这个受访者在所有6个任务的回答都排列在一起,那么数据就是下面这种形式。
当然,上面这种数据还不能直接进行分析,必须进行进一步的编码。这里插一句,在数据分析中,编码(coding)
是相当重要的环节。大家通常对各种酷炫的统计和数学模型感兴趣,但是却往往忽视了编码的重要性,以至于真实
数据到手后不知道如何整理成软件或程序可以处理的样子。
条件逻辑模型的编码方式
针对Maxdiff数据,我们通常采用dummycoding的方式(详见《联合分析中不同的编码方式》),因为这种编码方式
最接近模型的原始含义,也最便于读者理解。
首先,我们需要记录受访者的编号ID,例如我们取第1个受访者的数据(ID=1),然后分别是任务(Task)、概念(Concept)、
对象(Item1-Item8)。
以这个受访者的任务1为例。其第1个概念(concept)中出现是8号对象,于是我们将其他7个对象编码为0,将8
编码为1:
我们可以依次将任务1中的4个概念均按照这种方式进行编码。那么我们得到的任务1的完整的自变量数据就是下
面的格式,可以看到,这种编码相当于把原始数据“竖”着摆放起来,并且把每个对象出现与否编码为若干个0-1
变量:
接下来,我们需要把因变量数据(response)也加上。考虑到这个受访者在第一个任务中最喜欢3号对象(Item3),因此,
我们在上面的数据中增加一列,如果受访者最喜欢第几个概念,那么在相对应行上就是1,否则就是0。
需要注意的是,MaxDiff不仅仅要受访者选择“最喜欢”的对象,还要选择“最不喜欢”的对象。这时的数据格式
如下,可以看到,这里只是简单地把自变量编码中的1变为-1,而因变量的编码格式不变。
我们把这两部分编码数据合并起来,就得到了第一个任务完整的数据:
通过这样的编码方式,我们看到在任务1中,最喜欢的对象3的回答被编码成了1,其余没被选中的都留作0,同
样地最不喜欢的对象8,在“最不喜欢”编码中被编码成了1,其余没被选中的都留作0。我们每个任务都被编码了
两次,用于分析的实际任务总数也就由6个变成了12个。
把所有任务按照以上编码方式编码,会得到下图的数据(这种编码也是大多数软件进行条件逻辑分析时可以直接调
用的数据格式):