机器学习之数据处理威尔逊置信区间

https://www.jianshu.com/p/e4bc17203f21icon-default.png?t=M666https://www.jianshu.com/p/e4bc17203f21

 

一、正态分布
标准正态分布
标准正态分布就是均值为0,标准差为1的分布,如下图

å¨è¿éæå¥å¾çæè¿°

一般正态分布
一般正态分布n,假设其均值是 μ,标准差为σ ,即服从 n~N(μ,σ)
经过变换可以转换成标准正态分布:另X = (N - μ)/ σ,则X就是服从标准的正态分布了X~N(0,1)
 

二、置信区间
上图中的面积就是标准正态分布的概率,而置信区间就是变量的区间估计,例如图中的-1到1就是一个置信区间:标准正态分布的变量X ,有68.27%的概率 X属于[-1,1]这个区间。
最常用的是95%的分布区间,就是[-1.96,1.96]这个区间。方便公式化,我们另区间为[-z,z],那么 -z<=X<=z。
进而可以推导一般正态分布的置信区间:

3 置信区间

用户投票问题

假设知乎里的两条回答,分别有3个赞成1个反对、30个赞成10个反对,两条回答的赞成率都是75%,哪个答案应该排在前面?

虽然赞成率都一样,但直觉告诉我们,30个赞的那条回答会更可信,毕竟样本更多会更有统计意义。

实际上这类小样本问题非常常见,例如电商搜索业务中,排名靠后的商品的点击率、转化率、作弊率等比率型指标,分子分母都很小时,得到的数据是不可信的。

以下中间章节需要一点统计学的知识,懒得看可直接跳到最后一节看结论。

置信区间

统计学中有个“置信区间”的概念,很多人对它有种似曾相识的感觉,但又说不上来它到底是个什么。首先它也是个随机变量,给定一组样本,它的置信区间是个固定值。设总体随机变量(区别于样本)的一个参数为Θ(例如均值、方差),我们根据给定样本估计出了一个参数Θ’,那么它的95%置信区间表示真实的Θ在这个区间的概率为95%。

The confidence level is the frequency (i.e., the proportion) of possible confidence intervals that contain the true value of their corresponding parameter.

——Wikipedia

直观来讲,同分布的两组样本,根据数量多的样本得到的95%置信区间要比样本数量小的一些。这表明样本越大,对于我们估计出来的参数值越自信。

定义:设 θ 是总体的一个未知参数,若存在随机区间[θ1,θ2],对于给定的0<α<1,若满足p{θ1≤θ≤θ2}=1−α,则称区间[θ1,θ2]是θ的置信水平(置信度)为1−α的置信区间。θ1和θ2分别称为置信下限置信上限。其中1−α为置信度,α为显著水平

中心极限定理告诉我们,当样本足够大时,任何分布都渐近于正态分布。因此我们一般都讲正态近似置信区间(Normal Approximation Interval)。其中的α意义如下图所示,是指标准正态分布密度曲线两侧阴影部分面积之和,置信度等于非阴影部分的面积。

然鹅,使用正态区间近似毕竟依赖于中心极限定理,只适用于样本较多的情况,对于小样本而言,它的误差比较大。

威尔逊置信区间

由于正态区间对于小样本并不可靠,因而,1927年,美国数学家 Edwin Bidwell Wilson提出了一个修正公式,被称为“威尔逊区间”,很好地解决了小样本的准确性问题。

在这里插入图片描述

在上面的公式中,^p表示样本的”赞成票比例”,n表示样本的大小,z表示对应某个置信水平的z统计量,这是一个常数,可以通过查前文表得到。一般情况下,在95%的置信水平下,z统计量的值为1.96。
威尔逊置信区间的均值为

在这里插入图片描述

下限为:

在这里插入图片描述

可以看到:当n的值足够大时,这个下限值会趋向^p。如果n非常小(投票人很少),这个下限值会大大小于p,实际上,起到了降低”赞成票比例”的作用,使得该项目的得分变小、排名下降。
根据离散型随机变量的均值和方差定义:
μ=E(X)=0*(1-p)+1*p=p
σ=D(X)=(0-E(X))2(1-p)+(1-E(X))2p=p2(1-p)+(1-p)2p=p2-p3+p3-2p2+p=p-p2=p(1-p)
因此上面的威尔逊区间公式可以写成:

在这里插入图片描述

就是对正态区间的均值和标准差进行了修正。
相关问题的思考:

1.这个修正公式是仅仅适用于伯努利分布(好差评),还是也适用于其他分布(如5星评价)?这个问题本人也没搞清,望高人指点。

2.商品点击率中,是否可以采用威尔逊进行修正?
 

其中p是伯努利实验的成功率,n是样本数量或实验次数,z就是“z分数”或“标准分数”,是和指定的置信度相关的一个常数。

置信度z分数
99%2.576
98%2.326
95%1.96
90%1.645

这里是指标准正态分布的满足置信度的区间端点值。

取置信度95%,对应的z为1.96。p值从0到1,n值从0到100。可见,当n较小时,会对最终的值做一个修正,在n较大时,函数值接近于p值。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
p=np.arange(0,1,0.01)
n=np.arange(1, 100, 1)
z=1.96
n,p=np.meshgrid(n,p)
y=(p+z**2/(2*n)-z*np.sqrt(p*(1-p)/n + z**2/(4*n**2)))/(1+z/n)
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(n,p,y,cmap='rainbow')
plt.show()

def wilson_score(pos, total, p_z=2.):
    """
    威尔逊得分计算函数
    参考:https://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval
    :param pos: 正例数
    :param total: 总数
    :param p_z: 正太分布的分位数
    :return: 威尔逊得分
    """
    pos_rat = pos * 1. / total * 1.  # 正例比率
    score = (pos_rat + (np.square(p_z) / (2. * total))
             - ((p_z / (2. * total)) * np.sqrt(4. * total * (1. - pos_rat) * pos_rat + np.square(p_z)))) / \
            (1. + np.square(p_z) / total)
    return score

相关参考:

http://typename.net/statistics/wilson-confidence-interval/

正态分布 置信区间 威尔逊置信区间(Wilson score interval)_我叫龙翔天翼的博客-CSDN博客_正态分布置信区间

tips:对于5星评价问题,可以参考 Ranking Items With Star Ratings: An Approximate Bayesian Approach – Evan Miller

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值