我使用Numpy/Pandas和TI-nspire计算了上四分位数(Q3或75%瓦片)和下四分位数(Q1或25%瓦片)。但是我得到了不同的值。这一切为什么要发生?
来自(5+8)/2=6.5和(18+21)/2=19.5的Numpy/Pandas Q1和Q3是错误的。为什么Numpy/Pandas返回错误的数字?
import numpy as np
data=np.array([2,4,5,8,10,11,12,14,17,18,21,22,25])
q75, q25 = np.percentile(data, [75 ,25])
print(q75,q25)
df=pd.DataFrame(data)
df.describe()Numpy返回18.0和8.0。熊猫的回报率分别为18.0和8.0。但TI-nspire的回报率为19.5和6.5。


发布于 2020-01-29 05:19:49
因此,如果你有7,15,36,39,40,41,那么7 -> 0%,15 -> 20%,36 -> 40%,39 -> 60%,40 -> 80%,41 -> 100%。
interpolation的默认值为线性。所以它使用i+ (j - i) *分数。您可以将插值设置为计算(i + j) / 2的中点。
import numpy as np
data=np.array([7,15,36,39,40,41])
linear = np.percentile(data, [25, 50, 75], interpolation='linear')
mid = np.percentile(data, [25, 50, 75], interpolation='midpoint')
low = np.percentile(data, [25, 50, 75], interpolation='lower')
high = np.percentile(data, [25, 50, 75], interpolation='higher')
nearest = np.percentile(data, [25, 50, 75], interpolation='nearest')
print(linear,mid,low,high,nearest)
print(15,37.5,40)输出:

所以我发现在Pandas/Numpy中找不到确切的Q1和Q3作为TI-nspire。
发布于 2020-01-29 08:02:37
你会受到款待的。他们都是对的。
与大多数其他描述符不同,Q1和Q3有几种不同的定义。对于具有大量观察值的数据集,不同的定义将给出或多或少相同的结果。对于较小的数据集,您将看到差异-正如您所经历的那样。
Mathword列表5(5!)计算四分位数的不同方法。请参阅http://mathworld.wolfram.com/Quartile.html
https://stackoverflow.com/questions/59948919
复制相似问题