在我的论文中,我试图识别数据集中的异常值。该数据集是从一个真实的过程环境中的一个变量的160000倍。然而,在这种环境中,可能存在不是来自过程本身的实际数据而只是垃圾数据的测量。我想用我很少的文献帮助来过滤它们,而不是只有“Maven意见”。
现在我已经读到了IQR方法,当处理像正态分布这样的对称分布时,它可以看到可能的离群值是否存在。然而,我的数据集是右偏的,通过分布拟合,反伽玛和对数正态分布是最好的拟合。
因此,在我搜索非对称分布的方法时,我在cross-validated上发现了这个主题,其中user 603的答案特别有趣:Is there a boxplot variant for Poisson distributed data?
在user 603的回答中,他指出调整后的箱线图有助于识别数据集中可能的异常值,R和Matlab都有相应的函数
(有一个𝚁R实现(𝚛𝚘𝚋𝚞𝚜𝚝𝚋𝚊𝚜𝚎::𝚊𝚍𝚓𝚋𝚘𝚡()robustbase::adjbox())以及matlab实现(在一个名为libra的库中𝚕𝚒𝚋𝚛𝚊)
我想知道Python中是否有这样的函数。或者有没有一种方法可以用python计算medcouple(见user 603的回答)?
我真的很想看看我的数据调整后的箱线图是什么。
2条答案
按热度按时间jjjwad0x1#
在模块statmodels.stats.stattools中有一个函数medcouple(),它是调整后箱线图中使用的偏度的度量。
enter link description here
使用此变量,您可以计算定义离群值的区间。
bvk5enib2#
下面是一个可能的解决方案,遵循Christophe's answer并解决@banderlog013的评论。
1.查找识别异常值和绘制箱线图所需的参数:
1.从dataframe列中选择离群值,并根据需要绘制调整后的箱线图: