配对样本t检验用于样品的两个相关组之间的比较手段。在这种情况下,同一样本有两个值(即一对值)。

举个例子,在1个月内有20只小鼠接受了治疗X。我们想知道处理X是否会对小鼠的体重产生影响。

为了回答这个问题,在治疗之前和之后测量了20只小鼠的体重。通过测量相同小鼠体重的两次,我们得到了治疗前的20组值和治疗后的20组值。

在这种情况下,可以使用配对t检验比较治疗前后的平均体重。

配对的t检验分析如下:

  1. 计算配对的两组的差值(d),每只小鼠会有一个差值
  2. 计算平均值(m)和差值(d)的标准差(s)
  3. 比较平均差异与0有无差异。如果两对样本之间存在显著差异,则d的平均值(m)会远离0。

注意,仅当差值(d)呈正态分布时,才可以使用配对样本t检验。可以使用Shapiro-Wilk test进行检查。请参看第六讲

1. 研究问题和统计假设

典型的研究问题是:

  1. 差值(d)的均值(m)是否等于0?
  2. 差值(d)的均值(m)是否小于0?
  3. 差值(d)的均值(m)是否大于0?

在统计数据中,我们可以定义相应的无效假设(H0) 如下:

  1. H0:m = 0
  2. H0:m≤ 0
  3. H0:m≥ 0

相应的备择假设(H1)如下:

  1. H1:m ≠ 0(不同)
  2. H1:m> 0(大于)
  3. H1:m< 0(小于)

注意:

  • 假设1)称为双向检验
  • 假设2)和3)称为单向检验

2. 配对样本t检验的公式

t统计量可以计算如下:

其中,

  • m是样本差值的均值
  • n是样本
  • s是样本差值的标准差,自由度df为n-1

我们可以为自由度(df)计算与t检验统计量(| t |),通过查询t分布表格对比其在df=n-1处的P值。

如何解释结果?

如果p值低于或等于显着性水平0.05,我们可以拒绝无效假设并接受备择假设。换句话说,我们得出结论,两配对样本有显著差异。

3. 用R完成配对样本t检验

可以使用R函数t.test()计算单样本t检验:

t.test(x, y, paired=TRUE, alternative = "two.sided")

x,y:数值向量

  • paired:一个逻辑值,指定我们要计算配对的t检验
  • alternative:备择假设。允许值为“two.sided”(默认),也可以根据需要设置为“greater”或“less”之一。

3.1 将数据导入R

我们将使用一个示例,其中包含治疗前后10只小鼠的体重。

# 治疗前小鼠体重
before <-c(15.4,25.3,25.6,34.7,28.8,18.9,30.0,36.7,25.8,27.7)
# 治疗后小鼠的体重
after <-c(32.5,23.4,36.7,35.7,38.7,32.5,32.4,37.0,26.7,30.0)
# 创建数据框
my_data <- data.frame( group = rep(c("before", "after"), each = 10),weight = c(before,  after))

我们想知道,治疗前后体重是否有显着差异?

3.2 检查数据

print(my_data)group weight
1  before   15.4
2  before   25.3
3  before   25.6
4  before   34.7
5  before   28.8
6  before   18.9
7  before   30.0
8  before   36.7
9  before   25.8
10 before   27.7
11  after   32.5
12  after   23.4
13  after   36.7
14  after   35.7
15  after   38.7
16  after   32.5
17  after   32.4
18  after   37.0
19  after   26.7
20  after   30.0

使用dplyr软件包按组计算统计信息(平均值和标准差)。

  • 要安装dplyr软件包,请输入以下命令:
install.packages("dplyr")

  • 按组计算摘要统计信息:
library("dplyr")
group_by(my_data, group) %>%summarise(count = n(),mean = mean(weight, na.rm = TRUE),sd = sd(weight, na.rm = TRUE))
Source: local data frame [2 x 4]group count   mean       sd(fctr) (int)  (dbl)    (dbl)
1 after     10  32.6  4.82
2 before    10  26.9  6.43

3.3 使用箱形图和配对图可视化数据

(请参看第五讲 R-数据描述性统计分析作图)

箱形图显示了增长与否,但丢失了配对信息。我们可以使用功能plot.paired()[在pairedData包中]绘制配对数据(“ before-after”图)。

  • 安装pairedData包:
install.packages("PairedData")

  • 绘制配对数据:
