T test, Z test, or MWU test (Wilcoxon rank-sum test)?

T test, Z test和MWU test的原理与代码实现,如何选择他们?

Posted by Chunfu Shawn on 2022/10/21
Last Updated by Chunfu Shawn on 2022/10/21

一、T test

1、概念

t 检验也称为 Student t 检验,它是一种使用假设检验来评估一个或两个总体均值的工具,用于统计量服从正态分布,但方差未知的情况。t 检验可用于评估某个组是否与已知值有差异(单样本 t 检验),两个组是否彼此有差异(独立双样本 t 检验),或成对测量值中是否存在显著差异(成对或非独立样本 t 检验)。

2、适用情况

  1. 要求样本服从正态分布或近似正态分布(为什么t检验要满足正态?),不然可以利用一些变换(取对数、开根号、倒数等等)试图将其转化为服从正态分布是数据,如若还是不满足正态分布,只能利用非参数检验方法。不过当样本量大于30的时候,可以认为数据近似正态分布。(但样本量大于30时建议使用Z检验)
  2. 总体方差未知,否则就可以利用Z检验(也叫U检验,就是正态检验(不是MWU检验))
  3. 独立性、方差齐性(两小样本所对应的两总体方差相等,一般用F检验
  4. 小样本(<30)(大样本需要用Z检验)

为什么小样本用T检验?从抽样研究所得的样本均数特点来看,只要样本量>60,(无论总体是否服从正态分布)抽样研究的样本均数服从或者近似服从正态分布;而如果样本量较小(参考样本量<100),抽样分布随着样本量的减小,与正态分布的差别越来越大。此时需要用小样本理论来解释样本均数的分布——而t分布就是小样本理论的代表。因此,小样本的检验需要用到T检验。

3、用途

t检验最常见的四个用途:

  1. 单样本均值检验(One-sample t test)用于检验 总体方差未知、正态数据或近似正态的 单样本的均值是否与已知的总体均值相等
  2. 两独立样本均值检验(Independent two-sample t test)用于检验 两对独立的正态数据或近似正态的样本的均值是否相等,这里可根据总体方差是否相等分类讨论
  3. 配对样本均值检验(Dependent t test for paired samples)用于检验 一对配对样本的均值的差 是否等于某一个值
  4. 回归系数的显著性检验(t-test for regression coefficient significance)用于检验 回归模型的解释变量对被解释变量是否有显著影响

4、单样本均值检验(One-sample t test)

检验零假设为一群来自正态分配独立样本xi之总体期望值μμ0可利用以下统计量

其中为样本平均数,

为样本标准差n样本数。该统计量t在零假设:μ=μ0为真的条件下服从自由度为n− 1的t分布

5、配对样本均值检验(Dependent t test for paired samples)

配对样本t检验可视为单样本t检验的扩展,不过检验的对象由一群来自正态分配独立样本更改为两配对样本之观测值之差。

若两配对样本之差为独立且来自正态分配,则di之总体期望值μ是否为μ0可利用以下统计量

其中为配对样本差值之平均数,为配对样本差值之标准差n为配对样本数。该统计量t在零假设:μ=μ0为真的条件下服从自由度为n− 1的t分布

6、两独立样本均值检验(Independent two-sample t test)

(1)同质方差假设 (Homoscedasticity)、样本数相等

若两独立样本具有相同之样本数n,且来自两个总体方差相同(同质方差假设)的正态分配,则两总体之期望值差μ1 - μ2是否为μ0可利用以下统计量

其中为两样本各自的平均数,为样本之共同方差。该统计量t在零假设:μ1-μ2=μ0为真的条件下服从自由度为2n− 2的t分布

(2)同质方差假设 (Homoscedasticity)、样本数不相等

若两独立样本具有不相同之样本数n1与n2,且来自两个总体方差相同(同质方差假设)的正态分配,则两总体之期望值之差μ1 - μ2是否为μ0可利用以下统计量

其中,其中为两样本各自的平均数,

为两样本共同之方差。该统计量t在零假设:μ1-μ2=μ0为真的条件下服从自由度为n1+n2− 2的t分布

(3)异方差假设 (Heteroscedasticity)

若两独立样本x1ix2j具有相同或不相同之样本数n1与n2,且两者总体方差不相等(异方差假设)的正态分配,则两总体之期望值之差μ1 - μ2是否为μ0可利用以下统计量

其中,其中为两样本各自的平均数,分别为两样本之方差。该统计量t在零假设:μ1-μ2=μ0为真的条件下服从自由度为t分布。这种方法又常称为Welch检验。

7、回归系数的显著性检验(t-test for regression coefficient significance)

以简单线性回归为例,模型假设:

其中xii = 1, ..., n为已知,αβ为未知系数,εi残差独立且服从期望值0且方差σ2未知的正态分布,yii = 1, ..., n为观测值。我们可以检验回归系数β是否相等于特定的β0,通常使β0 = 0以检验xiyi是否存在解释能力,在此例(简单线性回归模型)即为检验回归式之斜率是否为零。

最小二乘法之估计值,为最小二乘法估计值之标准误差,则

在零假设为β = β0的情况下服从自由度为n − 2之t分布,此检验统计量被称作“t比率 (t-ratio)”,其中

由于为残差(即估计误差),而为残差之离均平方和,我们可改写t

8、R代码

RDocumentation-t.test

t.test: Student's t-Test

(1) Description:

Performs one and two sample t-tests on vectors of data.

(2) Usage:

1
2
3
4
5
6
7
8
t.test(x,)
# S3 method for default
t.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95,)
# S3 method for formula
t.test(formula, data, subset, na.action,)

