查看原文
其他

生物统计第一弹之统计基础概念

云天明 生信菜鸟团 2022-06-06

在系统学习统计学之前,有必要了解一些基本的统计学概念和术语,现在把这些概率与术语总结了一下,可能有不太完善的地方,仅供大家参考。

什么是统计学

统计学是收集、分析、展示和解释数据的科学。这里说的数据就是科学中的事实和证据,数据不仅限于数字,它也可能是图像或文字,实际上,任何信息都可以称为数据。

数据和变量

在了解这两个术语之前,先看一组数据,从这组数据出发,说明这几个术语。

这组数据是R中自带的数据集,即iris这个数据集,iris数据集的中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set。iris包含150个样本,对应数据集的每行数据。每行数据包含每个样本的四个特征和样本的类别信息,所以iris数据集是一个150行5列的二维表,我们先看一下这个数据集的结构,如下所示:

> str(iris)
'data.frame':   150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

再看一下前几条信息,如下所示:

> head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

从上面的这两个结果,我们可以得到这些信息:

第一,这个数据集一共有150行,5列。

第二,每1列的名称分别为Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies,它们分别表示鸢尾花的花萼长度,花萼宽度、花瓣长度,花瓣宽度,种属,也就是说第1行中一共有这5个信息,我们把这5个信息称为变量(variable)。这里需要说明一下的是,变量(variable)在计算机/数据库等领域也叫属性(attribute)、特征(feature)、特性(characteristic)、字段(field)等等。

再回到iris这个数据集中。

其中,我们把种属(Species)这个信息称为定性变量(qualitative variable),定性变量取的值称为水平(level)类(class)。定性变量有其它的教材中也会称为分类变量(categorical variable)、属性变量(attributives variable)、名义变量/标称变量(nominal variable)或维度(dimension)。定性变量的例子除了种属外,还有其他的例子,例如我们常见的性别,颜色等,在有些情况下,定量变量也会按照定性变量去处理,例如,为了调查方便,我们在问卷中可以只问高收入、中收入还是低收入,而不是问具体多少钱,这种定性变量还能进行排序,它们也常常称为定序变量(ordinal variable)

再看其它的4个变量,它们是用具体的数字表示,这些变量称为定量变量(quantitative variable)。定量变量还能分为连续型变量(continuous variable)离散型变量(discrete variable)

连续型变量的例子有身高、体重、热量、速度、长度等,它们的取值 是实数轴的某一个区间或者是某些区间集合中的所有可能点的变量。

离散型变量的例子有,某种事件发生的次数,例如抛5次硬币,在描述有几次正面朝上的时候,只可能是0次,1次,2次,3次,4次,5次,而不可能是1.5次这种小数,离散型变量只能取正整数或0。

还看上面的案例,整个iris这个数据集中,除了第1行的变量名称外,剩下的内容则是与这些变量对应的数据(data),可以把数据看成变量的观测值,或者是试验结果,例如,身高是一个变量,测量一个人的身高,就好比一次试验,可观测到一次试验结果,就是观测值(observation)。这里还要提一下,观测值(observation)在计算机/数据库领域也叫记录(record)、对象(object)、向量(vector)、模式(pattern)、事件(event)、例(case,instance)、样本(sample)、或项、实体(entity)等等。

我们一般所说的数据是一个集合名词,每一个数字包含很多观测值,每个观测值也称为一个数据点(data point, point)或例(case)。就以这个iris的数据集为例,它的每1列代表一个变量,而每1行则为一个对象关于各个变量的观测值,簇也把这种数据方阵的每一行叫做一个观测(值),就像下面的样子,它就是一个观测:

mark

这也是一个观测值,如下所示:

mark

概率和随机变量

在统计学研究中,有很多对象都被认为具有随机性(randomness),随机的事情也有规律的,例如我们抛一个硬币,在硬币落在地面之前,硬币朝哪面我们是不知道的,它是随机的,事先无法准确地预测。但是,只要这个硬币是正常的,没问题的,那么我们就知道,硬币朝上与朝下的概率基本上是相等的。

