在这篇文章中,我们将探索比较两组依赖(即配对)定量数据的检验:Wilcoxon符号秩检验和配对学生t检验。这些检验之间的关键区别在于Wilcoxon的检验是非参数检验,而t检验是参数检验。在下文中,我们将探讨这种差异的后果。

睡眠数据集

我们来考虑睡眠数据集。数据集通过提供服用药物后睡眠时间与基线相比的变化来对比两种催眠药物(即安眠药)的效果:

extra表示与基线测量相比睡眠中的增加/减少(正/负值),表示药物,ID表示患者ID。为了更清楚,我将重命名为药物

##    extra group ID
## 1    0.7     1  1
## 2   -1.6     1  2
## 3   -0.2     1  3
## 4   -1.2     1  4
## 5   -0.1     1  5
## 6    3.4     1  6
## 7    3.7     1  7
## 8    0.8     1  8
## 9    0.0     1  9
## 10   2.0     1 10
## 11   1.9     2  1
## 12   0.8     2  2
## 13   1.1     2  3
## 14   0.1     2  4
## 15  -0.1     2  5
## 16   4.4     2  6
## 17   5.5     2  7
## 18   1.6     2  8
## 19   4.6     2  9
## 20   3.4     2 10

注意,睡眠数据集包含每个患者的两个测量值。因此,它适合于展示配对检验,例如我们正在处理的检验。

我们检验的是什么?

假设我们在一家制药公司工作,这些是刚从临床试验中获得的数据。现在,我们必须决定你应该推出哪两种药物用于市场。选择药物的合理方法是确定表现更好的药物。

为了直观了解这两种药物的有效性,让我们绘制相应的值:

该图显示药物1的睡眠时间的中值增加接近0,而药物2的中值增加接近2小时。因此,根据这些数据,似乎药物2比药物1更有效。但是,我们仍需要确定我们的发现是否具有统计学意义。

零假设

检验的零假设是,两种药物之间的额外睡眠时间没有任何差别。由于我们想知道药物2是否优于药物1,所以我们不需要双尾检验(检验任何一种药物是否具有优越性能),而是需要单尾检验。因此,备选假设是,药物2比药物1更优。

 Wilcoxon符号秩检验

由于检验统计量是基于排名而不是测量值本身,因此Wilcoxon符号秩检验可以被认为是检验两组之间中值变化。

要在R中执行检验,我们可以使用该wilcox.test。但是,我们必须明确设置配对参数,以表明我们正在处理匹配的观察。要指定单尾检验,我们将替代参数设置为更大。以这种方式,检验的替代方案是药物2是否与睡眠持续时间增加相关联而不是药物1。