# 提取治疗前数据
before <- subset(my_data,  group == "before", weight,drop = TRUE)

# 提取治疗后数据

after <- subset(my_data,  group == "after", weight,drop = TRUE)

# 画配对图

library(PairedData)
pd <- paired(before, after)
plot(pd, type = "profile") + theme_bw()

3.4 初步检验配对样本t检验的假设条件(正态性检验)

(请参看第六讲 R-数据正态分布检验)
假设1:两个样本是否配对?

是的,因为通过测量相同小鼠体重治疗前后两次来收集数据。

假设2:这是一个大样本吗?

否,因为n <30。由于样本大小不够大(小于30),我们需要检查对的差异是否遵循正态分布。

如何检查正常性?

# 计算之前前后的差异
d <- with(my_data, weight[group == "before"] - weight[group == "after"])
#Shapiro-Wilk正态性检验差值是否符合正态分布
shapiro.test(d) # p-value = 0.11

从输出中,p值大于显着性水平0.05,表明差值(d)的分布与正态分布没有显著差异。说明差值(d)符合正态分布,可以使用配对样本t检验。

请注意,如果数据不是正态分布的,建议使用非参数配对样本Wilcoxon检验。(我们在下一次推文会详细讲解)

3.5 计算配对样本t检验

# 配对样本t检验
res <- t.test(after,before, paired = TRUE)
# 显示结果
res data:  after and before
t = 2.7111, df = 9, p-value = 0.02395
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:0.9388936 10.4011064
sample estimates:
mean of the differences 5.67 

在上面的结果中:

  • tt检验统计值(t = 2.71),
  • df是自由度(df = 9),
  • p值t检验的显着性水平(p值=0.024)。
  • http://conf.int是平均值的置信区间,为95%(http://conf.int = [0.94,10.40]);
  • sample estimates是两组的差值的平均值(平均值= 5.67)。

也可以使用如下代码,输出内容一样。

res <- t.test(weight ~ group, data = my_data, paired = TRUE)
res

注意:

  • 如果要测试治疗前的体重是否小于治疗后的体重,请输入以下命令:
t.test(weight ~ group, data = my_data, paired = TRUE,alternative = "less")

  • 或者,如果要测试治疗前的体重是否大于治疗后的体重,请输入
t.test(weight ~ group, data = my_data, paired = TRUE,alternative = "greater")

3.6 结果解释

检验的p值为 0.024,小于显着性水平alpha = 0.05。然后我们可以否定原假设,并得出结论,治疗前小鼠的体重与治疗后小鼠的体重显著不同,p值 = 0.024。

3.7 获得t.test()函数的返回值

(请参看第八讲 R-单样本t检验)

如果您觉得我说的对您有帮助,请点赞让我感到您的支持,您的支持是我写作最大的动力~

ijournal:高颜值的期刊检索网站,助您快速找到理想目标期刊(weixin小程序也上线了哦)

投必得:全专业中英文论文润色编辑助力您的论文快速发表,点击了解业务详情

专栏传送门:

投必得科研软件安装使用手册;投必得:SCI期刊介绍与选择;投必得,教你写论文;投必得统计分析大讲堂;投必得科研生活解忧杂货店

