统计学-R语言-4.3

文章目录

  • 前言
  • 直方图
  • 茎叶图
  • 箱线图
  • 练习


前言

本篇介绍的是数值型数据怎么进行数据可视化,本篇介绍的有直方图、茎叶图、箱线图。


直方图

直方图(Histogram)用于描述连续型变量的频数分布,实际应用中常用于考察变量的分布是否对称;是否服从某种分布类型,如正态分布
直方图以矩形的面积表示各组段的频数或频率, 各矩形的面积总和为总频数(或等于1,此时是按照频率来计算的)
在R软件里用函数是hist()来作直方图,把probability参数设置为T是用频率作直方图,默认为F。
示例如下:
代码:

salary=c(2000,2100,2200,2350,2500,2900,3500,3800,2600,3300,3200,4000,4100,3100,4200)
par(mfrow=c(1,2))
hist(salary,main="工资的直方图")
hist(salary,main="工资的直图",probability=T)

继续对工资数据作直方图,结果如下图。
在这里插入图片描述
在R里还可以使用rug()函数把各个数据竖线(轴须线)描绘在X轴上,结果如下所示:

hist(salary,main="工资的直图",probability=T);rug(salary)

在这里插入图片描述

在R里还可以使用lines(density(x))函数增加核密度估计曲线(plot(density(x))),结果如下图所示:

lines(density(salary),col="red")

在这里插入图片描述

核密度估计曲线是对数据分布密度的估计,它为数据的分布提了一种平滑的描述,从中可以看出分布的大致形状。

在hist()中还可以指定breaks=n,就可以在直方图中得到大约n个条。还可以指定breaks为一个向量,然后对区间进行分割。

brk=seq(2000,4250,250)#对区间(2000,4250)按每间隔250划分
hist(salary,breaks=brk)

在这里插入图片描述

茎叶图

茎叶图(stem-and-leaf plot)的形状与功能和直方图非常相似,但它是一种文本化的图形。
茎叶图是一种可以较简练地表示数据信息的图表。在茎叶图中,每个数值都被分成两部分,打头的数字作为茎,尾随的数字作为叶。
茎沿竖直轴线放置,叶沿水平轴线堆放。
茎叶图与频数分布类似,但包含了更多信息。

茎叶图它的思路是将数组中的数按位数进行比较,将数的大小基本不变或变化不大的位作为一个主干(茎),将变化大的位的数作为分枝(叶),列在主干的后面,这样就可以清楚地看到每个主干后面的几个数,每个数具体是多少。
茎叶图与直方图不同,茎叶图保留原始资料的信息,可以从中统计出次数,计算出各数据段的频率或百分比。从而可以看出分布是否与正态分布或单峰偏态分布逼近。

在数据量不是很大时,茎叶图既显示了完全的原始数据,又显示了数据分布的形状。它像带有长短不一的叶子的茎。
茎叶图优于频数分布的一点是保留了每一个观测对象的真实值。
但是,当数据量很大时,茎叶图就不方便了。
在R软件里用函数stem()作茎叶图。

例题1:
下面一组数据是某生产车间30名工人某日加工零件的个数,请设计适当的茎叶图表示这组数据,并由图出发说明一下这个车间此日的生产情况
在这里插入图片描述
分析:以前两位数为茎,个位数为叶,可以作出相应的茎叶图,从而可据图分析数据的特征。
在这里插入图片描述

该生产车间的工人加工零件数大多都110到130之间,且分布较对称、集中,说明日生产情况稳定。茎叶图直观地反映了数据的集中趋势

例题2:
甲、乙两个小组各10名学生的英语口语测试成绩如下(单位:分),用茎叶图表示两小组的成绩,并判断哪个小组的成绩更整齐一些。
甲组:76,90,84,86,81,87,86,82,85,83
乙组:82,84,85,89,79,80,91,89,79,74

