AHP层次分析法解决用户价值评估
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AHP层次分析法解决用户价值评估相关的知识,希望对你有一定的参考价值。
参考技术A@Author : Runsen
现在互联网都有得到用户,那用户到底有没有价值需要评估。
通过各种指标来给用户综合打分,每个用户最后会得到一个分值,分值越高,说明用户的价值越高。这是一个总的目标,一个用户可以创造的价值由两部分决定:创造价值的能力和创造价值的意愿,前者是能不能的问题、后者是愿不愿意的问题。定了两个主线以后再次进行目标拆解,根据业务经验分别找到那些能够判断用户创造价值的能力和意愿的指标,然后给不同的指标赋予不同的权重/分值,最后将各指标的权重/分值相加就是用户最后的总得分。
上面的这个过程有两个关键步骤,一个是 选择合适的指标 ,另一个是 给不同的指标赋予不同的权重 ,关于指标的选取,这个根据业务经验直接拍脑袋就可以,但是这个不同指标的权重问题,可能直接拍脑袋就不是太好了,当然了,也不是不可以。不过,做数据是一个严谨的工作(咳咳咳),还是希望能够找到一套理论来代替拍脑袋,所以就在网上找啊找,终于找到了今天的主角,就是AHP。
先来看看比较官方的解释:
是不是有点看不太明白,我来说几句大白话让你理解理解。让我们与前言里面的内容对应一下,AHP其实就是一种 把复杂问题 通过定性(人为去判断各指标之间的重要性)与定量(再通过计算判断矩阵求出各指标权重)的方法进行 拆解成若干个小问题以及小指标的问题,并能够计算出各个小问题以及小指标对整个大目标的影响程度。
知道了AHP是什么以后,我们来具体看看AHP的一个具体流程。
就是首先你要确定你要解决什么问题,我们这里就是要构建用户价值模型,希望通过这个模型看出每个用户的一个价值,然后依据价值不同给与不同的运营策略。
将搭建用户价值模型这个总目标拆解成用户购买忠诚度以及用户消费能力两部分,然后再对这两部分进行指标拆解,就是上面图表中看到的各指标。
所谓的判断矩阵就是将任意两指标进行对比得出一个重要性结果,然后将这个结果以矩阵的形式进行呈现,其中重要程度差别等级如下:
数值越大,表示前者比后者越重要;指标A和指标B判断结果与指标B与指标A和指标B判断结果互为倒数,即当指标A比指标B的重要程度是3的时候,那么指标B比指标A的重要程度就是3的倒数,即1/3。
不知道你有没有注意到,其实上面的这种方法也有一定的主观判断(拍脑袋),比如两指标之间的稍微重要,明显重要,极其重要也是需要你人为去指定的,你可能会疑问,既然都是拍脑袋,那还要这个干啥,直接拍脑袋不久得了,还搞这么复杂干嘛,哈哈哈,关于好处接下来会讲到。
判断矩阵A构造出来了,我们就可以开始计算各指标对目标问题的影响程度(即各指标的权重值)。
一个例子如下图所示
注意:这里的归一化只是把每一列的值的和当作1,然后计算每一个值在1中的占比。
上述步骤中归一化后得到的矩阵w就是各个指标的权重情况,这个权重是根据我们主观上构造的判断矩阵的出来的,但是这个权重是否准确,还是有待确定的,为什么要去确定呢,因为判断矩阵很有可能得出的相互矛盾的结论,比如 说A指标重要性大于B指标,B指标重要性大于C指标,但是A指标重要性又小于C指标重要性,这种互相矛盾的结论。 AHP就可以避免这种矛盾的发生。这里需要引入AHP中的另一个概念一致性检验,用来判断矩阵是否一致。
如果一致性比率符合使用条件,则可以直接使用计算出的各指标的权重值,如果不符合,则需要重新构造判断矩阵。
就是对单一层次计算权重情况,比如用户价值模型总目标的下一层就是用户忠诚程度和用户消费能力的权重情况。 用户忠诚程度:用户消费能力=0.67:0.33 。而用户忠诚程度和用户消费能力的下一层就是各个更加细致的指标。
层次总排序就是将各个层次的权重值相乘,最后就得到了各个指标的权重情况,就是层次总排序。
还是以前面说到用户价值模型为例,走一遍完整的流程。这里我们计算用户忠诚度的AHP,因为只有三个指标及以上才会出现那种互相矛盾的情况,两个指标是不会出现的,两个指标的话直接人为指定权重占比就可以。
将判断矩阵的每一列进行归一化得出下方的矩阵:
对归一化后的矩阵的每一行进行求和运算:
将上述求和的得到的矩阵再次进行归一化得到矩阵w:
该矩阵就表示了各指标的权重情况,最近购买间隔占比占比为0.11,购买频率占比0.64,购买商品种类占比0.24。
计算最大特征根:
在计算最大特征根我们需要先计算Aw值,Aw计算是将判断矩阵A与归一化得到的矩阵w相乘(公众号不支持公式,很烦),最后得到Aw值:
再进行计算最大特征根: 1/3*(0.33/0.11+1.98/0.67+0.66/0.22)=3
计算一致性指标CI: (3-3)/(3-1)=0
根据指标数量n选择指标RI:这里n=3,所以RI=0.58
计算一致性比率CR=CI/RI=0<0.1符合,所以用户忠诚度的各指标权重值w矩阵可用。
因为总目标只拆解成了两个小问题,所以这里直接人为指定权重即可(用户忠诚度:用户消费能力=0.67:0.33),不需要进行一致性检验。
用户忠诚度拆解的指标有三个,需要进行一致性检验,且经过检验后符合CR<0.1的条件,所以用户忠诚度指标中各指标权重为:最近购买间隔占比占比为0.11,购买频率占比0.64,购买商品种类占比0.24。
用户消费能力拆解的指标也只有两个,直接人为指定权重即可。
最后将各层次的权重相乘就是每个指标的权重占比。
最后将每个指标 缩小到0-10的范围 (不一定缩小到0-10,但是必须把每个指标缩小到相同大小范围内),然后乘各指标所占权重,最后相加,就是每个用户的总价值得分。
数学建模-层次分析法
层次分析法
介绍
评价类问题
分而治之的思想
填写判断矩阵
一致矩阵的例子
一致性检验的步骤
特征值法求权重
然后求出方案层对准则层的权重,汇总
2008年国赛实例
三种解法代码
%% 注意:在论文写作中,应该先对判断矩阵进行一致性检验,然后再计算权重,因为只有判断矩阵通过了一致性检验,其权重才是有意义的。 %% 在下面的代码中,我们先计算了权重,然后再进行了一致性检验,这是为了顺应计算过程,事实上在逻辑上是说不过去的。 %% 因此大家自己写论文中如果用到了层次分析法,一定要先对判断矩阵进行一致性检验。 %% 而且要说明的是,只有非一致矩阵的判断矩阵才需要进行一致性检验。 %% 如果你的判断矩阵本身就是一个一致矩阵,那么就没有必要进行一致性检验。 disp(‘请输入判断矩阵A‘) A=input(‘A=‘); [n,n] = size(A); % % % % % % % % % % % % %方法1: 算术平均法求权重% % % % % % % % % % % % % Sum_A = sum(A); SUM_A = repmat(Sum_A,n,1); Stand_A = A ./ SUM_A; disp(‘算术平均法求权重的结果为:‘); disp(sum(Stand_A,2)./n) % % % % % % % % % % % % %方法2: 几何平均法求权重% % % % % % % % % % % % % Prduct_A = prod(A,2); Prduct_n_A = Prduct_A .^ (1/n); disp(‘几何平均法求权重的结果为:‘); disp(Prduct_n_A ./ sum(Prduct_n_A)) % % % % % % % % % % % % %方法3: 特征值法求权重% % % % % % % % % % % % % [V,D] = eig(A); Max_eig = max(max(D)); [r,c]=find(D == Max_eig , 1); disp(‘特征值法求权重的结果为:‘); disp( V(:,c) ./ sum(V(:,c)) ) % % % % % % % % % % % % %下面是计算一致性比例CR的环节% % % % % % % % % % % % % CI = (Max_eig - n) / (n-1); RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %注意哦,这里的RI最多支持 n = 15 % 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数 CR=CI/RI(n); disp(‘一致性指标CI=‘);disp(CI); disp(‘一致性比例CR=‘);disp(CR); if CR<0.10 disp(‘因为CR<0.10,所以该判断矩阵A的一致性可以接受!‘); else disp(‘注意:CR >= 0.10,因此该判断矩阵A需要进行修改!‘); end % % 注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 % % 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭
以上是关于AHP层次分析法解决用户价值评估的主要内容,如果未能解决你的问题,请参考以下文章