各类统计方法R语言实现(二)​

各位小伙伴们大家好,今天是我们的系列推文“各类统计方法R语言实现”第二篇,今天介绍的主要内容有:正态性检验、方差齐性检验、t检验、近似t检验。

t检验亦称student t检验,是目前研究最常用的统计方法了,主要用于样本含量较小(例如n < 60),总体标准差σ未知的正态分布。t检验学习重点是各类检验方法的用途、使用条件和注意事项。

简介

此处选用的数据集仍是R语言自带的mtcar数据集,具体介绍见上次推文:各类统计方法R语言实现(一)

t检验按照实验设计可分为:

1、单样本t检验:已知样本均数与总体均数比较,总体均数一般为理论值、标准值等。

2、配对样本t检验:配对设计的计量资料。

3、两独立样本t检验:完全随机设计两样本均数的比较。

其中单样本t检验需要总体数据需要服从正态分布、配对样本t检验需要每对数据差值的总体服从正态分布、两独立样本t检验需要满足两总体服从正态分布且方差齐。

因此进行两独立样本t检验之前,需要进行正态性检验和方差齐性检验,若不服从正态分布,可考虑使用非参数检验;若服从正态分布但不服从方差齐性,则可使用近似t检验。

data(mtcars)
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
#计算描述统计分析

mtcars$cyl<-as.factor(mtcars$cyl)
mtcars$vs<-as.factor(mtcars$vs)
mtcars$am<-as.factor(mtcars$am)
mtcars$gear<-as.factor(mtcars$gear)
mtcars$carb<-as.factor(mtcars$carb)

#计算描述统计分析
summary(mtcars)
##       mpg        cyl         disp             hp             drat      
##  Min.   :10.40   4:11   Min.   : 71.1   Min.   : 52.0   Min.   :2.760  
##  1st Qu.:15.43   6: 7   1st Qu.:120.8   1st Qu.: 96.5   1st Qu.:3.080  
##  Median :19.20   8:14   Median :196.3   Median :123.0   Median :3.695  
##  Mean   :20.09          Mean   :230.7   Mean   :146.7   Mean   :3.597  
##  3rd Qu.:22.80          3rd Qu.:326.0   3rd Qu.:180.0   3rd Qu.:3.920  
##  Max.   :33.90          Max.   :472.0   Max.   :335.0   Max.   :4.930  
##        wt             qsec       vs     am     gear   carb  
##  Min.   :1.513   Min.   :14.50   0:18   0:19   3:15   1: 7  
##  1st Qu.:2.581   1st Qu.:16.89   1:14   1:13   4:12   2:10  
##  Median :3.325   Median :17.71                 5: 5   3: 3  
##  Mean   :3.217   Mean   :17.85                        4:10  
##  3rd Qu.:3.610   3rd Qu.:18.90                        6: 1  
##  Max.   :5.424   Max.   :22.90                        8: 1

正态性检验

使用Shapiro-Wilk法

shapiro.test(mtcars$mpg)
## 
##  Shapiro-Wilk normality test
## 
## data:  mtcars$mpg
## W = 0.94756, p-value = 0.1229

可以看到结果中p>0.05,服从正态分布。

还可使用图示法,绘制QQ图,加上95%置信区间

##绘制QQ图
library(car)
## Loading required package: carData
qqPlot(lm(mpg~am,data = mtcars),stimulate = TRUE, main="qq plot", col="blue", col.lines="red")

img

## Toyota Corolla  Maserati Bora 
##             20             31

结果大致呈一条直线,数据落在95%置信区间范围内则说明大致服从正态分布

方差齐性检验

方差齐性检验的方法有很多,本节主要介绍以下三种:

Bartlett检验:需要数据服从正态分布

Levene检验:不依赖总体分布具体形式,更为稳健,因此更常用。

Fligner-Killeen检验:不依赖总体分布具体形式。

##绘制箱线图,
plot(mpg~am,data = mtcars)

img

##Bartlett检验
bartlett.test(mpg~am,data = mtcars)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  mpg by am
## Bartlett's K-squared = 3.2259, df = 1, p-value = 0.07248

