如何找到评级的置信区间?

机器算法验证 置信区间 估计
2022-02-02 22:02:26

Evan Miller 的“如何不按平均评分排序”建议使用置信区间的下限来获得评分项目的合理总“分数”。但是,它使用的是伯努利模型:评级要么是竖起大拇指,要么是竖起大拇指。

用于分配离散分数的评级模型的合理置信区间是多少1k星星,假设一个项目的评分数量可能很小?

我想我可以看到如何将 Wilson 和 Agresti-Coull 间隔的中心调整为

p~=i=1nxi+zα/22p0n+zα/22

在哪里p0=k+12或者(可能更好)这是所有项目的平均评分。但是,我不确定如何调整间隔的宽度。我的(修改后的)最好的猜测是

p~±zα/2n~i=1n(xip~)2+zα/2(p0p~)2n~

n~=n+zα/22,但我只能用手挥动它作为 Agresti-Coull 的类比,认为这是合理的

Estimate(X¯)±zα/2n~Estimate(Var(X))

是否有适用的标准置信区间?(请注意,我没有订阅任何期刊或轻松访问大学图书馆;一定要提供适当的参考,但请补充实际结果!)

3个回答

就像 Karl Broman 在他的回答中所说,贝叶斯方法可能比使用置信区间要好得多。

置信区间的问题

为什么使用置信区间可能效果不佳?一个原因是,如果您对某个项目没有太多评分,那么您的置信区间将会非常宽,因此置信区间的下限会很小。因此,没有太多评分的项目最终会排在列表的底部。

然而,直观地说,您可能希望没有太多评分的项目接近平均项目,因此您希望将项目的估计评分调整为所有项目的平均评分(即,您希望将估计评分推向先前的评分) . 这正是贝叶斯方法所做的。

贝叶斯方法 I:评级的正态分布

一种将估计评级移向先验的方法是,如 Karl 的回答,使用形式的估计wR+(1w)C

  • R是项目评分的平均值。
  • C是所有项目的平均值(或您想要缩小评级的任何先前值)。
  • 请注意,该公式只是一个加权组合RC.
  • w=vv+m是分配给的权重R, 在哪里v是啤酒的评论数量,并且m是某种恒定的“阈值”参数。
  • 请注意,当v非常大,即当我们对当前项目有很多评分时,那么w非常接近 1,所以我们的估计评分非常接近R而我们很少注意之前的C. 什么时候v虽小,但w非常接近于 0,因此估计的评分非常重视先验C.

事实上,当个别评分来自以该平均值为中心的正态分布时,该估计值可以被给予贝叶斯解释,作为项目平均评分的后验估计。

但是,假设评级来自正态分布有两个问题:

  • 正态分布是连续的,但评级是离散的。
  • 项目的评级不一定遵循单峰高斯形状。例如,也许您的商品非常两极分化,因此人们倾向于给它一个非常高的评价或给它一个非常低的评价。

贝叶斯方法 II:评级的多项式分布

因此,让我们假设一个多项分布,而不是假设收视率的正态分布。也就是说,给定一些特定的项目,有一个概率p1一个随机用户会给它 1 星,一个概率p2随机用户会给它 2 星,依此类推。

当然,我们不知道这些概率是多少。随着我们对这个项目的评价越来越多,我们可以猜到p1接近n1n, 在哪里n1是给它 1 星的用户数量和n是对该项目进行评分的用户总数,但是当我们刚开始时,我们什么都没有。所以我们先放置一个狄利克雷 Dir(α1,,αk)在这些概率上。

这个狄利克雷先验是什么?我们可以想到每一个αi参数作为某个虚拟人给予物品的次数的“虚拟计数”i星星。例如,如果α1=2,α2=1, 和所有其他αi等于0,那么我们可以认为这是说两个虚拟人给了物品1星,一个虚拟人给了物品2星。因此,在我们获得任何实际用户之前,我们可以使用这个虚拟分布来提供对项目评级的估计。

[一种选择方法αi参数将设置αi等于总票数的比例i星星。(请注意,αi参数不一定是整数。)]

然后,一旦实际评级进入,只需将它们的计数添加到 Dirichlet 之前的虚拟计数中。每当您想要估计您的项目的评级时,只需对所有项目的评级(其虚拟评级和实际评级)取平均值。

这种情况迫切需要贝叶斯方法。有简单的贝叶斯评级排名方法here(特别注意评论,这很有趣)和here,然后进一步评论这些here正如第一个链接中的一条评论指出的那样:

The Best of BeerAdvocate (BA) ... 使用贝叶斯估计:

加权排名 (WR) = (v / (v+m)) × R + (m / (v+m)) × C

其中:
R = 啤酒的评论平均值
v = 啤酒的评论数
m = 需要列出的最低评论数(当前为 10)
C = 整个列表的平均值(当前为 2.5)

该问题引用了 Evan Miller 的文章“如何不按平均评分排序”。米勒还发表了一篇文章“使用星级对项目进行排名”,解决了这个确切的问题。

假设您有 𝐾 可能的评分,由 𝑘 索引,每个评分都值得 𝑠𝑘 分。对于“星级”评级系统,𝑠𝑘=𝑘。(即,1 分,2 分,...。)假设给定项目已收到 𝑁 总评分,𝑛𝑘 评分为 𝑘。然后可以使用标准对项目进行有效排序:

S(n1,,nk)=k=1Ksknk+1N+Kzα/2((k=1Ksk2nk+1N+K)(k=1Ksknk+1N+K)2)/(N+K+1)

其中𝑧𝛼/2 是正态分布的 1−𝛼/2 分位数。上述表达式是平均评级的贝叶斯可信区间的正态近似下限。设置 𝛼=0.10 (𝑧=1.65),𝑋 的排序标准意味着 95% 的时间,项目的平均评分大于𝑋,至少根据信念结构。

米勒的方法不需要列出最少数量的评论,这很好。