当前位置: 首页 > news >正文

描述性统计的可视化分析

初步研究数据的分布时,最直观的方法就是可视化分析了。

1. 直方图

直方图(histogram)出现得很早,而且应用广泛。
直方图是以一种图形方法来概括给定数值X的分布情况的图示。
如果X是离散的变量,比如股票类型,则对于X的每个已知的值,画一个柱或竖直条。条的高度表示该X值出现的频率(即计数)​。这种图更多地被称为条形图(bar chart)​。
如果X是连续型变量,比如股票的市盈率,则会更多地使用术语直方图。在术语直方图里,X的值域被划分成不相交的连续子域。子域称为桶(bucket)或箱(bin)​,是X的数据分布的不相交子集。桶的范围称为宽度。通常,每个桶都是等宽的。比如,值为1~100的价格属性可以划分成子域1~20、21~40、41~60,等等。对于每个子域,画一个条,其高度表示在该子域观测到的商品的计数。

有时候,我们需要比较两个数据集的差异。如何最直观地比较两个数据分布的差异呢?答案就是将两个数据分布画在一张图上。
假设生成两个正态分布的数据集。
数据集1:均值为-1,标准差为2,1000个样本。
数据集2:均值为0,标准差为1,5000个样本。

在这里插入图片描述
这个图蓝色的区域被红色大面积挡住了,看不太清楚,怎么办呢?可以加入一个参数alpha=0.5,增加图形的透明度。

在这里插入图片描述

有了透明效果,两个分布就都能看到了。还有一个问题,数据集2有5000个样本,远多于数据集1的1000个。这里默认画的是绝对数量(默认是频数图),所以数据集2看起来要格外高一些。
但我们需要的是相对概率,而不是绝对数量。因此可以再加入一个参数density=True(绘制频率图),来比较概率分布。

在这里插入图片描述

2. 散点图

散点图(scatter plot)是确定两个数值变量X、Y之间看上去是否存在联系,以及具有怎样的相关模式的最有效的图形方法之一。
为构造散点图,将每个值对(x,y)视为一个代数坐标对,并作为一个点画在平面上。
散点图是一种观察双变量数据的有效方法。两个属性X和Y,如果一个属性和另一个属性有关系,则它们是相关的。相关可能是正的、负的或不相关。
如果标绘点的模式是从左下向右上倾斜,则意味X的值随着Y值的增加而增加了,表示正相关。
如果标绘点的模式从左上向右下倾斜,则意味着X的值随着Y值的减小而增加了,表示负相关。
可以画一条最佳拟合线,研究变量之间的相关性。

在这里插入图片描述
这里使用的是seaborn自带的一个数据集。这个数据集里面总共有四组数据,用罗马数字来代表组数。
我们只需要按类似的格式将数据整理好,就可以使用seaborn.lmplot来画出各组的散点图,而且顺便也能将各组的线性回归直线也画出来。
从图中可以看出,第1组和第3组的x,y值是正相关的。第2组的似乎是一个二次曲线。第4组除了一个异常点之外,其他所有点的x都是相同的。
这就是seaborn的好处,可以非常方便地用一个函数分析出不同数据组之间的相关性。

想了解 seaborn.lmplot 各个参数的具体含义请查看官网介绍。

3. 盒图

为了更加全面地了解一个分布,五数概括是一个很好的工具。
五数概括由中位数、两个四分数、最小、最大值组成。按次序分别表示为Minimum,Q1,Median,Q3,Maximum。

盒图(boxplot)是一种流行的分布的图形表示。盒图就体现了五数概括的特点。

  • 盒的端点一般在四分位数上,使得盒的长度是四分位数极差IQR。
  • 中位数用盒内的线标记。
  • 盒外的两条线延伸到最小和最大的观测值。

seaborn也可以非常方便地画出盒图。

在这里插入图片描述
这里也是使用了seaborn自带的数据集。这个数据集有好几个维度,比如sex(性别)​、smoker(是否吸烟)​、day(星期几)​。统计数据有total_bill(总账单)​、tip(小费)​。

以上代码是将day作为x轴,用smoker作为第二维度,画出了total_bill的盒图(数据分布)​。最中间的线就是中位数,实体上下边缘是四分位数,上下影线是最大最小值、灰点是异常值。

我们也可以将第二维度选为sex,只需要将函数中的参数hue换为sex即可。

在这里插入图片描述
可以看到图例变为了sex。

http://www.xdnf.cn/news/748243.html

相关文章:

  • Java弱引用与软引用的核心区别
  • ubuntu20.04.5-arm64版安装robotjs
  • 牛客周赛94
  • 使用Java实现简单的计算机案例
  • uv:一个现代化的 Python 依赖管理工具
  • AMBER软件介绍
  • JS和TS的区别
  • 姜老师MBTI课程:ISTP和ISFP
  • Vue事件处理
  • 【razor】采集模块设置了窗体句柄但并不能直接渲染
  • 《C 盘清理技巧分享》
  • 经济法-7-上市公司首次发行、配股增发条件
  • 【数据治理】要点整理-信息技术数据质量评价指标-GB/T36344-2018
  • 【数据集】30 m空间/1 h时间分辨率地表温度LST数据集
  • 投稿Cover Letter怎么写
  • C语言 — 自定义类型(结构体,联合体,枚举)
  • stm32默认复位刚开始由hsi作为主时钟源而后来才换成的pll
  • 【HTML-15.2】HTML表单按钮全面指南:从基础到高级实践
  • 第十四章 MQTT订阅
  • Wireshark 使用教程:让抓包不再神秘
  • 2025最新版在Windows上安装Redis(仅限开发环境)
  • 【Netty系列】Protobuf编码解码:客户端、服务端
  • 【判断数字递增】2021-12-19
  • C++:指针(Pointers)
  • 11.3JVM调优
  • 零基础SEO优化操作全解析
  • 2006-2024年 上市公司-企业战略联盟数据-社科经管实证数据
  • 打开NRODIC SDK编译不过怎么处理,keil与segger studio
  • CppCon 2014 学习:Modern Template Metaprogramming A Compendium
  • 【LLM相关知识点】关于LangChain框架学习简单整理(三)