在这里插入图片描述
容易看出甲组成绩较集中,即甲组成绩更整齐一些。
评注:用茎叶图分析数据直观、清晰,所有信息都可以从这个茎叶图中得到。
在R中使用stem.leaf.backback()函数绘制背靠背茎叶图.

例题3:
对工资数据做茎叶图如下:
在这里插入图片描述

stem(salary)

在这里插入图片描述
与直方图相比,茎叶图在反映数据整体分布趋势 的同时还能准确反映出具体的数值大小,因此在 小样本情况下优势非常明显。

stem(salarym)

在这里插入图片描述
20000 的确是一个异常数据, 导致我们不能看清大部分数据的结构。

箱线图

箱线图( Boxplot Graph)是由一个箱子(box)和两条线段(whisker)组成的。
其绘制方法是:先根据上四分位数QU、下四分位数QL和中位数画出中间的箱子,箱子的长度为四分位数间距IQR=QU-QL
对于单组数据,可以绘制简单箱线图;对于多组数据,可以绘制批比较箱线图。
通过箱线图,不仅可以反映出一组数据分布的特征(对称?离群点?),还可以进行多组数据分布特征的比较。

箱线图上下两条线的长度可以有不同的选择
通常的选择为:如果没有数据值大于QU+1.5×IQR那么该线以数据最大值为端点,否则,线的上端点为上四分位数加上1.5倍的箱子长度,比该端点大的数值则分别在其上方按照其实际值点出。如果数据处于QU +1.5×IQR至 QU+3×IQR的范围内则用圆圈标出,超出了QU+3×IQR 的用星号标出
下面的线也类似。由QL至QL-1.5×IQR区间内的最小值向箱子的底部连线; QL -1.5×IQR至QL -3×IQR的范围内 用圆圈标出,小于QL -3×IQR的用星号标出。

单组数据箱线图的一般形式如下图所示:
在这里插入图片描述

通过箱线图的形状,就可以看出数据分布的特征,如下图所示:
在这里插入图片描述

对称分布的箱线图的特点是:中位数在箱子中间;上下相邻值到箱子的距离等长;离群点在上下内围栏外的分布也大致相同。
在这里插入图片描述

右偏分布的箱线图的特点是:中位数更靠近25%四分位数的位置;下相邻值到箱子的距离比上相邻值到箱子的距离短;离群点多数在上内围栏之外。
在这里插入图片描述

左偏分布的箱线图的特点是:中位数更靠近75%四分位数的位置;下相邻值到箱子的距离比上相邻值到箱子的距离长;离群点多数在下内围栏之外。
在这里插入图片描述

示例如下:
在R里箱线图的函数是boxplot(),若参数horizontal=F默认为垂直型,
而horizontal=T则为水平型。

par(mfrow=c(1,2))
boxplot(salary)#垂直型
boxplot(salary, horizontal=T)#水平型

在这里插入图片描述

相对于直方图侧重于对一个连续变量的分布情况进行考察,箱线图更注重于勾勒统计的主要信息,包括最小值最大值、上下四分位数以及中位数,并且适用于对多个连续变量同时考察,或者对一个变量分组进行考察。箱线图使用比较灵活,应用更为广泛
箱线图还可以检验离群值。离群值(outlier)就是明显远离于其他大部分数据某个或少数几个值。
如果观测值距箱线图底线Q1(第25百分位数)或顶线 Q3(第75百分位数)过远,如超出箱体高度(四分位数间距)的1.5倍以上,则可视该观测值为离群值。

示例:
对前面加了经理工资后的月工资数据进行离群值探索,结果如图所示。

boxplot (salarym)

在这里插入图片描述
从图可以看出,该数据有一个离群值,就是经理的工资,远远高于部门其他人的工资,因此被认为是离群值。


练习

1、为分析灯泡的使用寿命(单位:小时),在一批灯泡中随机抽取100只进行测试,得到了一些数据(提供数据exercise2_2,不用自己录入)
(1)绘制直方图和茎叶图,说明数据分布特点

