统计学-R语言-3
文章目录
- 前言
- 给直方图增加正态曲线的不恰当之处
- 直方图与条形图的区别
- 核密度图
- 时间序列图
- 洛伦茨曲线
- 计算绘制洛伦茨曲线所需的各百分比数值
- 绘制洛伦茨曲线
- 练习
前言
本篇文章是介绍对数据的部分图形可视化的图型展现。
给直方图增加正态曲线的不恰当之处
需要注意的是,给直方图拟合正态分布曲线并非总是适用,有时甚至是荒谬的,容易产生误导。合理的做法是为直方图拟合一条核密度估计曲线,它是数据实际分布的一种近似描述。
下面通过一个实际例子说明给直方图拟合正态分布曲线的荒谬之处:
根据美国黄石国家公园(Yellowstone National Park)老忠实间歇喷泉(Old Faithful Geyser)数据绘制的直方图,并在直方图中分别增加了核密度估计曲线和正态分布曲线。
par(mai=c(.8,.8,.1,.1),cex=.8)
hist(faithful$eruptions, probability=TRUE, xlab="喷发持续时间",breaks=20, col="light blue",main="")
rug(faithful$eruptions)
lines(density(faithful$eruptions, bw=.1), type='l', lwd=2, col='red')
points(quantile(faithful$eruptions),c(0,0,0,0,0),lwd=5,col="red2")
points(mean(faithful$eruptions),c(0),lwd=8,col=4)
curve(dnorm(x,mean=mean(faithful$eruptions),sd=sd(faithful$eruptions)),add=T,col="blue",lwd=2,lty=6)
图显示有两个明显的峰值,用核密度估计曲线可清晰地看出喷发持续时间属于双峰分布,可见为该直方图拟合正态分布曲线的荒之处。
直方图与条形图的区别
条形图中的每一矩形表示一个类别,其宽度没有意义;
直方图的宽度则表示各组的组距分组数据具有连续性,直方图的各矩形通常是连续排列;
而条形图则是分开排列条形图主要用于展示类别数据,而直方图则主要用于展示数值数据。
核密度图
核密度估计(density estimation)是根据一定的核(kernel)函数和适当的带宽(band-width)对数据的分布密度做出的估计。
核密度图(kernel density plot)是对核密度估计的一种描述,利用该图可看出数据的实际分布状况.以例2-3的数据为例,绘制6名运动员射击成绩核密度估计曲线。
R代码和结果如下所示:
# 用lattice包绘制核密度曲线
load("C:/example/ch2/example2_3_1.RData")
library(lattice)
dp1<-densityplot(~射击环数|运动员,data=example2_3_1,col="blue",cex=0.4,par.strip.text=list(cex=0.6),sub="(a)栅格图")# 用lattice包绘制例2-3的核密度比较曲线
dp2<-densityplot(~射击环数,group=运动员,data=example2_3_1,auto.key=list(columns=1,x=0.01,y=0.95,cex=0.6),cex=0.4,sub="(b)比较图")
# 组合latiice包的绘图
plot(dp1,split=c(1,1,2,1))
plot(dp2,split=c(2,1,2,1),newpage=F)
该图显示了每名运动员射击成绩分布的核密度估计曲线(图中的“ o”为扰动点)。
load("C:/example/ch2/example2_3_1.RData")
attach(example2_3_1)
library(sm)
par(cex=0.8,mai=c(.7,.7,.1,.1))
sm.density.compare(射击环数,运动员,lty=1:6,col=c("black","blue","brown","darkgreen","green","red"),lwd=2)
legend("topleft",legend=levels(运动员),lty=1:6,,col=c("black","blue","brown","darkgreen","green","red"))
该图显示了6名运动员射击成绩分布的核密度估计比较曲线容易看出,6名运动员射击成绩均呈现左偏分布。这是因为射击环数的中心点是10.99.环数的上界已被限定,而下界(0环)则远离中心点.因此,下界值方向出现远离中心点的环数的可能性大于上界值方向。此外,从6名运动员射击成绩的分布看,除了基思桑德森,其他运动员射击成绩的分布中心均很接近最高环数(10.99)。
时间序列图
load("C:/example/ch2/example2_9.RData")
example2_9<-ts(example2_9,start=2000)
par(mai=c(0.7,0.7,0.1,0.1),cex=0.8,fg=2)
plot(example2_9[,2],lwd=2,ylim=c(2000,30000),xlab="年份",ylab="居民消费水平",type="n")
grid(col="gray60")
points(example2_9[,2],type='o',lwd=2,ylim=c(2000,30000),xlab="年份",ylab="居民消费水平")
lines(example2_9[,3],type='b',lty=2,lwd=2,col="blue")
legend(x="topleft",legend=c("农村居民消费水平","城镇居民消费水平"),lty=1:2,col=c(1,4),cex=0.8)
函数ts(data, start,…)用于创建时间序列对象,参数data为向量、矩阵或数据框; start设定时间序列的起始时间。
图显示,无论是农村居民还是城镇居民,消费水平随时间的推移均呈现逐年提高的趋势,但城镇居民的消费水平各年均高于农村居民,而且随时间的推移消费水平的差距有扩大的趋势。
洛伦茨曲线
在频数分布中,如果将各类别的频数逐级累加,即可得到累积频数分布表。根据累加频数分布表可以绘制累加频数分布曲线。
洛伦茨曲线(Lorenz curve)是一种特殊的累积频数分布曲线,它是20世纪初由美国统计学家洛伦茨(M. E. Lorentz)根据意大利经济学家帕累托(V. Pareto)提出的收入分配公式绘制的描述收入和财富分配不平等程度的曲线。
图中弯曲的线就是洛伦茨曲线
如果用横轴表示人口百分比,纵轴表示相应人口获得的收入百分比,通过洛伦兹曲线,可以直观地反映一个国家或地区收入分配平等或不平等的状况
如果一定累积百分比的人口获得相同累积百分比的收入,就是图中的对角线,即收入分配绝对平均线。
如果绝大多数人口占有很少的收入,而一小部分人口占有绝大部分的收入,则洛伦茨曲线就靠近下横轴和右纵轴形成弯曲的线。弯曲程度越大,表示收入分配越不公平。
为更准确的反映收入分配的不平等程度,20世纪初意大利经济学家基尼(C. Gini)根据洛伦茨曲线给出了衡量收入分配平等程度的指标,即基尼系数(Gini coefficient),用公式表示为:
计算绘制洛伦茨曲线所需的各百分比数值
load("C:/example/ch2/example2_10.RData")
library(DescTools)
Lc(example2_10$组中值,example2_10$人数)
绘制洛伦茨曲线
par(mai=c(0.7,0.7,0.4,0.1),cex=0.8)
plot(Lc(example2_10$组中值,example2_10$人数),xlab="人数比例",ylab="收入比例",col=4,panel.first=grid(10,10,col="gray70"))
练习
1、(数据: exercise2_5.RData)exercise2_5.RData数据是2005—2014年我国城镇居民和农村居民的居民消费价格指数(CPI)数据。
绘制时间序列图,观察城镇居民和农村居民消费价格指数的变化特征。
library(ggplot2)
ggplot(data, aes(x=year)) geom_line(aes(y=urban, color="城镇居民"), size=1) geom_line(aes(y=rural, color="农村居民"), size=1) + abs(x="年份", y="居民消费价格指数(CPI)", color="居住类型") scale_color_manual(values=c("城镇居民"="red", "农村居民"="blue")) theme_minimal()
2、(数据: exercise2_6.RData)假定某地区不同收入阶层的人口数和不同阶层人口的年收入额如数据 exercise2_6.RData所示。
绘制洛伦兹曲线分析收入分配的不平等程度。
load("C:/ch2/ch2/exercise/exercise2_6.RData")
library(DescTools)
Lc(exercise2_6$不同阶层人口数的收入额,exercise2_6$不同收入阶层的人口数)
par(mai=c(0.7,0.7,0.4,0.1),cex=0.8)
plot(Lc(exercise2_6$不同阶层人口数的收入额,exercise2_6$不同收入阶层的人口数),xlab="人数比例",ylab="收入比例",col=4,panel.first=grid(10,10,col="gray70"))
相关文章:

