京公网安备 11010802034615号
经营许可证编号:京B2-20210330
数据分析之_离群值(Outliers) BoxPlot_数据分析师
一:什么是Outliers
Outliers是统计学专业术语,是指相比一组数据中的其它数据的极限值
二:极限值意味什么
1. 决定哪些值是Outliers是一个主观行为,有一些基准数据来决定是否一个值是一个Outliers,这些基准是任意选择的,比如P<=0.5就是一个任意选择的基准
2. 一个基准是用BoxPlot来决定适度离群值(mild Outliers)和极限离群值(extreme Outliers),适度离群值是任何值1.5倍大于基于剩下所有的值的IQR,极限离群值是任何值3倍大于剩下所有的值的IQR,IQR(Interquartile Range)代表四分位数间距,是这些值中的50%中间值,分别是Q1-25%, Median-50%,Q3-75%, IQR=Q3-Q1
三:使用Box Plot来发现Outliers
一个典型的Box Plot是基于以下五个值计算而来的
a. 一组样本的最小值
b. 一组样本的最大值
c. 一组样本的中值
d. 下四分位数(Lower Quartile / Q1)
e. 上四分位数(Upper Quartile / Q3)
根据这五个值构建出来基本的Box Plot,某些图形软件还会显示平均值,IQR= Q3 – Q1
显然超出上下四分位数的值可以看做为Outliers。我们通过眼睛就可以很好的观察到这些Outliers值的点。
一个显示适度和极限Outliers值的Box plot显示如下:
四:示例说明及JfreeChart的实现
假设一组数据为:2,4,6,8,12,14,16,18,20,25,45
中值 Median = 14
Q1-下四分位数(11 * 0.25 = 3) = 7
Q3-上四分位数(11 * 0.75 = 9) =19
IQR(Q3 – Q1) = 12
1.5 * IQR = 18
最小值(6 – 1.5 * IQR)= 2
最大值(20 + 1.5 * IQR)= 25
很显然值45是一个适度Outliers
对比的一组数据为:2,4,6,8,12,14,16,18,20,25,26
从图上可以看出Series0的数据存在Outliers,一个红色三角形已经表明
同样Series1的数据是一组非常好的数据,没有Outliers.
下面是Java源代码:
package com.dataanalysis.plots; import java.awt.Font; import java.util.ArrayList; import java.util.List; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.BoxAndWhiskerToolTipGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.renderer.category.BoxAndWhiskerRenderer; import org.jfree.data.statistics.BoxAndWhiskerCategoryDataset; import org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class BoxAndWhiskerDemo extends ApplicationFrame { /** * */ private static final long serialVersionUID = -3205574763811416266L; /** * Creates a new demo. * * @param title the frame title. */ public BoxAndWhiskerDemo(final String title) { super(title); final BoxAndWhiskerCategoryDataset dataset = createSampleDataset(); final CategoryAxis xAxis = new CategoryAxis("Type"); final NumberAxis yAxis = new NumberAxis("Value"); yAxis.setAutoRangeIncludesZero(false); final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer(); renderer.setFillBox(false); renderer.setToolTipGenerator(new BoxAndWhiskerToolTipGenerator()); final CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); final JFreeChart chart = new JFreeChart( "Box-and-Whisker Demo", new Font("SansSerif", Font.BOLD, 14), plot, true ); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(450, 270)); setContentPane(chartPanel); } /** * Creates a sample dataset. * * @return A sample dataset. */ private BoxAndWhiskerCategoryDataset createSampleDataset() { final int seriesCount = 2; final int categoryCount = 4; double[] data = null; final DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); for (int i = 0; i < seriesCount; i++) { if(i == 0) { data = new double[]{2,4,6,8,12,14,16,18,20,25,45}; } else { data = new double[]{2,4,6,8,12,14,16,18,20,25,26}; } for (int j = 0; j < categoryCount; j++) { final List list = new ArrayList(); for (int k = 0; k < data.length; k++) { list.add(new Double(data[k])); } dataset.add(list, "Series " + i, " Type " + j); } } return dataset; } /** * For testing from the command line. * * @param args ignored. */ public static void main(final String[] args) { final BoxAndWhiskerDemo demo = new BoxAndWhiskerDemo("Box-and-Whisker Chart Demo"); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } }
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据工作的全流程中,数据清洗是最基础、最耗时,同时也是最关键的核心环节,无论后续是做常规数据分析、可视化报表,还是开展 ...
2026-03-20在大数据与数据驱动决策的当下,“数据分析”与“数据挖掘”是高频出现的两个核心概念,也是很多职场人、入门学习者容易混淆的术 ...
2026-03-20在CDA(Certified Data Analyst)数据分析师的全流程工作闭环中,统计制图是连接严谨统计分析与高效业务沟通的关键纽带,更是CDA ...
2026-03-20在MySQL数据库优化中,分区表是处理海量数据的核心手段——通过将大表按分区键(如时间、地域、ID范围)分割为多个独立的小分区 ...
2026-03-19在商业智能与数据可视化领域,同比、环比增长率是分析数据变化趋势的核心指标——同比(YoY)聚焦“长期趋势”,通过当前周期与 ...
2026-03-19在数据分析与建模领域,流传着一句行业共识:“数据决定上限,特征决定下限”。对CDA(Certified Data Analyst)数据分析师而言 ...
2026-03-19机器学习算法工程的核心价值,在于将理论算法转化为可落地、可复用、高可靠的工程化解决方案,解决实际业务中的痛点问题。不同于 ...
2026-03-18在动态系统状态估计与目标跟踪领域,高精度、高鲁棒性的状态感知是机器人导航、自动驾驶、工业控制、目标检测等场景的核心需求。 ...
2026-03-18“垃圾数据进,垃圾结果出”,这是数据分析领域的黄金法则,更是CDA(Certified Data Analyst)数据分析师日常工作中时刻恪守的 ...
2026-03-18在机器学习建模中,决策树模型因其结构直观、易于理解、无需复杂数据预处理等优势,成为分类与回归任务的首选工具之一。而变量重 ...
2026-03-17在数据分析中,卡方检验是一类基于卡方分布的假设检验方法,核心用于分析分类变量之间的关联关系或实际观测分布与理论期望分布的 ...
2026-03-17在数字化转型的浪潮中,企业积累的数据日益庞大且分散——用户数据散落在注册系统、APP日志、客服记录中,订单数据分散在交易平 ...
2026-03-17在数字化时代,数据分析已成为企业决策、业务优化、增长突破的核心支撑,从数据仓库搭建(如维度表与事实表的设计)、数据采集清 ...
2026-03-16在数据仓库建设、数据分析(尤其是用户行为分析、业务指标分析)的实践中,维度表与事实表是两大核心组件,二者相互依存、缺一不 ...
2026-03-16数据是CDA(Certified Data Analyst)数据分析师开展一切工作的核心载体,而数据读取作为数据生命周期的关键环节,是连接原始数 ...
2026-03-16在用户行为分析实践中,很多从业者会陷入一个核心误区:过度关注“当前数据的分析结果”,却忽视了结果的“泛化能力”——即分析 ...
2026-03-13在数字经济时代,用户的每一次点击、浏览、停留、转化,都在传递着真实的需求信号。用户行为分析,本质上是通过收集、整理、挖掘 ...
2026-03-13在金融、零售、互联网等数据密集型行业,量化策略已成为企业挖掘商业价值、提升决策效率、控制经营风险的核心工具。而CDA(Certi ...
2026-03-13在机器学习建模体系中,随机森林作为集成学习的经典算法,凭借高精度、抗过拟合、适配多场景、可解释性强的核心优势,成为分类、 ...
2026-03-12在机器学习建模过程中,“哪些特征对预测结果影响最大?”“如何筛选核心特征、剔除冗余信息?”是从业者最常面临的核心问题。随 ...
2026-03-12