r语言如何计算t分布临界值_第十二讲 R-配对样本t检验相关推荐

  1. R语言如何计算回归模型参数的置信区间?

    R语言如何计算回归模型参数的置信区间? 目录 R语言如何计算回归模型参数的置信区间? R语言是解决什么问题的? R语言如何计算回归模型参数的置信区间? 安利一个R语言的优秀博主及其CSDN专栏: R语 ...

  2. 【R语言 | 如何计算测序数据微生物种类的生态位宽度?如何解释结果】

    R语言 | 如何计算测序数据微生物种类的生态位宽度?如何解释结果 参考见https://mp.weixin.qq.com/s/MAk7cEQNwUKCKRZ-6xFhbQ(通往学术之路公众号) 参考见 ...

  3. R语言如何计算矩阵的列均值?

    R语言如何计算矩阵的列均值? 目录 R语言如何计算矩阵的列均值? R语言是解决什么问题的? R语言如何计算矩阵的列均值? R语言是解决什么问题的? R 是一个有着统计分析功能及强大作图功能的软件系统, ...

  4. R语言可视化分面图、假设检验、单变量分组多水平t检验并指定参考水平、可视化单变量分组多水平分面箱图(faceting boxplot)并添加显著性水平、指定显著性参考水平

    R语言可视化分面图.假设检验.单变量分组多水平t检验并指定参考水平.可视化单变量分组多水平分面箱图(faceting boxplot)并添加显著性水平.指定显著性参考水平 目录

  5. R语言ggplot2可视化并添加特定区间的回归线、R原生plot函数可视化并添加特定区间的回归线:Add Regression Line Between Certain Limits

    R语言ggplot2可视化并添加特定区间的回归线.R原生plot函数可视化并添加特定区间的回归线:Add Regression Line Between Certain Limits 目录

  6. R语言as.double函数(转化为浮点型)和is.double函数(检验是否为浮点型)实战

    R语言as.double函数(转化为浮点型)和is.double函数(检验是否为浮点型)实战 目录 R语言as.double函数(

  7. R语言学习笔记——高级篇:第十四章-主成分分析和因子分析

    R语言 R语言学习笔记--高级篇:第十四章-主成分分析和因子分析 文章目录 R语言 前言 一.R中的主成分和因子分析 二.主成分分析 2.1.判断主成分的个数 2.2.提取主成分 2.3.主成分旋转 ...

  8. R语言使用car包的leveneTest函数实现非参数的方差齐性检验、检验各分组方差是否相同

    R语言使用car包的leveneTest函数实现非参数的方差齐性检验.检验各分组方差是否相同 目录 R语言使用car包的leveneTest函数实现非参数的方差齐性检验.检验各分组方差是否相同

  9. R语言选模型/用AIC BIC adjustRsq 十折交叉验证 LOOCV等验证/择参 以fama三因子模型和CAMP模型为例@[理科班的习习同学

    R语言选模型/用AIC BIC adjustRsq 十折交叉验证 LOOCV等验证/择参 以fama三因子模型和CAMP模型为例@理科班的习习同学 引入包与数据预处理 install.packages ...

  10. R语言ECM误差修正模型、均衡修正模型、受限VECM、协整检验、单位根检验即期利率市场数据...

    全文下载:http://tecdat.cn/?p=29221 传统上,协整检验是在非常长的时间内进行的,本案例研究A测试了1960-2010年期间T-Bill利率和国债收益率之间的均衡(点击文末&qu ...

最新文章

  1. 自然语言处理NLP之BERT、BERT是什么、智能问答、阅读理解、分词、词性标注、数据增强、文本分类、BERT的知识表示本质
  2. python 搜索引擎Whoosh中文文档和代码 以及jieba的使用
  3. BZOJ 1815: [Shoi2006]color 有色图 [Polya DFS 重复合并]
  4. 【Linux】一步一步学Linux——arp命令(163)
  5. 玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】
  6. 是什么时候开始学习gulp了
  7. 算法(14)-leetcode-explore-learn-数据结构-二叉树的遍历
  8. Hive在linux上的部署
  9. 【信息系统项目管理师】第10章 下篇-项目干系人管理 知识点详细整理
  10. Oracle数据备份与恢复
  11. PGSQL查询今天生日的员工
  12. Activiti 用户绑定申请审批全流程演示
  13. 4054原厂LTH7R座充充电管理IC
  14. 【JSP】JSP简单介绍
  15. leetcode 179.最大数
  16. 幻读与不可重复读区别
  17. Testin云测平台
  18. 6个做好网站SEO必不可少的方法
  19. 冷酷小叶的Java学习笔记Day3
  20. 给定k个排好序的序列,设计一个算法确定2路合并次序,使所需的总比较次数最少。Java代码

热门文章

  1. 3dmax渲染卡顿崩溃怎么办?(二)
  2. pygame安装时出现的问题以及解决方案记录.
  3. 随机抽奖程序_Excel VBA(7) – 自制九宫格抽奖器
  4. html的跳转页面代码
  5. IDEA整合SSM框架 applicationcontext in module file is included in 5 contexts
  6. 微信公众开发 表情开发php,微信开发Emoji表情的实例教程
  7. java调用第三方短信接口 本地能发送短信,服务器却发不了,直到超时
  8. 华为交换机初始化和配置SSH和TELNET远程登录方法
  9. 百度网盘百度云倍速播放破解
  10. 把 14 亿人拉到一个微信群,如何实现?