热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

描述统计学之R语言实战1:表格法

统计学是搜集、分析、表述和解释数据的科学与艺术,掌握统计学相关知识可以帮助我们更好的发现数据背后隐藏的价值,R语言是现今最受欢迎的数据分析和可视化工具之一。本篇主要介绍如何用表格法

统计学是搜集、分析、表述和解释数据的科学与艺术,掌握统计学相关知识可以帮助我们更好的发现数据背后隐藏的价值,R语言是现今最受欢迎的数据分析和可视化工具之一。本篇主要介绍如何用表格法来统计分析单变量数据、两个变量的数据,并用R语言作为统计分析工具。

数据可以分为分类型数据数量型数据,分类型数据是用标签或名称来识别项目的类型,数量型数据是表示多少或大小的数值。

单变量的数据统计

频数分布是一种数据的表格汇总方法,表示在几个互不重叠组别中,每一组项目的个数(即频数)。

分类型数据统计

先用下面的样本数据来说明如何编制和解释分类型数据的频数分布。

1.可口可乐、健怡可乐、胡椒博士、百事可乐和雪碧是5种受欢迎的软饮料,可通过统计购买各类别饮料的次数分析它们受欢迎的程度,在R中导入“50次购买软饮料的样本数据”。

>library(xlsx)
> drink<-read.xlsx('/Users/liuqin/Documents/50次购买软饮料的样本数据.xlsx',1)
> head(drink)
购买记录 饮料类别
1 1 可口可乐
2 2 健怡可乐
3 3 百事可乐
4 4 健怡可乐
5 5 可口可乐
6 6 可口可乐

2.使用table()函数创建一个频数分布表,表中统计了50次购买中每一种饮料出现的次数,可口可乐出现19次排在首位,百事可乐居第二位,第三位是健怡可乐,雪碧和胡椒博士并列第四。

> drinktable<-with(drink,table(饮料类别))
> drinktable
饮料类别
百事可乐 胡椒博士 健怡可乐 可口可乐 雪碧
13 5 8 19 5

3.也可以将频数转化为相对频数分布百分数频数分布,可以得到每一种饮料在购买的饮料所占比例,可口可乐受欢迎程度最高,所占比例为0.38或38%,胡椒博士和雪碧受欢迎程度最低,所占比例为0.1或10%。

> prop.table(with(drink,table(饮料类别)))
饮料类别
百事可乐 胡椒博士 健怡可乐 可口可乐 雪碧
0.26 0.10 0.16 0.38 0.10
> prop.table(with(drink,table(饮料类别)))*100
饮料类别
百事可乐 胡椒博士 健怡可乐 可口可乐 雪碧
26 10 16 38 10

数量型数据统计

频数分布也适用于数量型数据,下面的样本数据来说明如何编制和解释数量型数据的频数分布。

1.样本数据是一家小型会计事务所对20位客户完成年末审计所需的时间(单位:天),在R中导入“年末审计时间的样本数据”。

> time<-read.xlsx('/Users/liuqin/Documents/年末审计时间样本数据.xlsx',1)
> head(time)
客户 年末审计时间.单位.天.
1 1 12
2 2 15
3 3 20
4 4 22
5 5 14
6 6 14

2.数量型数据先要确定组数,然后确定每组组宽,最后确定组与组之间的组限

由于样本数据较少,可选择5个组数。组宽可通过样本最大值33减去最小值12,将极差除以组数后得到近似组宽为4.2,取整为5。组限必须将最大值和最小值包含进去,所以可将上限定为34,下限定为10。

> 审计时间 <- c("10~14", "15~19", "20~24", "25~29", "30~34")
> breaks <- c(10,14,19,24,29,34)

3.使用cut()函数按照指定的断点来分割数据,得到各个分组,使用table()函数得到频数表。我们可以观察到最频繁发生的审计时间在15~19天这一组,有8个审计时间属于这一组,只有1次审计需要30天以上。

> timetable<- cut(time$年末审计时间.单位.天., breaks = breaks, labels = 审计时间, right = TRUE )
> table(审计时间=timetable)
审计时间
10~14 15~19 20~24 25~29 30~34
4 8 5 2 1

4.也可以将频数转化为相对频数分布和百分数频数分布,有0.4或40%的审计需要15~19天时间,只有0.05或5%的审计需要30天或更多时间。

> prop.table(table(审计时间=timetable))
审计时间
10~14 15~19 20~24 25~29 30~34
0.20 0.40 0.25 0.10 0.05
> prop.table(table(审计时间=timetable))*100
审计时间
10~14 15~19 20~24 25~29 30~34
20 40 25 10 5

