应用统计学与R语言实现学习笔记(三)——描述性统计

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/71190387 Chapter 3 Descriptive Statistics本篇是第三章,内容是描述性统计。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/71190387

Chapter 3 Descriptive Statistics

本篇是第三章,内容是描述性统计。同时在这一章会开始渗透R语言的相关内容。但整体还是以理论为主。

1.数据的预处理

本章正式进入统计学的一大分支——描述统计。
很多人会疑惑做一个Project或者写一篇Paper,最难的是什么?我曾经不止一次说过,最难的是数据。数据收集完成,项目完成了50%。而数据收集完成之后,很多人就会马上开始进行数据处理和分析,事实上这是不对的。因为你不清楚你的数据是否有问题(什么问题都有可能,会导致你的分析出现各种问题)。所以你拿到数据后的第一步,应该是对数据做预处理,或者用大数据时代的话——叫数据清洗或者ETL(Extract-Transform-Load),我想预处理还会占掉Project花费时间的20%吧。
那么接下来先介绍下预处理的内容。
数据预处理:

  • 数据审核
  • 数据筛选
  • 数据排序
  • 数据透视

数据审核,包括直接数据的完整性审核以及准确性审核(是否客观),间接数据的适用性审核以及时效性审核;数据筛选,就是对于数据里面的异常值(存在错误,不符合调查要求等),在现在来说就是dirty data(脏数据),将这些数据剔除;数据排序,事实上数据排序更多的目的还是为了更方便地发现异常值,是做数据清洗的手段;数据透视,借鉴于Excel里的数据透视表,事实上就是数据的重铸,融合和汇总,从而得到我们需要的数据。
总的来说,前期预处理需要对数据进行排序、汇总和观察发现相关的数据异常值等。在这个阶段,不喜编程的同学推荐用Excel来做数据预处理(通过数据透视图、替换数据、排序、Countif等工具和Excel函数高效完成预处理),更高级的一般可以考虑用R、Python等编程语言进行清洗预处理,或者像在数据库里用SQL语句也是可以的。
响应一下本部分的标题,R语言实现,交代几个简单的语句进行数据清洗。

#x为数据框、数组或矩阵,通过summary可以获取平均值、中位数、四分位数等,如果有缺失数据,则会显示NAN等。
summary(x)

