首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TI-nspire在python计算中Q1和Q3的不同取值

TI-nspire在python计算中Q1和Q3的不同取值
EN

Stack Overflow用户
提问于 2020-01-28 20:35:22
回答 2查看 369关注 0票数 1

我使用Numpy/Pandas和TI-nspire计算了上四分位数(Q3或75%瓦片)和下四分位数(Q1或25%瓦片)。但是我得到了不同的值。这一切为什么要发生?

来自(5+8)/2=6.5和(18+21)/2=19.5的Numpy/Pandas Q1和Q3是错误的。为什么Numpy/Pandas返回错误的数字?

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2020-01-29 05:19:49

这个post和这个post帮助我理解了它。

因此,如果你有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的中点。

代码语言:javascript
复制
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。

票数 1
EN

Stack Overflow用户

发布于 2020-01-29 08:02:37

你会受到款待的。他们都是对的。

与大多数其他描述符不同,Q1和Q3有几种不同的定义。对于具有大量观察值的数据集,不同的定义将给出或多或少相同的结果。对于较小的数据集,您将看到差异-正如您所经历的那样。

Mathword列表5(5!)计算四分位数的不同方法。请参阅http://mathworld.wolfram.com/Quartile.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59948919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档