【发布时间】:2015-06-02 03:25:51
【问题描述】:
我正在使用 Minitab 完成一项家庭作业,以查找数据集的四分位数和四分位数范围。当我尝试使用 NumPy 复制结果时,结果有所不同。做了一些谷歌搜索后,我发现计算四分位数有很多不同的算法:as listed here。我已经尝试了 NumPy 文档中列出的所有不同类型的插值用于百分位函数,但它们都不匹配 minitab 的算法。是否有任何惰性解决方案可以使用 NumPy 实现 minitab 算法,还是我只需要推出自己的代码并实现算法?
示例代码:
import pandas as pd
import numpy as np
terrestrial = Series([76.5,6.03,3.51,9.96,4.24,7.74,9.54,41.7,1.84,2.5,1.64])
aquatic = Series([.27,.61,.54,.14,.63,.23,.56,.48,.16,.18])
df = DataFrame({'terrestrial' : terrestrial, 'aquatic' : aquatic})
这是我在 NumPy 中使用的方法
q75,q25 = np.percentile(df.aquatic, [75,25], interpolation='linear')
iqr = q75 - q25
Minitab 的结果不同:
Descriptive Statistics: aquatic, terrestrial
Variable Q1 Q3 IQR
aquatic 0.1750 0.5725 0.3975
terrestrial 2.50 9.96 7.46
【问题讨论】:
-
你能提供示例输入/输出吗?
-
是否有任何文档解释 minitab 使用什么算法?特别是它如何处理
NaN?你的两列有不同的长度,所以aquatic在末尾用NaN填充。 -
问题中包含的链接有一个条目。另一篇文章证实了这一点:here
标签: python numpy statistics minitab