可以看到结果中p>0.05,方差齐。

##Levene检验
leveneTest(mpg~am,data = mtcars)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value  Pr(>F)  
## group  1  4.1876 0.04957 *
##       30                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

可以看到结果中p<0.05,方差不齐。

##Fligner-Killeen检验
fligner.test(mpg~am,data = mtcars)
## 
##  Fligner-Killeen test of homogeneity of variances
## 
## data:  mpg by am
## Fligner-Killeen:med chi-squared = 4.4929, df = 1, p-value = 0.03404

可以看到结果中p<0.05,方差不齐。

t检验

##单样本t检验,mu表示的是总体平均数
t.test(mtcars$mpg,mu=20)
## 
##  One Sample t-test
## 
## data:  mtcars$mpg
## t = 0.08506, df = 31, p-value = 0.9328
## alternative hypothesis: true mean is not equal to 20
## 95 percent confidence interval:
##  17.91768 22.26357
## sample estimates:
## mean of x 
##  20.09062

p>0.05,表示已知样本均数与总体均数相等

##配对t检验
length(mtcars$mpg)
## [1] 32
mpg1<-mtcars$mpg
mpg2<-mtcars$mpg+rnorm(32, mean = 5, sd = 1)

t.test(mpg1,mpg2,paired = T)
## 
##  Paired t-test
## 
## data:  mpg1 and mpg2
## t = -38.226, df = 31, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -4.962350 -4.459653
## sample estimates:
## mean of the differences 
##               -4.711002

p<0.05,结果有统计学差异

##两独立样本t检验
t.test(mpg~am,data = mtcars, paired = FALSE, var.equal = T)
## 
##  Two Sample t-test
## 
## data:  mpg by am
## t = -4.1061, df = 30, p-value = 0.000285
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -10.84837  -3.64151
## sample estimates:
## mean in group 0 mean in group 1 
##        17.14737        24.39231

##两独立样本近似t检验(Welch法)
t.test(mpg~am,data = mtcars, paired = FALSE, var.equal = F)
## 
##  Welch Two Sample t-test
## 
## data:  mpg by am
## t = -3.7671, df = 18.332, p-value = 0.001374
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -11.280194  -3.209684
## sample estimates:
## mean in group 0 mean in group 1 
##        17.14737        24.39231

以上代码整理汇总

p1<-shapiro.test(mtcars$mpg[mtcars$am == 0])$p.value
p2<-shapiro.test(mtcars$mpg[mtcars$am == 1])$p.value
varp3<-leveneTest(mpg~am,data = mtcars)$`Pr(>F)`[1]

ifelse(p1>0.05|p2>0.05,
       ifelse(varp3>0.05,t.test(mpg~am,data = mtcars, paired = FALSE, var.equal = T)$p.value,
              t.test(mpg~am,data = mtcars, paired = FALSE, var.equal = F)$p.value),
       wilcox.test(mpg~am,data = mtcars,correct = FALSE)$p.value)
## [1] 0.001373638

ifelse(p1>0.05|p2>0.05,
       ifelse(varp3>0.05,print("两独立样本t检验"),
              print("两独立样本近似t检验(Welch法)")),
       print("wilcox秩和检验"))
## [1] "两独立样本近似t检验(Welch法)"
## [1] "两独立样本近似t检验(Welch法)"

可以看到此处输出的是两独立样本近似t检验(Welch法)的结果。

好了,今天的R语言实现统计方法系列推文暂时告一段落,我们下次再见吧!

小伙伴们如果有什么统计上的问题,或者如果想要学习什么方面的生物信息内容,可以在微信群或者知识星球提问,没准哪天的推文就是专门解答你的问题哦!

(0)

