Algorithm 近似样本的典型值

Algorithm 近似样本的典型值,algorithm,median,approximation,Algorithm,Median,Approximation,假设我有一个N个正实数的样本,我想找到这些数字的“典型”值。当然,“典型”的定义不是很明确,但我们可以想到以下更具体的问题: 这些数字的分布使得(粗略地说)其中的一部分(1-ε)是从正平均值m>0且均方偏差σ的高斯分布中得出的。您可以取除最小值和最大值之外的数字的平均值。公式为(和-最小值-最大值)/(N-2),分子中的项只需一次运算即可计算出来(不过要注意浮点问题)。我认为您应该重新考虑中值,或者使用quickselect,或者(正如库切在这里所实现的那样)。它既快又结实 如果你需要更好的速度

假设我有一个N个正实数的样本,我想找到这些数字的“典型”值。当然,“典型”的定义不是很明确,但我们可以想到以下更具体的问题:


这些数字的分布使得(粗略地说)其中的一部分(1-ε)是从正平均值m>0且均方偏差σ的高斯分布中得出的。您可以取除最小值和最大值之外的数字的平均值。公式为(和-最小值-最大值)/(N-2),分子中的项只需一次运算即可计算出来(不过要注意浮点问题)。

我认为您应该重新考虑中值,或者使用quickselect,或者(正如库切在这里所实现的那样)。它既快又结实


如果你需要更好的速度,你可以考虑选择固定数量的随机元素并取它们的中位数。这是次线性(O(1)或O(logn),取决于模型),适用于大型集合。

高斯分量与平均值对称。如果重尾分量也与相同的平均值对称,则它应影响方差,但不影响平均值或中位数,并且平均值和中位数应对称相等。在这种情况下,我建议使用好的旧X-bar。我考虑的是正数,所以我的重尾部分类似于P(X)=1/2x^{0.5}1(X>1)+1/2x^{-0.5}1(X做一个正态概率图,排除所有从尾部直线上掉下来的值怎么样?我不想对数组进行排序,否则我可以这样做并取中值。如果非高斯分量不是对称的,并且不共享相同的平均值,那么所有数据的中值不一定接近高斯平均值。谢谢,我确实考虑过这一点,但我不喜欢的是,对异常值的数量仍然很合理。我可以推广你的方法,删除一些精心选择的x(比如一些ε)的xN最小值和xN最大值。但之后,代码会变得更加复杂,效率会降低。然而,我意识到,我可能要求的太多了,也许你的建议是最好的。让我们看看其他建议!