如何检测两极分化的用户意见(高星级和低星级)

机器算法验证 方差 意思是 分散
2022-01-28 01:46:59

如果我有一个星级评分系统,用户可以在其中表达他们对产品或项目的偏好,我如何从统计上检测投票是否高度“分裂”。意思是,即使平均值是 5 分之 3,对于给定的产品,我如何仅使用数据(无图形方法)检测这是 1-5 拆分还是共识 3

4个回答

可以构建极化指数;究竟如何定义它取决于什么构成更加极化(即,您的意思是什么,在特定的边缘情况下,或多或少极化?):

例如,如果平均值为“4”,那么“3”和“5”之间的 50-50 分值是比 25% 的“1”和 75% 的“5”更多还是更少极化?

无论如何,在没有那种对你的意思的具体定义的情况下,我会建议一种基于方差的衡量标准:

给定一个特定的平均值,将最极化的可能拆分定义为使方差最大化的拆分*。

*(请注意,25% 的“1”和 75% 的“5”比“3”和“5”的 50-50 拆分明显极化;如果这不符合您的直觉,请不要使用方差)

所以这个极化指数是最大可能方差(与观察到的平均值)在观察到的方差中的比例。

调用平均评分 ( )。mm=x¯

当比例时,方差最大;这有 的方差。p=m1451p1(m1)(5m)nn1

所以只需取样本方差并除以 ; 这给出了一个介于(完全一致)和(完全极化)之间的数字。(m1)(5m)nn101

对于平均评分为 4 的许多情况,这将给出以下结果:

在此处输入图像描述


相反,您可能不希望对于具有相同均值的最大可能方差来计算它们,而是作为任何平均评分的最大可能方差的百分比来计算。这将涉及除以,并再次产生介于 0(完全一致)和(以 50-50 的比率在极端情况下极化)的值。这将产生与上图相同的相对性,但所有值将是 3/4 大(即,从左到右,从上到下,它们分别为 0、16.5%、25%、25%、50 % 和 75%)。4nn11

两者中的任何一个都是一个完全有效的选择 - 就像构建这样一个索引的任何其他数量的替代方法一样。

“没有图形方法”是一个很大的障碍,但是......这里有几个奇怪的想法。两者都将评级视为连续的,这是概念上的弱点,可能不是唯一的......

峰度

  • {1,1,1,5,5,5} = 1 的峰度。对于 1-5 评级的任何组合,您都不会得到较低的峰度。
  • {1,2,3,4,5} 的峰度 = 1.7。较低意味着更多的极端值;更高意味着更中间。
  • 如果分布不是大致对称的,这将不起作用。我将在下面演示。

负二项式回归

使用这样的数据框:拟合模型使用负二项式回归。如果评级是均匀分布系数应该接近于零,如果有更多的中间值(参见二项式分布),则为正值,或者在上述极化分布的情况下为负值,其中系数是-11.8。

RatingFrequency1312153749537
FrequencyRating+RatingRating

FWIW,这是我一直在玩的代码:

x=rbinom(99,4,c(.1,.9))+1;y=sample(0:4,99,replace=T)+1 #Some polarized & uniform rating data
table(x);table(y)                                                         #Frequencies
require(moments);kurtosis(x);kurtosis(y)                                  #Kurtosis

Y=data.frame(n=as.numeric(table(y)),rating=as.numeric(levels(factor(y)))) #Data frame setup
X=data.frame(n=as.numeric(table(x)),rating=as.numeric(levels(factor(x)))) #Data frame setup
require(MASS);summary(glm.nb(n~rating+sqrt(rating),X))  #Negative binomial of polarized data
summary(glm.nb(n~rating+sqrt(rating),Y))                #Negative binomial of uniform data

忍不住想插曲...

require(ggplot2);ggplot(X,aes(x=rating,y=n))+geom_point()+stat_smooth(formula=y~x+I(sqrt(x)),method='glm',family='poisson')

项确定回归线的曲率(在这种情况下为凹度)因为我已经在使用图形作弊了,所以我用泊松回归而不是负二项式来拟合它,因为它比正确的方式更容易编码。Rating



编辑:刚刚在侧边栏上看到了这个问题: 当我点击时,我在链接回自身的热门网络问题中看到它,有时会发生

所以我认为这可能值得以更普遍有用的方式重新审视。我决定在亚马逊客户评论中尝试我的方法山三狼月亮短袖 T 恤

Rating12345Frequency20854891982273
如您所见,这是一件非常棒的 T 恤。 乔治武井这样说。无论如何......
这个分布的峰度相当高(7.1),所以这种方法并不像看起来那么简单。
负二项式回归模型仍然有效!βRating=19.1

顺便说一句,@Duncan 的 ... @Glen_b 的极化指数= .33 ...只是说。σFrequencyThe Mountain Three Wolf Moon Short Sleeve Tee Ratings2=1.31
x=rep(5:1,c(2273,198,89,54,208))var(x)/(4*length(x)/(length(x)-1))

我认为一个简单的方法是计算方差。在这样一个简单的系统中,更高的方差意味着更多的 1s/5s。编辑快速示例:如果您的值为 1,3,3,5,您的方差将是:如果您的数字是 1,1,5,5,您的方差将为:

(13)2+(33)2+(33)2+(53)24=1
(13)2+(13)2+(53)2+(53)24=2

我怀疑我能否为已经给出的聪明答案添加一些有价值的东西。特别是,@Glen_b 的好主意是评估观察到的方差如何相对接近观察到的平均值下可能的最大方差。相反,我自己的直截了当的建议是关于某种稳健的分散测量,不是基于与某个中心的偏差,而是直接基于数据点之间的距离。

计算所有数据点之间的成对距离(绝对差)。丢弃个零距离。计算距离分布的集中趋势(选择权在您手中;例如,可能是均值、​​中位数或霍奇斯-莱曼中心)。dii

Rating scale                   Distances      Mean     Median    Hodges-Lehmann
1  2  3  4  5

Frequency distributions:

1     2     1                 0 2 2 2 2 4      2          2          2

2           2                 0 0 4 4 4 4      2.7        4          2

1        2  1                 0 1 1 3 3 4      2          2          2

1  1  1     1                 1 1 2 2 3 4      2.2        2          2

1  1     1  1                 1 1 2 3 3 4      2.3        2.5        2.5

1           3                 0 0 0 4 4 4      2          2          2

如您所见,作为“两极分化”的衡量标准,这 3 个统计数据可能非常不同(如果我要衡量“分歧”而不是两极对抗,我可能会选择 HL)。这是你的选择。一个概念:如果您计算平方距离,它们的平均值将与数据中的通常方差直接相关(因此您将得到@Duncan 的计算方差的建议)。计算距离也不会太难,因为评级量表是离散的并且等级相对较少,因此计算距离的频率加权算法自然提供了自己。N