Python中的数据拟合然后计算小于给定元素份额的值

Python中的数据拟合然后计算小于给定元素份额的值,python,statistics,distribution,Python,Statistics,Distribution,首先,让我说,我对python世界的熟悉程度和对统计的熟悉程度一样。所以,如果我的问题看起来很琐碎甚至不准确,我会提前道歉。 我会尽我所能正确地表达自己 我有一个连续变量的经验数据集。 我找到了一段方便的代码(由@tmthydvnprt编写),该代码适合我的数据集,具有不同的分布类型,并返回最佳的(分布直方图和数据直方图之间的最小平方误差之和) 现在,我需要计算小于60%数据元素的值。换句话说,如果我有一个数据集向量: DataSet = [1, 2, 3, 4, 5, 6, 7, 8, 9,

首先,让我说,我对python世界的熟悉程度和对统计的熟悉程度一样。所以,如果我的问题看起来很琐碎甚至不准确,我会提前道歉。 我会尽我所能正确地表达自己

我有一个连续变量的经验数据集。 我找到了一段方便的代码(由@tmthydvnprt编写),该代码适合我的数据集,具有不同的分布类型,并返回最佳的(分布直方图和数据直方图之间的最小平方误差之和)

现在,我需要计算小于60%数据元素的值。换句话说,如果我有一个数据集向量:

DataSet = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我想回答这个问题:
值是多少,其中60%的元素相等或更大

value = 5 as there are 6/10 values that are equal or greater than 5.

由于代码返回的分布函数可能不是正态分布,我想标准偏差和平均值的定义在这里并不适用。那么,我如何处理“随机”概率分布函数来找到我要寻找的值呢?我应该以某种方式将其标准化还是使用中值和四分位数?或者…?

听起来你只是在计算百分位数,但有点扭曲。百分位数提供了X%的人口低于该值的临界值。因此,如果您想找出小于人口X%的值,只需找到(100%-X%)百分位。在您的例子中,您正在查找40%的百分位数,插值设置为“更高”,这样您就不会得到两个数据点之间的值。但是,如果您想要精确的截止值,可以忽略该参数

我会用它来计算:

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
p = np.percentile(a, 40, interpolation="higher")
p_exact = np.percentile(a, 40)
print p  # prints out 5
print p_exact  # prints out 4.6

听起来你只是在计算百分位数,但有点扭曲。百分位数提供了X%的人口低于该值的临界值。因此,如果您想找出小于人口X%的值,只需找到(100%-X%)百分位。在您的例子中,您正在查找40%的百分位数,插值设置为“更高”,这样您就不会得到两个数据点之间的值。但是,如果您想要精确的截止值,可以忽略该参数

我会用它来计算:

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
p = np.percentile(a, 40, interpolation="higher")
p_exact = np.percentile(a, 40)
print p  # prints out 5
print p_exact  # prints out 4.6