load("C:/Users/86157/Desktop/ch2/exercise2_2.RData")
exercise2_2

直方图

dw<-exercise2_2$灯泡寿命
dw
par(mfrow=c(2,2),cex=0.7,mai=c(0.6,0.6,0.2,0.1))
hist(dw,xlim=c(2700,4200),ylim=c(0,30),labels=T,xlab ="灯泡寿命",ylab="频数",main="(a)直方图1")#每一条上方标注频数
rug(dw)
hist(dw,freq=FALSE,breaks=20,xlab="灯泡寿命",ylab="密度",main="直方图2",col="pink")
lines(density(dw),col="red")

茎叶图

stem(exercise2_2$灯泡寿命)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/316845.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谷粒商城P139集——云服务器frp内网穿透+nginx完美解决方案

1、修改本地HOST C:\Windows\System32\drivers\etc 目录下 host文件 上面前面是自己的云服务器ip 测试&#xff1a;如域名为gulimall.com 备注如果自己的云服务器nginx端口不是80 访问的时候记得打开 可以访问9200或者nacos尝试 则在浏览器中输入gulimall.com:9200&#xf…

解决“Ubuntu系统与windows系统之间不能执行复制粘贴”之问题

在win11中&#xff0c;发现“Ubuntu系统与windows系统之间不能互相复制粘贴”&#xff0c;只能通过“FPT客户端FileZilla”才能交换文件&#xff0c;但遇到字符串&#xff0c;就没法实现了&#xff0c;因此&#xff0c;在两个系统之间实现互相复制和粘贴字符串&#xff0c;就很…

x86是什么?

x86是一系列CPU架构的统称&#xff0c;这一术语起源于1978年&#xff0c;当时Intel发布了其首款16位微处理器——8086。这款处理器在当时引起了极大的关注&#xff0c;因为它首次引入了许多先进的技术&#xff0c;如寄存器间接寻址和分段内存管理等。随后&#xff0c;Intel又相…

【InternLM 大模型实战】第四课

XTuner 大模型单卡低成本微调实战 FINETUNE简介指令跟随微调增量预训练微调LoRA & QLoRA XTuner简介功能亮点适配多种生态适配多种硬件 8GB 显卡玩转LLMFlash AttentionDeepSpeed ZeRO 动手实战环节环境配置微调准备配置文件模型下载数据集下载修改配置文件开始微调将得到的…

中间人攻击如何进行防护

中间人攻击&#xff08;Man-in-the-Middle Attack&#xff0c;简称 MITM 攻击&#xff09;是一种常见的网络攻击方式&#xff0c;攻击者通过截获两个通信实体之间的通信数据&#xff0c;并在此基础上进行篡改、窃取或伪造等恶意行为。这种攻击方式因其攻击手段的隐蔽性和难以防…

LeetCode讲解篇之47. 全排列 II

文章目录 题目描述题解思路题解代码 题目描述 题解思路 初始化一个nums中元素是否被访问的数组used、记录还需要递归的深度deep&#xff0c;遍历nums&#xff0c;如果当前元素被访问过或者当前元素等于前一个元素且前一个元素没被访问过就跳过该次遍历&#xff0c;否则选择当前…

基于SSM+vue的篮球场预约管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

mac上部署单体hbase

1. 简介 HBase 是一个开源的、分布式的、版本化的典型非关系型数据库。它是 Google BigTable 的开源实现&#xff0c;并且是 Apache 基金会的 Hadoop 项目的一部分1。HBase 在 Hadoop Distributed File System (HDFS) 上运行&#xff0c;作为一个列式存储非关系数据库管理系统…

JFinal综合信息管理系统

项目地址&#xff1a;mendianyu/AdvancedManagement: 综合信息管理系统 (github.com) 项目演示地址&#xff1a;软件构造大作业演示视频_哔哩哔哩_bilibili 项目功能 一&#xff1a;基于Jfinal构建信息管理系统&#xff0c;要求包含用户管理&#xff0c;翻译业务模块管理&…

