c – 计算一组数字的均值而忽略异常值

前端之家收集整理的这篇文章主要介绍了c – 计算一组数字的均值而忽略异常值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,这是一个数学问题,而不是编码问题,所以请耐心等待.
我试图找出一种算法来计算一组数字的均值.但是,我需要忽略任何与大多数结果不相近的数字.这是我想要做的一个例子:

假设我有一组类似于以下的数字:

{ 90,91,92,95,2,3,99,300,400 }

很明显,对于上面的集合,大多数数字介于90和99之间,但是我有一些异常值,如{300,400,3}.我需要计算这些数字的平均值而忽略异常值.我确实记得在统计课上读过类似的东西,但我不记得它是什么或如何处理解决方案.

将不胜感激任何帮助..

谢谢

解决方法

你能做的是:

>估算数据中异常值的百分比:约为提供数据集的25%(4/15),
>计算足够的分位数:数据集的8分位数,以排除异常值,
>估计第一个和最后一个分位数之间的平均值.

PS:构成数据集25%的异常值很多!

PPS:对于第二步,我们假设异常值是“对称分布的”.请参见下图,我们使用4分位数和Q1和Q3的四分位数范围(IQR)的1.5倍:

猜你在找的C&C++相关文章