统计学-R语言-3
文章目录 前言给直方图增加正态曲线的不恰当之处直方图与条形图的区别核密度图时间序列图洛伦茨曲线计算绘制洛伦茨曲线所需的各百分比数值绘制洛伦茨曲线 练习 前言 本篇文章是介绍对数据的部分图形可视化的图型展现。 给直方图增加正态曲线的不恰当之处 需要注意的是&#…...
spring动态控制定时任务
在spring框架中,对于简单的定时任务,可以使用 Scheduled 注解实现,在实际项目中,经常需要动态的控制定时任务,比如通过接口增加、启动、停止、删除定时任务,动态的改变定时任务的执行时间等。 我们可以通过…...
3. Mybatis 中SQL 执行原理
2. Mybatis 中SQL 执行原理 这里有两种方式,一种为常用的 Spring 依赖注入 Mapper 的方式。另一种为直接使用 SqlSessionTemplate 执行 Sql 的方式。 Spring 依赖注入 Mapper 的方式 Mapper 接口注入 SpringIOC 容器 Spring 容器在扫描 BeanDefinition 阶段会扫…...

第一次在RUST官方论坛上留言发布我的Rust板箱
第一次在RUST官方论坛上发帖子,有点紧张~地址在这里: 【My Rust Crate】obtains linux local information - The Rust Programming Language Forum (rust-lang.org)...

