t检验算法及其在R语言中的实现

Python013

t检验算法及其在R语言中的实现,第1张

在进行 t 检验之前让我们先看看它的定义: t 检验法就是在假设检验时利用 t 分布 进行概率计算的检验方法。那问题来了,什么是 t 分布呢?

所以我们在进行 t 检验之前,应该对数据进行 正态性检验 以及 方差齐性检验 。

  t  检验可以分为单样本  t  检验和双样本  t  检验(见下图)。

单样本  t  检验步骤如下。

1. 提出假设

2. 计算 t  

3. 统计推断

看看R的结果:

①正态性检验结果

②  t  检验结果

p=0.3738>0.05,所以拒绝Ho,接受HA。

1.  提出假设

2.  计算  t

其中:

3.  统计推断

①方差齐性检验结果

②  t  检验结果

p-value = 0.07238>0.05,所以不能否定Ho。

步骤及算法 

1. 提出假设

2.  计算 t’

其中:

3.  统计推断

t  检验结果

p-value = 0.07238>0.05,所以不能否定Ho。

1.提出假设

2.计算 t

其中

3. 统计推断

#配对两样本T检验

t检验结果:

p-value = 2.548e-05 <0.01,所以否定Ho,接受HA。

[1]. 学生 t - 分布 (Wikipedia)

独立双样本t检验,首先假设我们的两组数据完全由独立抽样得来;t.test函数可以直接用于检验像sleep这样的长数据,列group则为样本的分组依据。

配对样本t检验,数据集为包含分组变量的数据框,那么程序将默认group=1的数据行中的第一行与group=2的数据行中的第一行相互匹配。

样本t检验,假设实验目的为检验列extra数据对应的总体均值是否为0。

t检验用于判断两个总体均值是否具有差异,来源于正态分布,t检验的应用条件是样本含量较小且满足正态、方差齐,单样本t检验是用于样本均数和已知总体均数之间的比较。

一般根据数据是否符合正态分布,选择合适的统计方法:

T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n<30),总体标准差σ未知的正态分布资料。t检验是用t分布理论来推论差异发生的概率, 从而比较两个平均数的差异是否显著。 它与 Z检验 、 卡方检验 并列。

其他进行正态性检验的函数 (如下函数都属于nortest包)

Lillie.test()

ad.test()

cvm.test()

pearson.test()

sf.test()

不同的函数可能会得到不同的结果。

对于不服从正态分布的数据,可以采用一些方法使它服从正态分布。

var.test只能用于两样本方差齐性检验

当数据不满足正态分布的时候,要进行t检验必须进行原始数据的变换。如取log,平方根,倒数, boxCox转换 等。

Wilcox秩和检验(又称Mann-Whitney U检验)是对原假设的非参数检验,在不需要假设两组样本数据为正态分布的情况下,测试二者数据分布是否存在显著差异,此检验适用于数据分布属于非正态性的分析对象,其适用范围相较于t检验广泛。

执行wilcoxon秩和检验(也称Mann-Whitney U检验)这样一种非参数检验 。t检验假设两个样本的数据集之间的差别符合正态分布(当两个样本集都符合正态分布时,t检验效果最佳),但当服从正态分布的假设并不确定时,我们执行wilcoxon秩和检验来验证数据集中mtcars中自动档与手动档汽车的mpg值的分布是否一致,p值<0.05,原假设不成立。意味两者分布不同。警告“无法精确计算带连结的p值“这是因为数据中存在重复的值,一旦去掉重复值,警告就不会出现。