ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

统计表和统计图—R语言

2022-06-27 07:31:06  阅读:195  来源: 互联网

标签:频数 语言 统计图 标题 分布 统计表 数列


图和表是集成整合描述数据特点的两个重要工具,统计表或统计图为了使市场调研资料的表达直观生动、通俗易懂、便于分析比较等,但二者的效果是不同的,统计图更能直观、形象的反映数据间的变化和联它是数据可视化的基础。统计表和统计图都是在收集数据、整理数据基础上来完成的。统计表是反映统计的表格。是对统计指标加以合理叙述的形式,它使统计条理化,简明清晰,便于检查数字的完整性和准确性,以及对比分析。统计表从形式上看,由标题、横行、纵栏、数字等部分所组成。从内容上看,由主辞和宾辞两部分所组成。统计图是根据统计数字,用几何图形、事物形象和地图等绘制的各种图形。它具有直观、形象、生动、具体等特点。统计图可以使复杂的统计数字简单化、通俗化、形象化,使人一目了然,便于理解和比较。因此,统计图在统计整理与分析中占有重要地位,并得到广泛应用。

一、统计表(频数分布表)

频数分布情况常用统计表来表示。因此,先陈述统计表的设计原理和要求。统计表是纵横线交叉所组成的一种表格,表格内所列的是整理后系统的统计资料。其优点在于:资料易于条理化,简单明了,且可以节省大量文字叙述,便于比较分析,检查数字的完整性和准确性。统计表一般采用上中下三线图,即表的左、右之纵向线条一般不画。统计表的结构,可从表的形式和内容两个方面加以论述。

一、统计表

统计表是由总标题、横行标题、纵栏标题、纵横格线和数字资料构成。有些统计表需在表的下端增加注解,以说明资料的来源、某些指标数值的计算方法、填表单位和其他需要说明的问题。总标题也称为统计表的名称,它用概括性的文字简单明了地需要说明统计资料时间、基本内容和范围。一般写在表的上部中端。横行标题通常用来表示各组的名称,反映统计表的主要项目,写在表的左方,纵栏标题是统计指标的名称,说明纵栏所列各项资料的内容,写在表内右上方。数字资料也称指标数值,它是统计表的具体内容,列在各横行标题和各纵栏标题的交叉处。任何一个具体数值都由横行标题和纵栏标题所限定。

1.1 统计表的内容

统计表分为主词栏和宾词栏两部分。主词是统计表所要说明的对象。它可以是各个总体单位的名称、总体各个组或全部,一般列在表的左端,宾词是说明主词的各种指标,包括指标名称和指标数值,一般列在表的右端。必要时,主词和宾词可变化位置。
编制统计表时应注意以下几个问题:统计表的栏数如果过多,要加以编号,主词和计量单位各栏用(甲)、(乙)、(丙)等文字编写;宾词指标各栏则用(1)、(2)、(3)等数字编号;表中数字要填写整齐,位数对准。当不存在这项数字时,用符号“-”表示;当缺乏某项资料时,用符号“…”表示;数字资料要注明计量单位。当全表只有一种计量单位时,可把它写在表头的右上方。如果表中需要分别注明不同单位时,横行的计量单位可专设“计量单位”一栏,纵栏的计量单位可与纵标题写在一起用小字标明;统计表的文字、数字要书写工整、清晰,数位要对齐;某些特殊资料需要说明的,应在表的下方加以注解;数字资料要在表下说明来源,以备查考。

1.2 频数分布表示方法

在统计分组的基础上,可以将总体所有单位按某一标志进行归类排列,并显示其次数,这样获得的分布称为频数分布或次数分布。通过对零乱、分散原始资料的整理,可形成一系列反映总体各组之间单位分布状态的数列,即分布数列。分布数列有两个基本要素:总体按照某标志划分的组,各组所出现的单位数。分布数列按分组变量的标志分,有品质分布数列和变量分布数列,后者又分组距分布数列和单变量值分布数列,组距分布数列又可以分等距分布数列和异距分布数列。

library(ggplot2)
library(psych)
library(tidyr)
head(mtcars)

d1<-table(mtcars$carb)                      #频数表
d2<-table(mtcars$vs,mtcars$carb)            #列联表
addmargins(d2)
       1  2  3  4  6  8 Sum
  0    0  5  3  8  1  1  18
  1    7  5  0  2  0  0  14
  Sum  7 10  3 10  1  1  32