(3) Arguments:

x: a (non-empty) numeric vector of data values.

y: an optional (non-empty) numeric vector of data values.

alternative: a character string specifying the alternative hypothesis, must be one of "two.sided" (default), "greater" or "less". You can specify just the initial letter.

mu: a number indicating the true value of the mean (or difference in means if you are performing a two sample test).

paired: a logical indicating whether you want a paired t-test.

var.equal: a logical variable indicating whether to treat the two variances as being equal. If TRUE then the pooled variance is used to estimate the variance otherwise the Welch (or Satterthwaite) approximation to the degrees of freedom is used.

conf.level: confidence level of the interval.

formula: a formula of the form lhs ~ rhs where lhs is a numeric variable giving the data values and rhs a factor with two levels giving the corresponding groups.

data: an optional matrix or data frame (or similar: see [model.frame](https://www.rdocumentation.org/link/model.frame?package=stats&version=3.6.2)) containing the variables in the formula formula. By default the variables are taken from environment(formula).

subset: an optional vector specifying a subset of observations to be used.

na.action: a function which indicates what should happen when the data contain NAs. Defaults to getOption("na.action").

(4) Details

The formula interface is only applicable for the 2-sample tests.

alternative = "greater" is the alternative that x has a larger mean than y.

If paired is TRUE then both x and y must be specified and they must be the same length. Missing values are silently removed (in pairs if paired is TRUE). If var.equal is TRUE then the pooled estimate of the variance is used. By default, if var.equal is FALSE then the variance is estimated separately for both groups and the Welch modification to the degrees of freedom is used.

If the input data are effectively constant (compared to the larger of the two means) an error is generated.

二、Z test

1、概念

Z分布:即为正态分布 (normal distribution);根据中心极限定理,通过抽样模拟试验表明,在正态分布总体中以固定 n 抽取若干个样本时,样本均数的分布仍服从正态分布,即。所以,对样本均数的分布进行Z变换,也可变换为标准正态分布

Z检验:根据Z分布,来检验一个样本平均数与一个己知的总体平均数的差异是否显著;来检验来自两个的两组样本平均数的差异性,从而判断它们各自代表的总体的差异是否显著。也叫U检验(不是MWU检验)

2、适用情况

  1. 要求样本服从正态分布
  2. 总体标准差已知或者样本容量足够大(>30)

3、原理与公式

通过公式将普通正态分布转换成标准正态分布计算得到的数值称为Z分数。对于容量比较大(大于100)的数据集,如果其满足正态分布,那么根据上面公式求出数据集中每个数值的Z分数,由这些Z分数构成一个新的序列,这个序列就是Z分布序列。

有了Z分布,Z分数的计算公式不仅可以用作普通正态分布的标准化,还被用于判断均值差异显著性的Z检验,也就是下面的情况:

1、 总体标准差已知或样本容量大于30比较两个样本的均值是否有显著性的差异,检验公式如下:

其中:是两样本均值;是两个样本的抽样总体的均值,检验时假设两个总体的均值相等,所以差为0;是两个总体的标准差;是两个样本的标准差;

原理:零假设认为的抽样分布需要符合正态分布,

figure1

所以Z分数:要符合标准正态分布,如果Z分数位于标准正态分布的左右2.5%的区间内(双边检验),则有95%的信心认为零假设错误,的抽样分布不符合正态分布,即不是来源同一总体(即α = 0.05,p-value < 0.05)。

2、 总体标准差已知或样本容量大于30,比较某个总体的均值与某个常数是否有显著性的差异,检验公式如下:

其中为样本均值;为假设与样本均值无显著性差异的常数;为总体标准差;为样本标准差;

原理如上;

注意:对比 Z分数:,Z检验统计量为: 或,可以发现分母不太一样,这是因为Z分数的分母是数据的标准差,而Z统计量分母则是抽样得到的部分数据均值的标准差。叫做标准误,参考:标准差与标准误区别; 专门衡量样本均值的标准差。当总体标准差未知是,用样本标准差替代。 样本标准差公式的分母是;而不是总体标准差公式的;这是因为一般样本的标准差都会小于总体,因此特地除以n-1来对总体标准差进行无偏估计。【n-1指的是自由度】,参考:为什么样本方差(sample variance)的分母是 n-1?

4、例子

(注意:此图中n=16,有误)

5、R代码

z.test():BSDA包,调用格式:

1
z.test(x, y = NULL, alternative = "two.sided", mu = 0, sigma.x = NULL, sigma.y = NULL, conf.level = 0.95)

x,y为样本数据,单样本时忽略y;alternative选择检验类型;mu为检验的均值;sigma.x,sigma.y为标准差;conf.level为置信水平

三、M-Whitney U test (Wilcoxon rank-sum test)

M-Whitney U test也叫Wilcoxon rank-sum test;详情见****Wilcoxon 检验之 rank-sum 与 signed-rank中的**Wilcoxon rank-sum test检验,可以进行单样本和双样本的检验;

四、三种test的适用条件及如何选择:

figure3

1、T检验还是MWU检验

  1. 当两组数据服从正态分布且方差等同时,T检验比MWU检验统计效能更高(事实上T检验一类错误也控制到了0.05以内);
  2. 当两组数据服从正态分布但方差不等同且方差相对于均值较大时,T检验比MWU检验的统计效能更低(但是事实上MWU检验的一类错误超过了0.05);
  3. 当两组数据服从正态分布但方差不等同且方差相对于均值较小时,T检验比MWU检验统计效能更高(事实上T检验一类错误也控制到了0.05以内);
  4. 从Log-normal和Weibull分布中抽取样本,发现T检验比MWU检验的统计效能更低(但是事实上MWU检验的一类错误超过了0.05)。

综上分析,从一类错误和统计效能的角度综合考虑,不管数据是否服从正态分布,不管方差是否等同,T检验相比于MWU检验更优。但是在数据呈现极端偏态时,不建议使用t检验。

注明:在数据不服从正态分布时,MWU检验比T检验统计效能更高,但是从控制一类错误的角度讲,如果MWU检验一类错误能控制到0.05以下,采用MWU检验更优,如果不能控制到0.05以下,还是要考虑用T检验。

2、T检验还是Z检验

  1. 如果样本数小于30,用T test;
  2. 如果总体方差未知,用T test;
  3. 否则用Z test。

Z分布,标准正态分布。当样本数小于30的时候样本统计量就不符合正态分布了,而是符合t分布,T分布(见下图,引用wiki百科的图),胖瘦随着v(教科书称之为自由度)的增加,由胖变瘦,形态最终趋向标准正态分布。

figure4

Z分布与T分布,是两个分布,概率函数公式的存在差异,T分布较Z分布(标准正态分布)多了一个自由度的变量,惩罚小样本,增加其拒绝的难度因而小样本采用T检验,优于Z检验

t统计的值和z统计的区别是一个要查z统计值表,另一个是要查t统一值表。

为何T检验中要用到方差齐性检验,而Z检验不用?:要比较两个独立样本均值是否相等,在已知总体方差的情况下,可以基于正态分布使用Z检验,这时候根本无需方差养性,差不齐也是可以的。如果总体方差未知,则统计量符合T分布,T分布有一个自由度参数需要预先知道,否则概率无法计算。差齐和不齐有不同的自由度计算方法,如果方差齐,则自由度非常好计算,组是一个非常精确的自由度,而方差不齐计算出来的自由度是一个渐近值, 不是太准确。所以两独立样本T检验就出现了一个方济性的一个假设。我想说的是,两独立样本T检验你根本无需太过关注方差齐性, 因为方差齐和不齐都有对应的计算方法。

五、参考

  1. Z检验-统计学
  2. 一文详解t检验
  3. T检验-统计学
  4. 维基百科-T检验
  5. RDocumentation-t.test
  6. Z检验与T检验的区别