两个变量的数据统计

以上讨论了利用表格法对一个分类或数量变量的数据进行统计,下面将介绍如何编制两个变量数据的表格统计。

交叉分组表是一种汇总两个变量数据的方法,虽然两个变量可以是分类的或数量的,但一个变量是分类的而另一个变量是数据的交叉分组表最为常见。

1.样本数据为洛杉矶地区100家饭店的质量等级和代表性餐价数据,在R中导入“100家洛杉矶饭店的质量等级和餐价样本数据”。

> mydata<-read.xlsx('/Users/liuqin/Documents/100家洛杉矶饭店的质量等级和餐价样本数据.xlsx',1)
> head(mydata)
饭店 质量等级 餐价.美元.
1 1 好 18
2 2 好 22
3 3 好 28
4 4 很好 38
5 5 很好 33
6 6 好 28

2.质量等级是一个分类变量,餐价是一个数量变量,使用xtabs()函数得到交叉分组表,左边栏对应质量等级变量,顶部边栏对应餐价变量。样本中质量等级为很好且餐价在20~29美元的饭店最多(22家),质量等级为优秀且餐价在10~19美元的饭店只有2家。

> 餐价<- c("10~19", "20~29", "30~39", "40~49")
> breaks <- c(10,19,29,39,49)
> 餐价<- cut(mydata$餐价.美元., breaks = breaks, labels = 餐价, right = TRUE )
> mytable<-xtabs(~mydata$质量等级+餐价,data=mydata)
> mytable
餐价
mydata$质量等级 10~19 20~29 30~39 40~49
好 13 14 1 0
很好 9 22 17 2
优秀 1 4 9 8

3.也可以将交叉分组表化为相对频数分布或百分数频数分布,样本中餐价在20~29美元且质量等级为很好的饭店占比最高,为22%,餐价在40~49美元且质量等级为好的饭店占比最低,为0%。

> prop.table(mytable)
餐价
mydata$质量等级 10~19 20~29 30~39 40~49
好 0.13 0.14 0.01 0.00
很好 0.09 0.22 0.17 0.02
优秀 0.01 0.04 0.09 0.08

4.使用pro.table()函数分别可生成边际比例,当参数为1时指代table()语句中的第一个变量,即质量等级变量,每一行是同一质量等级的餐价相对频数分布,对于质量等级最低的饭店,我们看到最大比例是较便宜的饭店(46%的饭店餐价是10~19美元,50%的饭店餐价是20~29美元)。对于质量等级最高的饭店,我们看到最大比例的是较贵的饭店(40.9%的饭店餐价是30~39美元,36.4%的饭店餐价是40~49美元)。

> prop.table(mytable,1)
餐价
mydata$质量等级 10~19 20~29 30~39 40~49
好 0.46428571 0.50000000 0.03571429 0.00000000
很好 0.18000000 0.44000000 0.34000000 0.04000000
优秀 0.04545455 0.18181818 0.40909091 0.36363636

5.当参数为2时指代table()语句中的第二个变量,即餐价变量,每一列是同一个餐价范围的质量等级相对频数分布,对于餐价最便宜的饭店,我们看到饭店质量等级较低的比例最高(56.5%的饭店质量等级为好,4.3%的饭店质量等级为优秀)。对于餐价最昂贵的饭店,我们看到饭店质量等级较高的比例最高(80%的饭店质量等级为优秀)。这个现象响应了一句老话“便宜没好货,好货不便宜”。

> prop.table(mytable,2)
餐价
mydata$质量等级 10~19 20~29 30~39 40~49
好 0.56521739 0.35000000 0.03703704 0.00000000
很好 0.39130435 0.55000000 0.62962963 0.20000000
优秀 0.04347826 0.10000000 0.33333333 0.80000000

下一篇《描述统计学之R语言实战2:图形法》将介绍如何使用R语言对单变量数据、两个变量数据进行图形显示。


推荐阅读
  • python计算数据包校验和(python接口数据校验)
    本文目录一览:1、怎么用python算p值和t检验 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • 通过 JFR 与日志深入探索 JVMTLAB 原理详解
    什么是TLAB?TLAB(ThreadLocalAllocationBuffer)线程本地分配缓存区,这是一个线程专用的内 ... [详细]
  • logistic回归分析优点_数据统计的理解和应用(十三)预测模型篇之logistic回归...
    专栏的前几期文章,临度简单讲解了基础统计的知识,如:两组定量资料的分析思路之t检验多组样本比较之方差分析列联表之卡方检验之后介绍了logi ... [详细]
author-avatar
幽兰伴竹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有