在这里,硬币的朝上与朝下的这个变量,它就是随机变量(random variable)。而一个随机变量的性质则完全被与其相关的概率或概率分布决定。那什么是概率?

一个事件(event)的概率(probability)是该事件发生可能性的一个数量度量,它的聚会范围是0到1,也可能是0或1.当一个事件的概率接近1时,则说明这个事件很可能发生;如果概率接近0,则说明不太可能发生,如果概率为0.5,那么说明该事件发生和不发生的可能性一样。

简单来说,概率称量某个事件出现的机会,有些概率在某种假定条件下可以算出来,例如抛硬币,得到正面朝上与反面朝上的概率都是0.5,这种可能计算概率的事件称为等可能事件(equally likely event),这种可能是假定的,对于硬币来说,就是假定正面与反面朝上的㜅一样,如果我们抛了一千次,其中得到正面与反面朝上的频率或相对频数(relative frequency)都接近0.5,那么就说明这个硬币是公平的,是正常的,这些事件理论上可能通过重复试验中出现的频率来计算其发生的概率。

不过有些概率是无法用重复计算来估计的,例如有人认为,最近3个月内中东地区发生大规模军事冲突的概率是80%,这显著无法用重复试剂来估计,这只是他们基于过去的经合和掌握的信息形成的信息,这种概率称为主观概率(subjective probability)

利用R产生随机数

在进行抽样时,或者是模拟某个分布时,我们常常要用到随机数,现在都是用软件来生成随机数,虽然这种随机数不晃真正的随机数,但是已经足够使用了,使用软件生成的这种随机数称为伪随机数(pseudo-random number),现在介绍一下用R来如何生成随机数。

现在生成10个2到3之间的,服从均匀分布的伪随机数,如下所示:

