python - 我如何将切比雪夫不等式应用于这种情况?

标签 python normal-distribution standard-deviation

我有一个包含高度的数据框。数据不能低于零。这就是为什么我不能使用标准偏差,因为该数据不是正态分布。我不能在这里使用 68-95-99.7 规则,因为它在我的案例中失败了。这是我的数据框,均值和标准差。

0.77132064
0.02075195
0.63364823
0.74880388
0.49850701
0.22479665
0.19806286
0.76053071
0.16911084
0.08833981

Mean: 0.41138725956196015
Std: 0.2860541519582141

如果我得到 2 个 std,如您所见,数字变为负数。

-2 x std calculation = 0.41138725956196015 - 0.2860541519582141 x 2 = -0,160721044354468

我已经尝试使用 percentile 并且老实说我并不满意。我如何将切比雪夫不等式应用于这个问题?这是我到目前为止所做的:

np.polynomial.Chebyshev(df['Heights'])

但这返回的数字不是我可以测量的 SD 级别。还是您认为切比雪夫是我的最佳选择?

预期的解决方案:

I am expecting to get a range like 75% next height will be between 0.40 - 0.43 etc.

EDIT1:添加直方图

为了更清楚,我添加了真实数据的直方图

enter image description here

EDIT2:来自真实数据的一些值

Mean: 0.007041500928135767
Percentile 50: 0.0052000000000000934
Percentile 90: 0.015500000000000047
Std: 0.0063790857035425025
Var: 4.06873389299246e-05

非常感谢

最佳答案

您似乎混淆了同一位数学家的两个想法,Chebyshev .这些想法相同。

Chebysev's inequality陈述了一个对许多概率分布都成立的事实。对于两个标准差,它表示四分之三的数据项将位于距均值两个标准差的范围内。正如您所说,对于正态分布,大约 19/20 的项目将位于该区间内,但切比雪夫不等式是几乎所有分布都满足的绝对界限。您的数据值永远不会为负这一事实不会改变不平等的真相;它只是使区间中值的实际比例更大,因此不等式更真实(某种意义上)。

Chebyshev polynomials不涉及统计,而只是一系列(或两个系列)多项式,通常用于计算计算机函数的近似值。那就是np.polynomial.Chebyshev涉及,因此对您来说似乎根本没有用。

所以自己计算切比雪夫不等式。不需要为此使用特殊函数,因为它非常简单(这是 Python 3 代码):

def Chebyshev_inequality(num_std_deviations):
    return 1 - 1 / num_std_deviations**2

您可以更改它以处理 k <= 1 的情况但这个想法很明显。

在您的特定情况下:不等式表示至少 3/4 或 75% 的数据项将位于均值的 2 个标准差范围内,这意味着超过 0.41138725956196015 - 2 * 0.2860541519582141。小于 0.41138725956196015 + 2 * 0.2860541519582141 (注意不同的符号),简化为区间

[-0.16072104435446805, 0.9834955634783884]

在您的数据中,100% 的数据值都在该区间内,因此切比雪夫不等式是正确的(当然)。

现在,如果您的目标是预测估计某个百分位数所在的位置,切比雪夫不等式就没有多大帮助。它是一个绝对下限,因此它为百分位数提供了一个限制。例如,根据我们上面所做的,我们知道第 12.5 个百分位数等于或高于 -0.16072104435446805。并且第 87.5 个百分位数等于或低于 0.9834955634783884 .这些事实是真实的,但可能不是您想要的。如果您想要一个更接近实际百分位数的估计,这不是可行的方法。 68-95-99.7 规则是一个估计值——实际位置可能更高或更低,但如果分布是正态分布,则估计值不会太远。切比雪夫不等式不做那种估计。

如果您想估计第 12.5 和第 87.5 个百分位数(显示 75% 的人口将下降的位置),您应该计算样本的这些百分位数并使用这些值。如果您不了解有关您所拥有的发行类型的更多详细信息,我认为没有更好的方法。正态分布如此受欢迎是有原因的!

关于python - 我如何将切比雪夫不等式应用于这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51350025/

相关文章:

python - Opencv网络摄像头脚本不断地打开和关闭网络摄像头

r - 如何识别 QQplot 中的数据点

python - 在Python中创建正态分布

excel - 条件标准差?带有 IF 的 STD.S 不起作用;在相同条件下使用 AVERAGEIFS 后尝试应用于数据

error-handling - 如何计算归一化均方误差 (NMSE) 以及为什么要使用它?

python - 创建没有分区的表

python - Pygame:如何根据输入顺时针/逆时针旋转矩形

python - Python如何处理检查 'if object in list'

r - 多次使用 set.seed 的奇怪行为

r - 将数字向量转换为标准单位向量的函数