相关推荐

  • 一个函数带你领略数据的置信区间

    " No one konws everything, and you don't have to."   --free傻孩子 "R数据分析"专题·第3篇   编 ...

  • 《新英格兰医学杂志》论文统计解读:如何计算中位数差值的置信区间

    置信区间很重要. 无论是均数.中位数.率的置信区间,都应该在统计分析结果中强化.均数的置信区间一般的统计分析软件都可方便计算.比如SPSS软件,统计描述时会给出均数的95%置信区间,t检验时会给出均数 ...

  • 技术贴 | R语言菌群Alpha多样性分析和绘图

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 箱型图(Boxplot)或者盒图是一种能同时展示一组或多组数据的极值.四分位数.中位数和离群值,显示数据离散情况的统 ...

  • 如何一条代码优雅的计算任意数量的线性回归图表

    写在前面 回归,是我们经常用到的分析手段,对于结果的确定比差异分析和相关分析都要更加深入,所以无论是大小文章,都可以看到回归的影子. 今天我来带大家,仅仅需要一条代码,就将这个分析做的透明,透彻,审稿 ...

  • 假设检验的几种常见方法

    前言 Z检验 T检验 独立样本t检验 配对样本t检验 单样本t检验 前言 在这篇文章中,我不会具体去推导检验统计量和相应拒绝域的得出,这对于大部分非统计学专业的人士来说是晦涩的,我只想通过一个案例告诉 ...

  • 【R分享|实战】参数分析~T检验与方差分析

    " 只要感兴趣,学习就是快乐的."   --科白君 "R分享实战"专刊·第6篇   编辑 | 科白维尼   3348字 | 5分钟阅读 本期推送内容 上一期与大 ...

  • 各类统计方法R语言实现(八)

    [科研绘图点我][付费精品合集][SEER点我] 今天是各类统计方法R语言实现的第八期,我们主要介绍选择"最佳"回归模型与深层次分析. 选择"最佳"回归模型 当 ...

  • 各类统计方法R语言实现(七)

    今天是各类统计方法R语言实现的第七期,我们主要介绍多重共线性.异常观察值的分析和回归模型改进措施. 多重共线性 多重共线性是指线性回归模型中的解释变量之间由于存在强相关关系而使模型估计失真或难以估计准 ...

  • 各类统计方法R语言实现(六)

    今天是各类统计方法R语言实现的第六期,我们主要介绍多元线性回归.回归诊断. 多元线性回归 多元线性回归指的是用多个自变量预测一个因变量,且自变量与因变量之间为线性关系,在分析过程中要考虑交互项的问题. ...

  • 各类统计方法R语言实现(五)

    今天是各类统计方法R语言实现的第五期,我们主要介绍简单线性回归和多项式回归. 基础知识 什么是回归? 回归分析指用一个或多个自变量来预测因变量的方法. 简而言之,就是用已知的变量预测未知的变量,比如临 ...

  • 各类统计方法R语言实现(四)

    白介素2的读书笔记,分享临床科研干货,一起见证时间的力量 不知不觉就到第四期了,小伙伴们是否跟着我们的推文一起练习了呢?当然,统计光靠跑代码是不够的,还需要结合理论知识一同学习,可以边复习理论,边跟着 ...

  • 各类统计方法R语言实现(三)

    各位小伙伴们大家好,今天是我们的系列推文"各类统计方法R语言实现"第三篇,今天介绍的主要内容是方差分析. 方差分析适用用于两个及两个以上样本均数差别的显著性检验,其中两组之间的方差 ...

  • 各类统计方法R语言实现(一)

    无论是在临床研究还是在基础研究中,统计都是非常重要的一关,而在R语言中,可以轻松实现大多数统计方法.因此,今天小编将开启一个全新的系列推文:利用R语言实现各类常用统计方法,希望能对大家有所帮助.由于统 ...

  • scRepertoire||单细胞免疫组库分析:R语言应用(二)

    男, 一个长大了才会遇到的帅哥, 稳健,潇洒,大方,靠谱. 一段生信缘,一棵技能树, 一枚大型测序工厂的螺丝钉, 一个随机森林中提灯觅食的津门旅客. 克隆空间内稳态 通过检查克隆空间,我们可以有效地观 ...

  • 技术贴 | R语言:构建一个转录代谢互作调控网络:(二)热图的美化以及大样本分组信息的快速注释

    本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 上期介绍了利用WGCNA包中的Cor函数和corPvalueStudent函数计算两组小样本的相关性并进行热图可 ...