> set.seed(1000)
> runif(10,2,3)
 [12.327879 2.758846 2.113936 2.690755 2.516402 2.067738 2.738715 2.583535
 [92.215771 2.256122

现在解释一下,先看runif()这个函数,在R中,这个函数前面的r表示随机,unif表示服从均匀分布,类似的还有rnorm(),它的功能类似,只是它生成的是服从正态分布的随机数,其中norm就是正态分布的意思。

现在,再看set.seed(1000)的作用是保证你随机生成的数字前后一致,如果它的参数就是一个数字,这个数字可以随意指定,括号里的数字只要一致,那么每次生成的随机数就一致,如果不使用这个函数,那么我们每次运行runif(10,2,3),它生成的随机数就不一样,现在看一下下面的代码:

> runif(10,2,3# 不指定set.seed()
 [12.567518 2.049710 2.561620 2.966179 2.509945 2.700937 2.020349 2.783569
 [92.584397 2.317293
> runif(10,2,3# 再次运行runif(10,2,3),生成的结果就不一样
 [12.996208 2.531047 2.109908 2.633212 2.797929 2.712990 2.702835 2.562833
 [92.258873 2.506937
> set.seed(1000# 指定set.seed(1000)
> runif(10,2,3# 生成的结果就与前面的一样
 [12.327879 2.758846 2.113936 2.690755 2.516402 2.067738 2.738715 2.583535
 [92.215771 2.256122

总体(population)

根据研究目的而确定的同质观察单位的全体,更确切地说,它是同质的所有观察单位某种观察值的集合,例如调查某地2008年7岁正常女童的身高,而其中的观察单位(个体)则是每个女童。由于这里的总体明确规定了空间、时间、人群范围内有限个观察单位,因此称为有限总体(finite populaton)。而在一些情况下,总体的概念则是设想的或抽象的,例如研究某治疗慢性前列腺增生的药物的疗效,这里的总体的同质基础是慢性前列腺增生患者,该总体应包括用该药治疗的所有前列腺增生症患者的治疗结果,没有时间和空间的限制,其观察单位的全体数只是理论上存在的,因此可以视为“无限”,称为无限总体(infinite populaton)

为了降低成本,因此在医学研究中通常彩从总体中抽取样本(sample)的方法,根据样本信息来推断总体特征,这种方法叫抽样研究(sampling research),从总体中抽取部分观察单位的过程称为抽样(sampling)

为了保证样本的代表性,抽样必须遵循随机化(randomization)原则。从总体中随机抽得的部分观察单位,其实际测量的集合就是样本,该样本中包含的观察单位数称为该样本的样本含量(sample size)。例中从某地2008年7岁正常女童中,随机抽取了110名女童,测量身高,得到了110名女童的身高测量值,组成了样本;也可能从就诊的前列腺增生症患者中随机抽取了100名患者,并观察药物的治疗效果,就组成了治疗效果的样本。

统计推断

在实际研究工作中,受条件所限,在研究中很难得到整个总体,往往只能得到总体中的一个子集,即实际工作中往往按随机的方式从总体中抽取若干有代表性的同质个体所构成的一个样本(sample)进行研究,这就需要通过样本有限的、不确定的信息来歓有关总体的特征,这就是统计推断(statistical inference),简言之,统计推断是指由样本所提供的信息对总体数量规律做出推断。

数据整体的一般描述

极差

又叫全距(Range),是用来表示统计资料中的变异量数(measures of variation),其最大值与最小值之间的差距;即最大值减最小值后所得之数据。

均值

通常情况下,我们所说的均值都是所有的数据之和除以数据的数目,但是,在一些特殊的情况下,会指明均值的类型,例如是算术均值,还是几何均值。

算术均值(arithmetic mean)

算术平均数是对集中趋势的最常用的描述。我们对某个量进行了n次观测,把测量到的数值分别记为X1, X2,…, Xn,那么要得到算术平均数,只需把X1到Xn加起来,再除以数据的个数n。数学公式为:

mark

几何均值(geometric mean)

几何平均数是指n个观察值连乘积的n次方根。

中位数(median)

中位数是把该变量所有取值从小到大(或从大到小)排序,取最中间的一个(例如总共有21个数,则取排行第11的)。如果样本量是偶数,则取中间两个数的平均。

众数(mode)

一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。用M表示。 理性理解:简单的说,就是一组数据中占比例最多的那个数。

例如:2,3,3,3,4,5的众数是3。 但是,如果有两个或两个以上个数出现次数都是最多的,那么这几个数都是这组数据的众数。 例如:2,2,3,3,4,5的众数是2和3。 其次,如果所有数据出现的次数都一样,那么这组数据没有众数。 例如:2,3,4,5没有众数。

百分位数(percentile)

如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。

百分位数的计算

w<-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0# 建立向量w
quantile(w) # 给出w的四分位数
quantile(w,probs=seq(0,1,0.2),na.rm=FALSE) # 给出向量w的20%,40%分位数
quantile(w,0.80# 求w的80%分位数
quantile(w,0.75)- quantile(w,0.25#半极差计算

结果如下:

> quantile(w) # 给出w的四分位数
   0%   25%   50%   75%  100% 
47.40 57.85 63.50 66.75 75.00 
> quantile(w,probs=seq(0,1,0.2),na.rm=FALSE) # 给出向量w的20%,40%分位数
   0%   20%   40%   60%   80%  100% 
47.40 56.98 62.20 64.00 67.32 75.00 
> quantile(w,0.80) # 求w的80%分位数
  80% 
67.32 
> quantile(w,0.75)- quantile(w,0.25) #半极差计算
75% 
8.9 

另外一种方法是用cumsum()函数来计算:

cumsum(round(table(w)/length(w)*100,2)) # cumsum表示的是累积之和

结果如下所示:

> cumsum(round(table(w)/length(w)*100,2)) # cumsum表示的是累积之和
  47.4     50   56.9     57   58.7   62.2   63.5     64   66.6   66.9     69     72     75 
  6.67  13.34  20.01  26.68  33.35  46.68  53.35  66.68  73.35  80.02  86.69  93.36 100.03 

四分位数(Quartile)

统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。第一,四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。第二,四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。第三,四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。第三,四分位数与第一四分位数的差距又称四分位距(InterQuartile Range,IQR)。四分位距的优点在于,与全距(极差)相比,较少受异常值的影响。 R中用来显示四分位数的函数是quantile,另外用boxplot可以绘制出某个数据集的箱线图。

箱线图结果boxplot(w)如下所示:

条睛线图的解读:最下面是下界,最上面的圆圈是上界,上界的圆圈是异常值,中间矩形的底边是下分位数,上边是上四分位数,中间的粗线是中位数,箱体的高是四分位距。

数据离散程度的描述

对于一批数据来说,我们有时候需要看一下这批数据的波动分散程度如何,这就需要一些指标。

变异

医学研究的对象虽功能复杂的有机作整体。不同的个体在相同的条件下,对外因环境因素可以发生不同的反应,这种同质基础上个体特征值之间的差异,称为变异(variation)(医学统计学及SAS应用,王炳顺)。

离均差

每一个变量值X与均数μ的差值,即离均差(X-μ)。

离均差平方和

由于离均差有正有负,最终所有离均差的和即(X-μ)为0,因此离均差的和无法描述一组数据的变异大小。因此将离均差平方后相加得到平方和Var(X)=E(X-μ)^2,这就是离均差平方和(sum of squares of deviations from mean)。

总体方差

虽然离均差平方和消除了正负的影响,但是如果变量值N越大,则离均差平方和也越大,为此,将离均离平方和除以N就得到了方差,方差用δ^2表示,计算公式为:

mark

另外,方差(variance)也称均方差(mean square deviation)

样本方差

上面的是总体方差,如果是样本方差,那么总体均值μ是未知的,因此,这个时候就要用样本的均值来替代总体的均值,这个时候也不能用δ^2来表示样本方差,需要用来表示方差,此外,N值也要减去1,公式就如下所示:

mark

样本方差与总体方差的分母不一样,这是因为样本方差的分母使用n-1才更接近于总体的参数,这是无偏估计(unbiased estimator),如果直接使用n,那就是有偏估计(biased estimator ),不过当样本数量大到一定程度时,分母是n-1和n差别不大,具体的证明过程这里略过,网上很多。

标准差

标准差(standard deviation)是方差的正平方根,其单位与原变量值的单位相同,总体标准差用δ表示,计算公式为:

mark

样本标准差

样本标准差的公式如下所示:

mark

标准差计算函数

在Excel中计算方差的公式为STDEV.PSTDEV.S其中,STDEV.P计算时,认为你给出的数据是总体,因此它的分母为N,而STDEV.S计算时,认为你给出的数据是样本,因此它的分母为N-1。在R中,用到的函数为sd,默认的就是样本,因此分母为N-1。

标准误与标准差的区别

在医学统计中,还经常遇到标准差与标准误。例如我们要调查地区A中10岁男孩的身高。如果全部都统计下来,直接测是最准确的数据。但是成本高,不现实。因此需要进行采样,一次测量100个男孩的身高,求这一次的均值M1与标准差S1,如果采样10次,每次都取100人,我们会得到10个均值,分别记为M1,M2,M3…M10,对这10个均值再求一个均值M以及标准差S,其中这个标准差S就是标准误(standard error),即均值的标准误差(standard error of mean)。

变异系数(coefficient of variation)

简称为CV,标准差与均值的比值。公式为:

mark

参考资料

医学统计学.第四版.孙振球

小白统计.冯国双

为什么样本方差(sample variance)的分母是 n-1?

吴喜之. 统计学:从概念到数据分析[M]. 高等教育出版社, 2008.


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存