#表示y是按照x的第一行先升序排列,然后再按x的第二列降序排列得到的数据,-表示降序。
y<-x[order(x[1],-x[2)]

#去除NA所在行和列
y<-na.omit(x)

2.数据的整理与展示

这部分的数据整理是在预处理完毕后,根据我们需要对数据进行整理和简单可视化(多画图,多可视化,你能发现很多事情)。那么第一步就是先把我们的数据类型搞清楚。因为不同类型数据,整理方式不同。
对于分类数据和顺序数据主要是分类整理。
对于数值数据主要是做分组整理。

  • 分类数据的整理核心就是计算频数、比例、百分比、比率,一般可视化用条形图(柱状图)。此外还可以考虑使用帕累托图。帕累托图(Pareto chart)是以意大利经济学家V.Pareto的名字而命名的。这是一个双坐标轴图,一侧纵坐标是频率,另一侧纵坐标是累计频率。是在条形图基础上加上一条折线图(累计频率曲线)。通常用帕累托图来表示,就是研究事物特征是否存在二八定律(20/80规律,典型案例:20%的人拥有80%的财富)。
    除此之外,分类型数据还可以用饼图来进行可视化。
  • 顺序数据则一般选用累计频率曲线和环状图进行可视化。
  • 数值型数据的可视化方式是最多的。主要包括了直方图、折线图(频数多边形图)、打点图、茎叶图、箱线图、线图(时间序列数据)、双变量问题(二维散点图与散点图矩阵)、三变量问题(三维散点图或气泡图)、多变量问题(雷达图)。

其中这里面有一个直方图分组使用的经验公式。

K=1+lgnlg2

K为组数,n为样本数。确定组数,通过极差和组数求组距即可分组。
这部分有很多可视化内容,暂时就不在这部分讲述了(第14章会重点讲解几个典型的可视化方式的R语言绘制)。
最后小结下数据可视化的内容。
  • 品质数据——先制作汇总表,然后可以采用条形图、饼图、环状图可视化;
  • 数值数据中的原始数据——茎叶图、箱线图可视化;
  • 数值数据中的分组数据——直方图、折线图;
  • 数值数据中的时间序列数据——线图;
  • 数值数据中的多元数据——散点图、气泡图、雷达图。

此外对于图表可视化来说,好的图表可视化应当具有如下特征:

  • 显示数据;
  • 让读者把注意力集中在图表的内容上,而不是制作图表的程序上;
  • 强调数据之间的比较;
  • 服务于一个明确的目的;
  • 有对图表的统计描述和文字说明。

鉴别图表优劣的准则:

  • 精心设计、 有助于洞察问题的实质;
  • 使复杂的观点得到简明、 确切、 高效的阐述;
  • 能在最短的时间内以最少的笔墨给读者提供最大量的信息;
  • 表述数据的真实情况, 避免歪曲。

当然图表可视化不仅仅只有R,Excel、SPSS、Tableau都可以使用。

3.数据的概括性度量

当你面对一堆数据时,你还是不知道从何下手,因为我们不可能强行记住每个数据,然后在脑海里对各个数据的分布进行比较,所以科学家们在处理数据的时候,都希望用数据规模尽可能少的一个指标去描述数据尽可能多的信息。那么从数据的角度出发,针对数据分布的不同方面,科学家们也都找出了不相同的指标来进行描述。
简单来说,数据分布包括了集中趋势、离散程度、分布形状三个方面的内容。

  • 集中趋势:众数、中位数、平均数;
  • 离散程度:异众比率、四分位差、极差、方差或标准差、离散系数;
  • 分布形状:偏态系数、峰态系数。

集中趋势的几个指标想必大家较为清楚,就不展开详述了。而离散程度中极差、方差和标准差也是如此,同上,不过单独解释下自由度的概念(一组数据中可以自由取值的数据的个数,与附加给独立观测值的约束或限制的个数
有关,比如三个数据的均值已经知道,知道其中两个数据,第三个数据是固定的,也就是说在添加了均值这个约束之后,观测数据自由取值的个数是n-1=2个)。这里重点解释异众比率,四分位差、离散系数、偏态系数和峰态系数。
异众比率——从字面理解即可,非众数的比率。也就是——不是众数的组的频数占总频数的比率。
四分位差——上四分位数减去下四分位数。
离散系数——也就是标准差系数,即用标准差除以平均值。
偏态系数——用来描述数据分布特征(分布偏斜程度)的系数,该系数>0为右偏分布,<0为左偏分布,=0为对称分布。
峰态系数——用来描述数据分布特征(分布扁平程度)的系数,该系数>0为尖峰分布,<0为扁平分布,=0为扁平峰度适中。
最后单列出以上部分指标的公式(有数学恐惧症的同学请跳过):
中位数:

x((n+1)/2)n
(x(n/2)+x(n/2)+1)/2n

四分位数:
QL=n4,QU=3n4

QL=n+14,QU=3n+14

Q=[n+12]+12

QL=n+34,QU=3n+14

平均数:
x¯=ni=1xin(),x¯=ki=1Mifin()

Gm=i=1n(1+xi)n1()

异众比率:
vr=1fmfi

极差:
R=max(xi)min(xi)

四分位差:
Qd=QUQL

平均差:
Md=ni=1|xix¯|n
Md=ki=1|Mix¯|fin

总体方差:
σ2=Ni=1(xiμ)2n
σ2=ki=1(Miμ)2fin

总体标准差:
σ=Ni=1(xiμ)2n
σ=ki=1(Miμ)2fin

样本方差:
s2=Ni=1(xiμ)2n1
s2=ki=1(Miμ)2fin1

样本标准差:
s=Ni=1(xiμ)2n1
s=ki=1(Miμ)2fin1

标准分数:
zi=xix¯s

标准差系数:
vs=sx¯

偏态系数:
SK=n(xix¯)3(n1)(n2)s3
SK=ki=1(Mix¯)3fins3

峰态系数:
K=n(n+1)(xix¯)43[(xix¯)2]2(n1)(n1)(n2)(n3)s4
K=ki=1(Mix¯)4fins43
目录
相关文章
|
6月前
|
数据挖掘 数据处理
R语言统计基本概念:探索描述性统计与推断统计的奥秘
【8月更文挑战第30天】描述性统计与推断统计是R语言统计分析中的两大基石。描述性统计帮助我们直观地了解数据的分布特征和基本属性,而推断统计则允许我们基于样本数据对总体进行推断和预测。在数据分析的实际应用中,两者相辅相成,共同构成了数据分析的完整框架。掌握这两大概念及其在R语言中的实现方法,对于提升数据分析能力和决策效率具有重要意义。
|
4月前
|
存储 数据可视化 数据挖掘
R语言在生物信息学中的应用
【10月更文挑战第21天】生物信息学是生物学、计算机科学和信息技术相结合的交叉学科,主要研究生物大分子信息的存储、处理、分析和解释。R语言作为一种强大的统计分析工具,被广泛应用于生物信息学领域。本文将介绍R语言在生物信息学中的应用,包括基因组学、转录组学、蛋白质组学、代谢组学等方面,帮助读者了解R语言在生物信息学中的重要性和应用前景。
161 4
|
4月前
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
179 3
|
4月前
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
94 2
【R语言实战】——fGARCH包在金融时序上的模拟应用
【R语言实战】——fGARCH包在金融时序上的模拟应用
|
5月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
5月前
|
机器学习/深度学习 算法 数据挖掘
R语言中的支持向量机(SVM)与K最近邻(KNN)算法实现与应用
【9月更文挑战第2天】无论是支持向量机还是K最近邻算法,都是机器学习中非常重要的分类算法。它们在R语言中的实现相对简单,但各有其优缺点和适用场景。在实际应用中,应根据数据的特性、任务的需求以及计算资源的限制来选择合适的算法。通过不断地实践和探索,我们可以更好地掌握这些算法并应用到实际的数据分析和机器学习任务中。
|
6月前
|
机器学习/深度学习 资源调度 算法
R语言逻辑回归与分类模型的深度探索与应用
【8月更文挑战第31天】逻辑回归作为一种经典的分类算法,在R语言中通过`glm()`函数可以轻松实现。其简单、高效且易于解释的特点,使得它在处理二分类问题时具有广泛的应用价值。然而,值得注意的是,逻辑回归在处理非线性关系或复杂交互作用时可能表现不佳,此时可能需要考虑其他更复杂的分类模型。
|
6月前
|
数据挖掘
R语言方差分析(ANOVA):理解与应用
【8月更文挑战第31天】ANOVA是一种强大的统计方法,用于比较三个或更多组之间的均值差异。在R语言中,我们可以轻松地使用`aov()`函数进行ANOVA分析,并通过后置检验(如TukeyHSD检验)来进一步分析哪些组之间存在显著差异。ANOVA在多个领域都有广泛的应用,是数据分析中不可或缺的工具之一。
|
6月前
|
程序员 数据处理
R语言控制结构:条件判断与循环在R中的应用
【8月更文挑战第27天】R语言中的条件判断和循环结构是编程中不可或缺的部分,它们允许程序员根据特定的条件或规则来控制程序的执行流程。通过灵活使用这些控制结构,可以编写出高效、可维护的R语言代码,以应对复杂的数据处理和分析任务。