wilcox(x, y, paired = TRUE, alternative = "greater" 

警告

在获得结果之前,我们应该调查执行检验所产生的两个警告。

警告1:关系

第一个警告产生的原因是,该测试对成对的额外数值的差异进行排名。如果两对有相同的差异,在排名时就会出现并列。我们可以通过计算配对之间的差异来验证这一点

x - y##  [1] 1.2 2.4 1.3 1.3 0.0 1.0 1.8 0.8 4.6 1.4

并发现第3和第4对都有相同的差值1.3。为什么并列是一个问题?分配给并列关系的等级是基于它们所跨越的等级的平均值。因此,如果有许多并列,这就降低了测试统计的表现力,使Wilcoxon测试不合适。由于我们这里只有一个并列,这不是一个问题。

警告2:零值

第二个警告涉及差异为0的对。在睡眠数据集中,来自第5个患者的情况就是这种情况(见上文)。为什么零是个问题?请记住,零假设是对的差异以0为中心。但是,观察值恰好为0的差异并不能为我们提供任何拒绝零的信息。因此,在计算检验统计量时丢弃这些配对。如果许多配对的情况如此,则检验的统计效果将大幅下降。同样,这不是问题,因为只存在一个零值。

调查结果

检验的主要结果是它的p值,可以通过以下方式获得:

res$p.value## [1] 0.004545349

由于p值小于5%的显著性水平,这意味着我们可以拒绝无效假设。因此,我们倾向于接受备选假设,即药物2优于药物1。

配对学生的t检验

配对Student's t检验是对两组配对定量测量方法的参数检验。这里,参数意味着t检验假设样本之间的平均差异是正态分布的。检验依赖于确定两组的测量值的平均差异,X¯d大于 μd, μd通常设置为0查找是否存在任何差异。

在R中,我们可以用t.test函数进行配对t检验。请注意,t.test假定人口变异是不相等的。在这种情况下,该检验也被称为韦尔奇的t检验。要获得假定种群方差相等的原始t检验,我们可以直接将equal.var参数设置为TRUE。在这里,我们将只使用默认设置。

print(t.result$p.value)
## [1] 0.001416

同样,P值小于0.05。因此,我们倾向于接受另一个假设:药物2比药物1在平均睡眠时间上有更大的增长。

检查学生t检验的假设

t检验要求样本均值是正态分布。根据中心极限定理,在有足够数量的样本时,群体中的样本均值接近正态分布。因此,只要有足够数量的样本,即使对于非正态测量,也能满足t检验的假设。由于睡眠数据只包含10个成对的测量值,应该有理由担心。因此,我们应该检查测量值之间的差异是否为正态分布,以验证t检验是否有效。


ggplot(diff.df, aes(x = diff)) 

看一下直方图,数据似乎相当均匀,而不是正态分布。为了更仔细地观察,我们用Q-Q图将差异与正态分布的期望值进行比较。

 qqp(diff.df$diff) 

QQ图显示,除了厚尾之外,差异相当符合正态模型。由此,我们可以得出结论,t检验的假设得到了充分的满足。不过,我们还是对t检验是否是这些数据最合适的选择感到不确定。

总结:Wilcoxon符号秩检验与配对学生t检验

在这项分析中,Wilcoxon符号秩检验和配对学生t检验导致拒绝零假设。但总的来说,哪种检验更合适?答案是,这取决于几个标准:

  • 假设:学生t检验是比较平均值的检验,而Wilcoxon检验是检验数据的排序。例如,如果你在分析有许多离群值的数据,如个人财富(少数亿万富翁会极大地影响结果),Wilcoxon检验可能更合适。
  • 解释:虽然也可以为Wilcoxon检验计算置信区间,但在t检验中争论平均数的置信区间可能比Wilcoxon检验的假说更自然。
  • 假设的实现: 对于小规模的样本,学生t检验的假设可能无法满足。在这种情况下,选择一个非参数检验往往是比较安全的。然而,如果满足t检验的假设,它的统计能力比Wilcoxon检验大。

由于睡眠数据集的样本量较小,对于这些数据,我更倾向于采用Wilcoxon的检验。

你会用哪种检验?

R语言中的Wilcoxon符号秩检验与配对学生t检验相关推荐

  1. 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型

    决策树是根据若干输入变量的值构造出一个适合的模型,以此来预测输出变量的值,并用树形结构展示出来.决策树主要有两个类别:分类树和回归树.分类树主要针对离散的目标变量,回归树则针对连续的目标变量.R语言中 ...

  2. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...

  3. r语言中的shiny教程_如何使用Shiny在R中编写Web应用程序

    r语言中的shiny教程 新年快乐! 这个月我忙于撰写一些较大的文章,因此请在接下来的几周内查找这些文章. 对于本月的Nooks和Crannies,我想简要指出一个我一直在用它进行自我教育的出色R库. ...

  4. R语言中if语句使用方法之超详细教程

    在R语言中,if属于一种分支结构,即根据某个条件执行相关的语句.R中的if语句与else配合主要有3种结构. 单个if语句 if(cond) {expr} 其它语句 即当括弧中的cond条件为TRUE ...

  5. R语言中GCC编译的问题(续)

    这篇文章承接R语言中GCC编译的问题,这篇文章主要解决我在Linux系统上安装"expm"出现的问题. 出现的问题 这个问题非常的有趣,因为我在两台服务器分别安装同一个包,其中一台 ...

  6. r语言中paste函数_R中的paste()函数-简要指南

    r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...

  7. r语言中的while循环_R编程中的While循环

    r语言中的while循环 In addition to the for loop we discussed earlier, R also offers another kind of loop to ...

  8. R语言中的igraph包绘制网络图

    本文转自网络. R语言中的igraph包可以很方便地画出网络图,在社交关系分析等领域发挥重要作用,下面介绍包中一个重要的函数graph_from_data_frame(). graph_from_da ...

  9. 相关系数pearson、spearman、kendall和R语言中的cor/or.test()

    相关系数pearson.spearman.kendall和R语言中的cor/cor.test 1. 相关系数pearson.spearman.kendall 2. R语言cor函数和cor.test函 ...

最新文章

  1. python基础知识~ 函数详解2
  2. 第三次组队赛 (DFSBFS)
  3. MAYA建模桌面一角_maya怎么建模逼真的学生书桌书桌桌面?
  4. 浪漫情人节|C语言画心型
  5. The Maven Integration requires that Eclipse be running in a JDK……
  6. Archlinux安裝指南(uefi+gpt)
  7. DSA数字签名原理及python实现
  8. Oracle、MySQL等数据库对比
  9. 一文带你玩转 DataStore
  10. 板凳——————————————————c++(104)
  11. 小程序scroll-view文字不能自动换行
  12. 发改委印发《关于促进分享经济发展的指导性意见》
  13. 推荐一个 Github 上最全的C语言教学
  14. 天猫整站Springboot 从零开始搭建(四(2,3))——后台分类管理功能开发
  15. 国产系统独创!Linux环境完美兼容原生安卓App
  16. 使用eBPF将网络功能Offload到网卡
  17. Window的DOS命令
  18. 关于微信小程序内嵌的H5页面阿里云点播视频获取视频播放凭证
  19. Intel x86_64 CPUID指令介绍
  20. 图像局部特征(五)--斑点检测之SIFT算法原理总结

热门文章

  1. web服务器是什么?web服务器有哪些
  2. Windows官网直接下载正版操作系统方法
  3. 撩妹方式,你值得拥有!!
  4. AutoJs7、8版本快速接通vscode进行调试脚本
  5. 产品销售份额数据统计流程图模板分享
  6. 26、流程引擎API
  7. 序列标注NER、POS、Chunking、SRL
  8. 斜线/、反斜线\、双斜线//、双反斜线\\ ,区别
  9. 无线攻击 --aircrack-ng套件之一:Airbase-ng(攻击客户端多用途工具)
  10. 万能的小镇市场能否成为悟空问答的救命良药?