列表法是用统计表来表示频数分布,包括累计频数和频率等。在异距分布数列中,各组次数多少受组距不同的影响,各组的频数可随着组距扩大而增加,因此一般要计算频率和频率密度。频率=频数/总合计数*100%,频率密度=频率/组距。为了更清楚反映数据分布的特点,实践中常需计算累计频数或累计频率。编制向上累计频率(频数)分布的方法是,先列出各组的上限,然后由标志值低的组向标志值高的组依次累计。向上累计频数(频率)表明某组上限以下的各组单位数之和。

二、统计图

统计资料主要的表述形式是统计表,但有时也用统计图表示。统计图比较直观地给出统计数据。统计图的绘制要求和统计表基本一致,应该具备图号、标题、单位、资料来源和必要的注释。常用的统计图有用于定类、定序尺度变量的条形图(Bar),其坐标是示意的。对于定类、定序尺度变量,一般使用直方图(Histograms)、折线图(Frequency Polygon)、圆形图(Pie)、累计图(Cumulative)和X-Y坐标图等多种。应该说明的是,条形图和直方图形状十分类似,其纵坐标都是频数。但是,直方图常用于定类、定序尺度变量,横坐标是连续的等距数量标志;条形图则是示意性的。

2.1 条形图

barplot()函数:针对类别型变量,频率分类计数

library(vcd)              #示例用vcd包的数据
table(Arthritis$Improved)
counts <- table(Arthritis$Improved)   # 针对分类变量统计计数

barplot(counts, 
        main="Simple Bar Plot", col = rainbow(3),
        xlab="Improvement", ylab="Frequency",)
#添加horiz=TRUE 参数会生成水平条形图

#堆砌条形图与分组条形图
counts <- table(Arthritis$Improved, Arthritis$Treatment)
#counts有两组(对照组,改善组),每组针对效果又分为三种类型
barplot(counts, 
        main="Grouped Bar Plot", 
        xlab="Treatment", ylab="Frequency",
        col=c("red", "yellow", "green"),
        legend=rownames(counts), beside=TRUE)

2.2 直方图:hist()

直方图用于展示连续性变量频数分布图。x轴是将值域分割为一定数量的组,y轴为频数。

x <- mtcars$mpg
h <- hist(x, breaks = 12, col = "red", 
          xlab = "Miles Per Gallon", 
          main = "Histogram with normal curve and box")

xfit <- seq(min(x), max(x), length = 40)
yfit <- dnorm(xfit, mean = mean(x), sd = sd(x))
yfit <- yfit * diff(h$mids[1:2]) * length(x)
lines(xfit, yfit, col = "blue", lwd = 2)
box()

2,3 箱线图