LabVIEW 智能化矿用定向钻机液压系统监测
简介 在矿用定向钻机的液压系统监测中,实现实时监控和异常预警对于保障设备运行的稳定性至关重要。传统的人工监测方法效率低下而且准确性不能满足要求,针对这种情况采用 LabVIEW 开发平台,设计并实现了一套智能化矿用定向钻机液压系统的状态…...
GO数据库操作
Golang 出色的 ORM 库为 GORM。 官网文档:https://gorm.io/docs/ 我们来说说增删改查的用法,更深入的研究可以去官网看看。 GORM功能概览: 关联(有一个、有多个、属于、多对多、多态性、单表继承)挂钩(创…...
PyTorch简单理解ChannelShuffle与数据并行技术解析
目录 torch.nn子模块详解 nn.ChannelShuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.DataParallel 用法与用途 使用技巧 注意事项 参数 示例 nn.parallel.DistributedDataParallel 用法与用途 使用技巧 注意事项 参数 示例 总结 torch.nn子模块详…...

MySQL 8查询语句之查询所有字段、特定字段、去除重复字段、Where判断条件
《MySQL 8创建数据库、数据表、插入数据并且查询数据》里边有我使用到的数据。 再使用下方的语句补充一些数据: insert into Bookbought.bookuser(id,username,userphone,userage,sex,userpassword) values (11,Book Break,22245678911,18,male,good#111); insert…...

LLaMA-Factory添加adalora
感谢https://github.com/tsingcoo/LLaMA-Efficient-Tuning/commit/f3a532f56b4aa7d4200f24d93fade4b2c9042736和https://github.com/huggingface/peft/issues/432的帮助。 在LLaMA-Factory中添加adalora 1. 修改src/llmtuner/hparams/finetuning_args.py代码 在FinetuningArg…...

多端多用户万能DIY商城系统源码:自营+多商户入驻商城系统 独立部署 带完整的安装代码包以及搭建教程
电子商务行业日新月异,许多企业希望能够通过线上商城拓展业务。但是,传统商城系统往往无法满足多样化、个性化的需求,而且开发周期长、成本高。罗峰就来给大家分享一款多端多用户万能DIY商城系统源码,搭建简单。 以下是部分代码示…...
Qt 6之七:学习资源
Qt 6之七:学习资源 Qt是一种跨平台的C应用程序开发框架,它提供了一套丰富的工具和库,可以帮助开发者快速构建跨平台的应用程序,用于开发图形用户界面(GUI)和非GUI应用程序。 Qt 6之一:简介、安…...
解决大模型的幻觉问题:一种全新的视角
在人工智能领域,大模型已经成为了一个重要的研究方向。然而,随着模型规模的不断扩大,一种新的问题开始浮出水面,那就是“幻觉”问题。这种问题的出现,不仅影响了模型的性能,也对人工智能的发展带来了新的挑…...

mysql进阶-重构表
目录 1. 原因 2. 如何重构表呢? 2.1 命令1: 2.2 命令2: 2.3 命令3: 1. 原因 正常的业务开发,为什么需要重构表呢? 原因1:某张表存在大量的新增和删除操作,导致表经历过大量的…...

Element-ui图片懒加载
核心代码 <el-image src"https://img-blog.csdnimg.cn/direct/2236deb5c315474884599d90a85d761d.png" alt"我是图片" lazy><img slot"error" src"https://img-blog.csdnimg.cn/direct/81bf096a0dff4e5fa58e5f43fd44dcc6.png&quo…...

Linux系统——DNS解析详解
目录 一、DNS域名解析 1.DNS的作用 2.域名的组成 2.1域名层级结构关系特点 2.2域名空间构成 2.3域名的四种不同类型 2.3.1延伸 2.3.2总结 3.DNS域名解析过程 3.1递归查询 3.2迭代查询 3.3一次DNS解析的过程 4.DNS系统类型 4.1缓存域名服务器 4.2主域名服务器 4…...

初识Ubuntu
其实还是linux操作系统 命令都一样 但是在学习初级阶段,我还是将其分开有便于我的学习和稳固。 cat 查看文件 命令 Ubuntu工作中经常是用普通用户,在需要时才进行登录管理员用户 sudn -i 切换成管理用户 我们远程连接时 如果出现 hostname -I没有出现…...

Casper Network (CSPR)2024 年愿景:通过投资促进增长
Casper Network (CSPR)是行业领先的 Layer-1 区块链网络之一,通过推出了一系列值得关注的技术改进和倡议,已经为 2024 年做好了准备。 在过去的一年里,Casper Network (CSPR)不断取得里程碑式的进展,例如推…...

《MySQL系列-InnoDB引擎06》MySQL锁介绍
文章目录 第六章 锁1 什么是锁2 lock与latch3 InnoDB存储引擎中的锁3.1 锁的类型3.2 一致性非锁定读3.3 一致性锁定读3.4 自增长与锁3.5 外键和锁 4 锁的算法4.1 行锁的三种算法4.2 解决Phantom Problem 5 锁问题5.1 脏读5.2 不可重复读5.3 丢失更新 6 阻塞7 死锁 第六章 锁 开…...
获取多个PDF文件的内容并保存到excel上
# shuang # 开发时间:2023/12/9 22:03import pdfplumber import re import os import pandas as pd import datetimedef re_text(bt, text):# re 搜索正则匹配 包含re.compile包含的文字内容m1 re.search(bt, text)if m1 is not None:return re_block(m1[0])return…...

深入了解网络流量清洗--使用免费的雷池社区版进行防护
随着网络攻击日益复杂,企业面临的网络安全挑战也在不断增加。在这个背景下,网络流量清洗成为了确保企业网络安全的关键技术。本文将探讨雷池社区版如何通过网络流量清洗技术,帮助企业有效应对网络威胁。 ![] 网络流量清洗的重要性&#x…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
ffmpeg(三):处理原始数据命令
FFmpeg 可以直接处理原始音频和视频数据(Raw PCM、YUV 等),常见场景包括: 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装(如封装为 MP4、TS) 处理原始 YUV 视频…...