前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一种基于小数据量做分析判断的方法

一种基于小数据量做分析判断的方法

原创
作者头像
ivanlwyan
修改2018-08-24 20:54:27
1.3K0
修改2018-08-24 20:54:27
举报
文章被收录于专栏:ivan空间

1, 问题引入

在进行业务开发时,可能经常需要根据累计的样本数据,进行判断;并根据判断的结果进行相关的处理。

考虑下面的例子:

用户A通过发送ping包到服务器B,来检测网络质量情况;比如:发送了N个包,丢了M个报;阀值为T(比如:10%);也就是:如果M/N > T,则认为用户A到服务器B的网络质量差。

上面的判断存在一个问题:如果样本量N比较小,我们的判断会不准确;随机噪声导致等偶然因素导致的丢包,会影响我们的判断。

比如N为5,网络质量并没有问题,但是因为偶然因素导致丢了一个包,我们计算出来的丢包率为1/5=20%,大于阈值10%,判断因为是网络质量有问题。

那如何解决小样本量问题呢?

下面介绍的方法是一种通用的解决小样本量的方法。只是为了方便阐述,以丢包率为例。

2,引入置信区间

首先我们考虑下面这样一个问题:

1)N为10,M为1,丢包率:M/N =10 %;

2)N为100,M为10,丢包率:M/N =10 %;

3)N为1000,M为100,丢包率:M/N =10 %;

上面三种情况,计算出来的丢包率都是10%;但是它们的可信度是一样的吗?那种最可信?

直觉告诉我们:它们的可信度是不一样的,样本量越多的情况越可信。

那可信度跟样本量具体是一个什么样的关系呢?是不是有公式可以计算可信度跟样本量之间的关系。

答案是有的。这是一个统计学的问题,置信度和置信区间可以很大的解决该问题。

什么是置信度和置信区间?

95 %[5%,50%]:可以理解为我们有95%的信心(Confidence)可以说根据样本量计算出来的丢包率介于5%到50%之间;

这里95%就是置信度;[5%,5%]就是置信区间;

很显然置信度越大,置信区间就越宽;比如如果:95%置信度的置信区间为:[5%,50%];99%置信度的置信区间可能就是[2%,70%];

3,如何计算丢包率的置信区间

1)对于每一个样本量,只有两种结果:要么丢包要不不丢包;其实这就是一次伯努利试验;

2)N个样本量就是n次伯努利实验;而n次伯努利实验符合二项式分布;

3)当N比较大时,二项式分布趋近于正态分布:

对于上面的正态分布,68%、95%和99%就是置信度,表示该区域的面积占比;

置信区间就是对应置信度下面的上下边界值;

4)正太分布下的置信区间适用于样本量N比较大的情况;如果N不是很大,有没有针对正太分布置信区间的优化方法呢?

答案是:有;威尔逊置信区间就是为了解决该问题的。

5)威尔逊置信区间计算方法:

w-表示置信区间下限;

w+表示置信区间上限;

n为样本量

p表示最大似然估计;也就是M/N

z跟置信度有关,一个置信度对于一个具体的值;比如:置信度为95%,z的值就是1.96;

4,如何使用置信区间

1)使用置信区间的下限判断网络质量差

先根据上面的公式计算出来置信度为95%的置信区间[a,b];a为置信区间下限,b为置信区间上限;

如果a > T ,则认为网络质量比较差;

这样判断,根据前面的分析,我们至少有大于95%的概率确定丢包率确实大于阀值;所以说我们的判定有95%以上的准确性。

说明:T为丢包率阀值,人为设定;

2)使用置信区间的上限判断网络质量恢复

先根据上面的公式计算出来置信度为95%的置信区间[a,b];a为置信区间下限,b为置信区间上限;

如果b < T ,则认为网络质量不差;

这样判断,根据前面的分析,我们至少有大于95%的概率确定丢包率确实小于阀值;所以说我们的判定有95%以上的准确性。

说明:T为丢包率阀值,人为设定;

3)如果 T处于a,b之间怎么办?(a < T <b)

这种情况下,我们不能准确判定网络质量情况是差的还是不差。我们是模糊不定的。怎么办呢?

出现这种情况的根本原因是:样本量N比较小,导致置信区间的范围比较大;从而使得T落在置信区间的上下限之间;

解决办法:通过不断加大统计时间范围,从而加大样本量;减少置信区间;直到可以进行准确判断。

比如:过去1分钟的样本量不能准确判断,那我就使用过去2分钟的样本量;2分钟不足,我就使用3分钟的样本量。。。以此类推。

通过上面3种方式进行判断,我们就可以保证我们做的判断是准确有效的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档