描述了连续型变量的分布
五个数:最小值、下四分位数(.25)、中位数(.5)、上四分位数(.75),最大值。
能够判断离群点(IQR±1.5*IQR以外的值,IQR=四分位距,即上四分位数与下四分位数的差值。若数据点未达到计算范围两端,则由这些数据点的高值和低值(不包括离群值)来确定须线。

#(1)直接绘图单箱线图
boxplot(mtcars$mpg, ylim=c(5,35))
#ylim参数指定y轴的起始位置

boxplot1

#(2)单因子并列箱线图
mtcars$cyl.f <- factor(mtcars$cyl,
                       levels=c(4,6,8),
                       labels=c("cyl4","cyl6","cyl8"))
boxplot(mpg~cyl.f,data=mtcars,
        main="Car Milage Data", 
        xlab="Number of Cylinders", 
        ylab="Miles Per Gallon")
#针对cyl三种不同的类型,画三个箱线图

单因子.png

#(3)交叉双因子并列箱线图
mtcars$cyl.f <- factor(mtcars$cyl,
                       levels=c(4,6,8),
                       labels=c("4","6","8"))
mtcars$am.f <- factor(mtcars$am, 
                      levels=c(0,1), 
                      labels=c("auto","standard"))
#上述将两个数值型变量转换为因子型
boxplot(mpg ~ am.f *cyl.f, 
        data=mtcars, 
        varwidth=TRUE,
        col=c("gold", "darkgreen"),
        main="MPG Distribution by Auto Type", 
        xlab="Auto Type")
#varwidth=TRUE 表示箱图的宽度可适当变化。

交叉因子.png

补充:画含有凹槽的箱线图,boxplot() 函数添加notch=TRUE参数,若两个箱的凹槽不重叠,则表明其中位数有显著差异。

4、点图

  • dotchart(x,label=)函数
dotchart(mtcars$mpg,labels=row.names(mtcars),
         cex=.7,
         main="Gas Mileage for Car Models", 
         xlab="Miles Per Gallon")
#上面是个简单的点图;下面来绘制个经排序、分组,着色后精美的点图
x <- mtcars[order(mtcars$mpg),]                      
x$cyl <- factor(x$cyl)
#转变为因子型,为分组做准备                                 
x$color[x$cyl==4] <- "red"                              
x$color[x$cyl==6] <- "blue"
x$color[x$cyl==8] <- "darkgreen" 
#上三行代码为每个类别记录为一种颜色,单设一列,为后面着色做准备
dotchart(x$mpg,
         labels = row.names(x),                               
         cex=.7, 
         pch=19,                                              
         groups = x$cyl,                                       
         gcolor = "black",
         color = x$color,
         main = "Gas Mileage for Car Models\ngrouped by cylinder",
         xlab = "Miles Per Gallon")

点图.png

5、其它图形

核密度图

  • 估计连续型变量概率分布的非参数方法
    如前,正态分布概率密度曲线是有参数的(均值mean,方差sd);而核密度图仅根据数据特征估计概率密度的方法。
    plot(density(x))
d=density(mtcars$mpg)
plot(d)
polygon(d,col="red",border="blue")   #在下方添加实心颜色

核密度.png

  • 绘制多条核密度曲线,比较组间差别
library(sm)  #需要加载一个包
cyl.f <- factor(mtcars$cyl, levels = c(4,6,8),
                labels = c("4 cylinder", "6 cylinder", 
                           "8 cylinder"))
sm.density.compare(mtcars$mpg, mtcars$cyl, xlab = "Miles Per Gallon")
colfill <- c(2:(1 + length(levels(cyl.f))))   #注意颜色对应的数字
legend(locator(1), levels(cyl.f), fill = colfill)
#交互式确定图例位置

多条核密度曲线比较

小提琴图

  • 就是核密度图以镜像的方式在箱线图上的叠加,白点为中位数。
  • 值得注意的是按因子绘制多类小提琴图时,vioplot函数要求要把不同组分(类别)分离到不同的变量中。
library(vioplot)
x1 <- mtcars$mpg[mtcars$cyl==4] 
x2 <- mtcars$mpg[mtcars$cyl==6]
x3 <- mtcars$mpg[mtcars$cyl==8]
vioplot(x1, x2, x3, 
        names=c("4 cyl", "6 cyl", "8 cyl"))

小提琴图.png

还有饼图的做法,觉得用到的机会不多,就不介绍了,详见p116
代码大部分参考教材《R语言实战(第2版)》
--寒假自学R语言的生信小白。
武汉加油!

三、总结

统计图是根据统计数字,用几何图形、事物形象和地图等绘制的各种图形。它具有直观、形象、生动、具体等特点。统计图可以使复杂的统计数字简单化、通俗化、形象化,使人一目了然,便于理解和比较。因此,统计图在统计资料整理与分析中占有重要地位,并得到广泛应用。在解答资料分析测验中有关统计图的试题时,既要考察图的直观形象,又要注意核对数据,不要被表面形象所迷惑。
统计表是反映统计资料的表格。是对统计指标加以合理叙述的形式,它使统计资料条理化,简明清晰,便于检查数字的完整性和准确性,以及对比分析。统计表从形式上看,由标题、横行、纵栏、数字等部分所组成。从内容上看,由主辞和宾辞两部分所组成。主辞是统计表所要说明的对象,是由总体、总体各组、总体各单位的名称所构成。宾辞是说明主辞的统计指标的名称及数字资料。

参考文献

1.(统计表与统计图_社会统计学_挂云帆)[https://www.guayunfan.com/baike/89409.html]
2.(R语言入门--第五节(认识基本统计图))[https://www.jianshu.com/p/3589048d2622]

标签:频数,语言,统计图,标题,分布,统计表,数列
来源: https://www.cnblogs.com/haohai9309/p/16414949.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有