redis复习总结

我的redis 1. redis集群 主从集群【哨兵集群】&#xff1a;主从集群是指中&#xff0c;存在一个master节点和多个slave节点。master节点负责接收客户端的读写&#xff0c;slave节点负责读操作。主节点一旦接收到数据的变更&#xff0c;就会将数据同步至slave节点。 但这样的…

集合(二)Collection集合Set

一、Set介绍&#xff1a; 是一个散列的集合&#xff0c;数据会按照散列值存储的&#xff0c;如两个hello的散列值相同&#xff0c;会存储在同一个地址中&#xff0c;所以看到的就是只有一个hello在集合中了。 1、Set集合有两个主要的实现子类&#xff1a;Hashset和Treeset。ha…

ZooKeeper 实战(四) Curator Watch事件监听

文章目录 ZooKeeper 实战(四) Curator Watch事件监听0.前言1.Watch 事件监听概念2.NodeCache2.1.全参构造器参数2.2.代码DEMO2.3.日志输出 3.PathChildrenCache3.1.全参构造器参数3.2.子节点监听时间类型3.2.代码DEMO 4.TreeCache4.1.构造器参数4.2.代码DEMO4.3.日志输出 ZooKe…

代码随想录算法训练营第四天 |链表总结

1、每次先加判断&#xff1a; if (head null) {return head;} 2、ListNode dummy new ListNode(-1, head);和ListNode dummy new ListNode(-1);区别&#xff1a; 在Java中&#xff0c;ListNode dummy new ListNode(-1, head); 和 ListNode dummy new ListNode(-1); 的主…

软考学习笔记--操作系统-进程管理

进程管理是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动&#xff0c;是系统进行资源分配和调度的基本单位。相对于程序&#xff0c;进程是动态的概念&#xff0c;而程序是静态的概念&#xff0c;是指令的集合。进程具有动态性和并发性&#xff0c;需要一定…

LeetCode讲解篇之39. 组合总和

文章目录 题目描述题解思路题解代码 题目描述 题解思路 首先排序数组&#xff0c;然后开始选择数字&#xff0c;当选择数字num后&#xff0c;在去选择大于等于num的合法数字&#xff0c;计算过程中的数字和&#xff0c;直到选数字和等于target, 加入结果集&#xff0c;若数字和…

爬虫案例—表情党图片data-src抓取

爬虫案例—表情党图片data-src抓取 表情党网址&#xff1a;https://qq.yh31.com 抓取心情板块的图片data-src 由于此页面采用的是懒加载技术&#xff0c;为了节省网络带宽和减轻服务器压力。不浏览的图片&#xff0c;页面不加载&#xff0c;统一显示LOADING…。如下图&#x…

tkinter控件中文显示为unicode编码的解决办法

一、背景 最近使用python tkinter编写界面应用时&#xff0c;发现按钮的中文名称在windows上显示正常&#xff0c;但是在linux上显示为中文的unicode编码&#xff1b;文本输入框也是&#xff0c;输入中文输时&#xff0c;text控件上也显示为unicode编码&#xff0c;如下图所示…

【Python数据可视化】matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值

文章传送门 Python 数据可视化matplotlib之绘制常用图形&#xff1a;折线图、柱状图&#xff08;条形图&#xff09;、饼图和直方图matplotlib之设置坐标&#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

02-Dapper

1.2&#xff1a;Dapper 1.2.1&#xff1a;设计要求 1、无处不在的部署&#xff1a; 任何服务都应该被监控到&#xff0c;任何服务出问题都要做到有据可查。2、持续的监控&#xff1a;做到7*24小时全天候监控&#xff0c;任何时候出了问题都要基于监控数据追踪问题根源。1.2.2…

基于SSM+JSP的订餐管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…