如何识别样本中的 n-sigma 事件?
How do I identify an n-sigma event in a sample?
这个问题与数学问题接壤,但我在这里问它的原因是因为我想要一个使用 boost 的解决方案。如果您认为这更适合 SE 数学,请告诉我。
我有一组任意算法的 错误值 样本;
std::vector<double> errors {/* some values */};
假设 errors
中的值呈正态分布,我需要一个算法来告诉我浮点值 低于 ,任何数字至少构成一个 n
-西格玛事件。使用 68–95–99.7 rule,如果 n
是 2 那么我想知道低于该数字的数字最多有 5% 的可能性存在于数据集中。
double getSigmaEventValue(const std::vector<double>& container, int n);
现在,我怀疑这个问题已经在 boost accumulator library 中为我解决了,但我缺乏数学知识来弄清楚我正在寻找什么。
我知道我可以使用 boost::accumulators::variance
获得方差,但我不知道我可以使用任何魔法将方差转换为 n-sigma 值,所以这可能不是最好的方法.我对使用 boost 很感兴趣,因为我已经对该数据集执行了一组时间关键的统计数据(中值、均值、方差、最小值和最大值),因此很可能至少为此所需的一些计算已经被缓存.
如果您的数据呈正态分布,则计算样本均值和样本方差。这定义了您的拟合分布。然后计算该分布的分位数。例如,这个问题从 Boost 的角度涵盖了该主题:Quantile functions in boost (C++)
当然,如果您的数据不是正态分布的,而且您显然没有理由相信它是正态分布的,那么您提出的任何计算都将毫无意义。
这个问题与数学问题接壤,但我在这里问它的原因是因为我想要一个使用 boost 的解决方案。如果您认为这更适合 SE 数学,请告诉我。
我有一组任意算法的 错误值 样本;
std::vector<double> errors {/* some values */};
假设 errors
中的值呈正态分布,我需要一个算法来告诉我浮点值 低于 ,任何数字至少构成一个 n
-西格玛事件。使用 68–95–99.7 rule,如果 n
是 2 那么我想知道低于该数字的数字最多有 5% 的可能性存在于数据集中。
double getSigmaEventValue(const std::vector<double>& container, int n);
现在,我怀疑这个问题已经在 boost accumulator library 中为我解决了,但我缺乏数学知识来弄清楚我正在寻找什么。
我知道我可以使用 boost::accumulators::variance
获得方差,但我不知道我可以使用任何魔法将方差转换为 n-sigma 值,所以这可能不是最好的方法.我对使用 boost 很感兴趣,因为我已经对该数据集执行了一组时间关键的统计数据(中值、均值、方差、最小值和最大值),因此很可能至少为此所需的一些计算已经被缓存.
如果您的数据呈正态分布,则计算样本均值和样本方差。这定义了您的拟合分布。然后计算该分布的分位数。例如,这个问题从 Boost 的角度涵盖了该主题:Quantile functions in boost (C++)
当然,如果您的数据不是正态分布的,而且您显然没有理由相信它是正态分布的,那么您提出的任何计算都将毫无意义。