数据的统计描述(计量资料)

Python033

数据的统计描述(计量资料),第1张

1. 算数平均数(arithmetic mean)

R语言函数:mean( )

2.中位数(median)

将所有观测值从小到大排列,居于中间位置的观测值称为中位数,用 表示。

当观测值为奇数个时,中位数是第 位置的观测值;

当观测值为偶数个时,中位数是第 位置的两个观测值之和的

R语言函数:median( )

3.众数(mode)

资料中出现次数最多的那个观测值或出现次数最多一组的中点值,称为众数,用 表示

4.几何平均数(geometric mean)

用G表示。资料中有n个观测值,则计算公式为:

R语言计算:exp^(mean( log (x)))      R语言log()函数默认底为e

5.加权平均数(weighted mean)

在有N个观测的样本中,观测数 出现 次,观测数 出现 次,观测数 出现 次,且 ,则:

6.加权几何均数:

R语言计算:exp^(sum(f*log(x))/sum(f))

1.极差(range)

又称为全距,是样本资料中最大值和最小值之差,一般用R表示

R语言计算:max(data) - min(data)

2.方差(variance)

又称为均方(mean square,MS)

样本方差计算公式:

总体方差计算公式:

R语言函数:var( )

3.标准差(standard deviation, Sd)

样本标准差:

总体标准差:

R语言函数:sd( )

4.四分位数间距 (inter-quartile range ,IQR )

IQR=P75−P25

适于偏态分布或分布未知资料,由于不受两端极大或极小数据的影响,四分位数间距比极差更为稳定,但仍未考虑每个观测值的变异。 常与中位数一起使用 ,综合反映数据的平均水平和变异程度,写成 M(P25, P75) 。

R语言函数:quantile( )

5.变异系数(coefficient of variability, CV)

%

在 度量单位不同 或者 均数相差悬殊 时使用。

函数主体可以是一系列表达式,这些表达式需要用大括号括起来:

function(param1, ..., paramN) {

expr1

.

.

.

exprM

}

讨论

函数的定义告诉R软件“用何种方式进行计算”。例如,R软件没有内置计算变异系数的函数,因此你可以定义函数如下:

>cv <- function(x) sd(x)/mean(x)

>cv(1:10)

[1] 0.5504819

第一行定义了名为cv的函数,第二行引用该函数,以1∶10作为其参数x的值。函数对参数应用函数主体中的表达式sd(x)/mean(x)进行计算并返回结果。

定义函数后,我们可以在任何需要函数的地方应用它,例如可以作为lapply函数的第二个参数(参见方法6.2):

>cv <- function(x) sd(x)/mean(x)

>lapply(lst, cv)

函数主体如果包含多行表达式,则需要使用大括号来确定函数内容的起始和结束位置。下面这一函数采用了欧几里德算法计算两个整数的最大公约数:

>gcd <- function(a,b) {

+ if (b == 0) return(a)

+ else return(gcd(b, a %% b))

+ }

R软件也允许使用匿名函数,匿名函数是没有函数名称但在单行的语句中很实用的函数。先前的例子中我们提到将cv函数作为lapply函数的一个参数,而若使用匿名函数直接作为lapply函数的参数,则能将原先的命令简化至同一行中:

>lapply(lst, function(x) sd(x)/mean(x))

由于本书重点不在于介绍R的编程语言,这里不对R函数编程的细微之处进行解释。下面给出几个需要注意的地方:

返回值

所有函数都有一个返回值,即函数主体最后一个表达式值。你也可以通过return(expr)命令给出函数的返回值。

值调用

函数参数是“值调用”——如果你改变了函数中的参数值,改变只是局部的,并不会影响该参数所引用的变量值。

局部变量

你可以简单地通过赋值来创建一个局部变量,函数结束后该局部变量会消失。

条件执行

R语法中包含if语句,更多详情可以使用help(Control)命令查看。

循环语句

链接: http://www.bio-info-trainee.com/4385.html

我做题的时候主要翻阅学习了《R语言实战》里统计相关内容。

需要掌握R内置数据集及R包数据集

鸢尾花(iris)数据集,包含150个鸢尾花的信息,共五列,分别为萼片长度(Sepal.Length)、萼片宽度(Sepal.Width)、花瓣长度(Petal.Length)、花瓣宽度(Petal.Width)和种类(Species)。前四列为定量数据,后一列种类为定性数据,是非连续的字符变量。

定量数据的集中趋势指标主要是:众数、分位数和平均数

定量数据的离散趋势指标主要是:极差,方差和标准差,标准分数,相对离散系数(变异系数),偏态系数与峰态系数

分组统计,最一开始是想将数据集分成三个数据框,重复之前函数,有几个方法:

或者不分开,之前对原数据集计算:

apply函数可以解决数据循环处理的问题,可以对矩阵、数据框、数组(二维、多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数形式给自定义的FUN函数中,并返回计算结果。

函数定义:

apply(X,MARGIN,FUN,...)

参数列表:

用来对list、data.frame进行循环,并返回和X长度同样的list结构作为结果集。

同lapply函数,多了2个参数simplify和USE.NAMES,返回值为向量,不是list对象。

类似sapply函数,提供了FUN.VALUE参数,用来控制返回值的行名。

类似sapply函数,第一个参数为FUN,可接受多个数据。

tapply函数用于分组的循环计算,相当于group by的操作。

函数定义:

tapply(X,INDEX,FUN,simplify,...)

参数列表:

只处理list类型数据,对list的每个元素进行递归遍历,如果list包括子元素则继续遍历。

R可以计算多种相关系数,包括Pearson相关系数、Spearman相关系数、Kendall相关系数、偏相关系数、多分格相关系数、多系列相关系数。cor()函数可以计算前三种相关系数,cov()函数可以计算协方差。

数据的标准化是指中心化之后的数据在除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差。scale()函数可以完成标准化。

mtcars数据集是32辆汽车在11个指标上的数据。

airway包是8个样本的RNA-seq数据的counts矩阵,这8个样本分成2组,每组是4个样本,分别是 trt 和 untrt 组。

t检验是一种可用于比较的假设检验。

理解t检验:一个年纪共有好多学生,需要研究他们的平均身高。这时,这批学生是我们 要研究的对象 ,即 总体 。从这个年纪中每个班级随机挑选10名同学,这部分同学则为 样本 ,通过样本来对总体的某个统计特征(比如上面研究的平均值、众数、方差等)做判断的方法为 假设检验 。

一个针对两组的独立样本t检验可以用于检验两个总体的均值相等的假设,检验调用格式为:

t.test( y ~ x, data )

其中y是一个数值型变量,x是一个二分变量。

t.test(y1,y2)

其中y1、y2为数值型向量。

现在还不能用自己的语言解释清楚,整合几篇写的比较详细的教程:

http://www.biye5u.com/article/R/2019/6399.html

https://www.jianshu.com/p/67be9b3806cd

统计这部分还是似懂非懂的状态,继续学习~

更多学习资源:

生信技能树公益视频合辑

生信技能树账号

生信工程师入门最佳指南

生信技能树全球公益巡讲

招学徒

...

你的宣传能让数以万计的初学者找到他们的家,技能树平台一定不会辜负每一个热爱学习和分享的同道中人