问题标签 [iqr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2387 浏览

r - 使用 dplyr 对 R 中的所有列应用 iqr 过滤器

过滤其 IQR 之间的所有列的数据。尝试使用 filter_all(df_name,IQR(.)),返回相同的数据帧

0 投票
2 回答
26602 浏览

python-3.x - 如何使用 IQR 从 DataFrame 中删除异常值?

我有很多列的数据框(大约 100 个功能),我想应用四分位数方法并想从数据框中删除异常值。

我正在使用这个链接 stackOverflow

但问题是上述方法的 nan 工作正常,

正如我正在尝试这样

它给了我这个

我只是想知道,接下来我会做什么,以便删除数据框中的所有异常值。

如果我使用这个

我收到此错误

在这一行

0 投票
1 回答
3701 浏览

python - 从 pandas groupby 获取四分位距和中位数,所有未提及日期的零填充

我有一个类似的数据框(除了我的非常大):

...然后假设我得到以下 groupby 和聚合(by和user1):user2day

一天应该从 0 到 364(365 天)我想要的是每个用户所有天数的四分位间距(和中位数)——除了不计算零

如果我在所有排除的日子里都有明确的零,生活会更轻松:

...因为那时我可以这样做df.reset_index().agg({'quantity':scipy.stats.iqr}),但我正在使用一个非常大的数据框(上面的示例是一个虚拟数据框),并且用零重新索引是不可能的。

我有一个想法:因为我知道有 365 天,所以我应该用零填充其余数字:

并得到它的scipy.stats.iqr(和中位数)。但是,这将涉及迭代所有user1-user2对。根据经验,这需要很多时间。

对此有任何矢量化解决方案吗?我也必须得到中位数,我认为同样的方法应该成立。

0 投票
2 回答
387 浏览

r - 如何在R中使用基于键的IQR异常值函数

我想使用这个 IQR 功能:

在下面df,在total每个特定键的列上,基于key列:

0 投票
0 回答
101 浏览

oracle - 不同时间段的 Oracle 样本计数

这可能是一个非常基本的问题,所以提前道歉。我需要过去 3 个月、6 个月、1 年、2 年等的样本数量,这取决于我是否有足够的样本,(我试图通过追溯历史来收集足够数量的样本,所以当我收集够了,我会停下来)我会和他们一起做一些计算。首先,我选择过去 2 年可用的任何数据。然后我查看过去一年和过去 2 年有多少样本。假设我去年有 30 个样本就足够了,我会拿走它们。如果不是,我会延长到 2 年并尝试收集所有这些样本的值。

如何参考我在 TOTAL_N_IN_1_YEAR、TOTAL_N_IN_1_YEARS 中计算的这些值,并使用它们仅选择我需要的时期内的样本值?

我想实现这样的目标

现在我只需要最后 32 个样本的 s.value ......

比如说,如果 TOTAL_N_IN_1_YEAR > 30 那么我只想要过去 1 年的值,我将计算它们的平均值、中值、IQR 等。

如果 TOTAL_N_IN_1_YEAR > 30,则此方法现在有效,但例如对于 <30 无效。

非常感谢您的帮助:)

0 投票
1 回答
39 浏览

java - 随着深度的增加生成四分位数位置

我想以编程方式生成四分位数 (IQR) 位置,以便我可以将它们用作获取最小 - 最大范围内的值的基础,并增加粒度顺序。

我被困了一段时间。令人惊讶的是,当我在寻找想法时,我在 Stack Overflow 上一无所获。因此,我将发布我提出的解决方案,以便将来在他们需要时帮助他们。

0 投票
3 回答
237 浏览

python - 将 Pandas 函数同时应用于行和列以进行置信区间计算

我是 python 编程的新手。我正在尝试确定我的数据集中的异常值。我已将数据集转换为 pandas 数据框,然后应用 IQR 原理。之后,我想用零替换我的异常值,然后计算平均值和标准差作为异常值,因为偏离平均值和 SD。


数据集代码如下:


数据集片段:

如果 Store1,Store2,Store3 的值小于 Lower_limit(['Store1'] < ['Lower_limit']) 或大于 Upper_limit(['Store1'] > ['Upper_limit' ])。


以下是我的功能:


我这样应用它:


下面是错误的结果...


有没有办法可以修改我的原始代码来实现这一点?

0 投票
1 回答
65 浏览

r - 如何按 ID 对行进行分组并计算平均值和 IQR

我有一个长格式数据框 ,my data其中有 101 名参与者,每个参与者在 51 次试验 ( Event) 中获得分数,如下所示:

dput(head(mydata, 200))

我想计算51 次试验中Score每个试验的平均值和四分位距,此处标记为。然后我想删除参与者的观察结果,如果超过四分位数范围之外的±3。ParticipantEventScore

这样做最有效的方法是什么?

我已经研究了该cast函数,reshape2希望首先将数据帧转换为宽格式,但我没有成功。

我也研究过对行进行分组,Participant但还没有找到足够清晰的教程来指导我完成这个。

0 投票
0 回答
35 浏览

python - 如何在列中找到稳健的 sigma 值,然后找到上限和下限?

所以,我有看起来像这样的数据:

每个单元(UnitID)都有一个分数,属于一个批次(Batch ID)。本来这个表是没有“Median”列的,但是我df['Median'] = df.groupby('BatchID')['Score'].transform('median')以前自己创建的。

现在我想要一个名为“R-Sigma”的新列,在其中我将这个 Robust Sigma 公式应用于每个值:

我不知道如何使用 IQR 函数,这是我的第一个问题,以及如何将此计算应用于每个值。

最后,我想要另外两列,一列称为“上限”,一列称为“下限”,分别计算中位数 +/- 6 * Robust Sigma。

我怎么能这样做?我完全迷路了。

0 投票
0 回答
61 浏览

r - 箱线图:随着时间的推移恒定的 iqr

我的样本是一个面板数据集,由几个变量和几个时间段组成。我用 iqr 方法检测和处理异常值。也就是说,异常值是高于/低于第三个/第一个四分位数加/减 1.5 倍 iqr 的观察值。众所周知,这可以在箱线图中可视化。

出于概念原因,在检测和处理异常值时会考虑整个样本:变量的四分位数和 iqr 基于总时间序列。当使用简单的箱线图函数可视化异常值时,会绘制每个时期的四分位数和 iqr(见附图)。但是,我想创建一个正确说明我的异常值检测和处理方法的图。即,中值、盒子和须线应随时间保持不变。我不想将数据汇总到一个图中,因为不再可观察到异常值所属的年份。

在此处输入图像描述

我想我必须用 ggplot2 创建箱线图?