我正在尝试从数据集中提取离群值并相应地对其进行标记。
样本数据
Doctor Name Hospital Assigned Region Claims Illness Claimed
1 Albert Some hospital Center R-1 20 Sepsis
2 Simon Another hospital Center R-2 21 Pneumonia
3 Alvin ... ... ... ...
4 Robert
5 Benedict
6 Cruz
因此,我试图将Doctor
中的每个Claimed
中的某个Illness
分组到某个Region
中,并尝试在其中找到异常值。
Doctor Name Hospital Assigned Region Claims Illness Claimed is_outlier
1 Albert Some hospital Center R-1 20 Sepsis 1
2 Simon Another hospital Center R-2 21 Pneumonia 0
3 Alvin ... ... ... ...
4 Robert
5 Benedict
6 Cruz
我可以在Power BI中执行此操作。但是我似乎无法在R中做到这一点。我猜想其中涉及group_by()
的{{1}}函数。但是我不确定。
这是我要实现的目标:
算法如下:
dplyr
我之前已经做过,但是这段代码遍历每个疾病,并对每个疾病应用线性回归。这与我想要达到的目标接近吗?
Read data
Group data by Illness
Group by Region
get IQR based on Claims Count
if claims count > than (Q3 + 1.5) * IQR
then tag it as outlier = 1
else
not an outlier = 0
Export data
有什么想法吗?
答案 0 :(得分:1)
一种可能的解决方案是使用 group_by + boxplot_stats 。第一个将完成组的所有组合,第二个将返回离群值:
df.assign(city=[' '.join(s.split(', ', 1)[::-1]) for s in df['city']])
city
0 City of Bristol
1 City of Newcastle
2 London
我希望它能起作用。