R - t检验

1. 简介

T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n<30),总体标准差σ未知的正态或近似正态总体,它比较的是服从t分布的两组数据是否有差异。

2. 想一想是不是独立分组

3. 检验是否为正态分布

- qqplot

qqplot是用来检测两组数据分布是否相同的图形方式,如果量组数据分布相同,那么他们的qqplot将会是一条直线。

检验正态性qqplot一般步骤:

set.seed(5)
S <- rt(30, df = 2, ncp = 1)
s <- as.data.frame(S)
ggplot(data = s, aes(sample = S)) + geom_qq()+
 geom_qq_line(distribution = qnorm)

但,有时候用rt产生的t分布与正态分布的QQ图也不是一条直线。٩(๑❛ᴗ❛๑)۶

- Kolmogorov-Smirnov test

连续分布检验: 检验单一样本是否服从某一预先假设的特定分布的方法。

ks.test(x, y, ...,
 alternative = c("two.sided", "less", "greater"),
 exact = NULL)
  • 当y是数字时,H0:两数据集分布相同; 当y是字符串时,H0: 数据集x,是符合y所表示的分布的;

  • 结果:D值越小,越接近0,表示样本数据越接近T分布;如果p-value小于显著性水平α(0.05),则拒绝H0 。总的来说,D越小,P越大说明数据越符合已知分布。

  • 这个检验非常严格,如果两个正态分布的mean值不同,P值也会非常小,就会拒绝H0,认为两组数据来源不相同。

- Shapiro–Wilk test

是一种在频率上统计检验中检验正态性的方法,适用于大多数数值是单一的。

H0: 数据符合正态分布

shapiro.test ()

W值:W越小,越接近0,表示样本数据越接近正态分布

p值:如果p-value小于显著性水平α(0.05),则拒绝H0

- Anderson-Darling Test For Normality

检测待测数据是否与已知目标数据分布相同。

ad.test{ nortest}

- Statistical bootstrap methods

estimates the accuracy/sampling distribution of a statistic

boot{boot} 

- D'Agostino-Pearson normality test

if you have lots of repeated values

- Lilliefors normality test

mean and variance are unknown

- Spiegelhalter's T' normality test

powerful non-normality is due to kurtosis, but bad if skewness is responsible

- Jarque–Bera test

- Anderson–Darling test

- Cramér–von Mises criterion

- Pearson's chi-squared test

- Kullback–Leibler divergences

感觉选哪个检测方法都有风险,最好先做个qqplot看看。

4. 方差齐性

使用F检验来测试方差的齐性。 可以使用函数var.test()。

var.test(x ~ group, data = data)

5. 使用

  • 单样本T检验:用于比较样本数据与一个特定数值之间是否的差异情况 。
t.test(x, mu = 0, alternative = "two.sided")
  • 独立样本T检验:要求服从正态分布和总体方差相等(方差齐)。
# 数据储存为data.fram格式
t.test(x~ y, data = data) 
# 数据为两列表
t.test(x,y) 

配对样本T检验:要求两组样本量相等 ,最好具有时间先后格局的数据,如:吃药前血压和吃药后血压,处理前处理后等。

# 与上面一样
  t.test(x,y,  paired = T)

- tips: 同样的数据,选择配对比较与不配对比较的结果是不同的,一定对数据有较为清晰的认知,选择合适的方法;如果不知道该选两尾还是一尾,推荐更为保守的两尾,让数据自己说话。

6. 结果

  • p-value 决定是否拒绝0假设,如果低于0.05或者0.01,就需要拒绝零假设,接受备择假设(alternative hypothesis: true difference in means is not equal to 0)。
  • 如果高于0.05,择无法拒绝0假设,认为两个数组的值是相等的。
  • 如果想知道x的means比y的小还是大,加入参数alternative = "less"/"greater"

7. 只有平均数,标准差和样本量做Ttest

只有统计量的Ttest,BSDA包。

tsum.test(mean.x, s.x, n.x,
mean.y, s.y, n.y)

8.T检验的局限

T检验使用起来很方便,但经常误用的情况包括:

  1. 不考虑数据的正态性,只要是两组比较就直接使用t检验(如果不符合正态性,就要采用Wilcoxon检验);
  2. 将t检验用于多组实验设计中的两两比较,增加假阳性错误(此时应该使用ANOVA);
  3. 不考虑资料是否独立,采用独立资料进行t检验分析。

你可能感兴趣的:(R - t检验)