R语言非参数检验多重比较

article/2025/9/15 2:39:44

本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

之前介绍了多个样本均数的多重比较,今天说说kruskal-Wallis H检验后的多重比较,Friedman M检验后的多重比较。

也是和课本对照着来,孙振球,徐勇勇《医学统计学》第四版。

在这里插入图片描述

非参数检验后的多重比较,我们也是用这个宝藏R包:PMCMRplus

kruskal-Wallis H检验及多重比较

使用课本例8-5的数据。

rm(list = ls())
death_rate <- c(32.5,35.5,40.5,46,49,16,20.5,22.5,29,36,6.5,9.0,12.5,18,24)
drug <- rep(c("Drug_A","drug_B","drug_C"),each=5)
mydata <- data.frame(death_rate,drug)# 分类变量因子化
mydata$drug <- factor(mydata$drug)
str(mydata)
## 'data.frame':	15 obs. of  2 variables:
##  $ death_rate: num  32.5 35.5 40.5 46 49 16 20.5 22.5 29 36 ...
##  $ drug      : Factor w/ 3 levels "Drug_A","drug_B",..: 1 1 1 1 1 2 2 2 2 2 ...

进行kruskal-Wallis H 检验:

fit <- kruskal.test(death_rate ~ drug, data = mydata)
fit
## 
## 	Kruskal-Wallis rank sum test
## 
## data:  death_rate by drug
## Kruskal-Wallis chi-squared = 9.74, df = 2, p-value = 0.007673

多重检验,课本上用的是Nemenyi检验,我们通过多重比较的全能R包PMCMRplus实现。

library(PMCMRplus)

也是提供两种输入方式,直接提供kruskal-Wallis H检验的结果,或者formula形式,都可以。

res <- kwAllPairsNemenyiTest(fit)
res <- kwAllPairsNemenyiTest(death_rate ~ drug, data = mydata)
summary(res)
## 
## 	Pairwise comparisons using Tukey-Kramer-Nemenyi all-pairs test with Tukey-Dist approximation
## data: death_rate by drug
## alternative hypothesis: two.sided
## P value adjustment method: single-step
## H0
##                      q value  Pr(>|q|)   
## drug_B - Drug_A == 0     2.5 0.1805089   
## drug_C - Drug_A == 0     4.4 0.0052932 **
## drug_C - drug_B == 0     1.9 0.3710425
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

除此之外,还提供了kwAllPairsConoverTest()kwAllPairsDunnTest()方法。

Friedman M检验及多重比较

使用课本本例8-9的数据,这个方式适用于随机区组设计资料的多样本比较。

进行Friedman M检验需要矩阵形式的数据(这个是R语言里为数不多的不支持formula形式的统计检验函数之一),可以自己输入,也可以直接读取spss格式数据,然后变成矩阵即可。

df <- matrix(c(8.4, 11.6, 9.4, 9.8, 8.3, 8.6, 8.9, 7.8,9.6, 12.7, 9.1, 8.7, 8, 9.8, 9, 8.2,9.8, 11.8, 10.4, 9.9, 8.6, 9.6, 10.6, 8.5,11.7, 12, 9.8, 12, 8.6, 10.6, 11.4, 10.8),byrow = F, nrow = 8,dimnames = list(1:8,LETTERS[1:4]))print(df)
##      A    B    C    D
## 1  8.4  9.6  9.8 11.7
## 2 11.6 12.7 11.8 12.0
## 3  9.4  9.1 10.4  9.8
## 4  9.8  8.7  9.9 12.0
## 5  8.3  8.0  8.6  8.6
## 6  8.6  9.8  9.6 10.6
## 7  8.9  9.0 10.6 11.4
## 8  7.8  8.2  8.5 10.8

进行Friedman M检验:

fit <- friedman.test(df)
fit
## 
## 	Friedman rank sum test
## 
## data:  df
## Friedman chi-squared = 15.152, df = 3, p-value = 0.001691

使用q检验(quade test)进行多重比较:

res <- quadeAllPairsTest(df)
summary(res)
## 
## 	Pairwise comparisons using Quade's test with TDist approximation
## data: df
## P value adjustment method: holm
## H0
##            t value   Pr(>|t|)    
## B - A == 0   1.126 0.27307148    
## C - A == 0   3.236 0.01583866   *
## D - A == 0   5.093 0.00028885 ***
## C - B == 0   2.110 0.14099045    
## D - B == 0   3.967 0.00351141  **
## D - C == 0   1.857 0.15475978
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

可以看到非常简单,函数名称清晰易懂,结果也是非常直观,直接给出了两两比较的P值和统计量。

除此之外,还提供了非常多其他方法:

  • frdAllPairsConoverTest()
  • frdAllPairsExactTest()
  • frdAllPairsConoverTest()
  • frdAllPairsMillerTest()
  • frdAllPairsSiegelTest()

大家选择自己需要的即可。

本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。


http://chatgpt.dhexx.cn/article/UeIR4Rs8.shtml

相关文章

什么是非参数检验?应该如何操作与分析?

检验问题可划分为两大类&#xff1a;参数检验和非参数检验&#xff0c;其中总体分布的具体函数形式的前提下&#xff0c;只是其中若干个参数未知称为参数检验&#xff0c;否则称为非参数检验。 一、研究场景 非参数检验用于研究定类数据与定量数据之间的关系情况。例如研究人…

【日常】矩阵正态分布参数检验问题

最近给凯爹做的一个苦力活&#xff0c;统计检验这个东西说实话也挺有趣&#xff0c;跟算法设计一样&#xff0c;好的检验真的是挺难设计的&#xff0c;就有近似算法的那种感觉&#xff0c;检验很难保证size和power都很理想&#xff0c;所以就要做tradeoff&#xff0c;感觉这个假…

参数估计与假设检验

推断统计&#xff1a;研究如何利用样本数据来推断总体特征 描述统计&#xff1a;描述一组数据的特征 参数估计&#xff1a;利用样本信息估计总体特征 假设检验&#xff1a;利用样本信息判断对总体的假设是否成立 一.参数估计 就是对于总体指标的估计 估计&#xff1a;根据…

第4章 Stata参数检验

目录 4.1单一样本T检验 案例延伸 4.2独立样本T检验 案例延伸 1.改变置信水平 2.在异方差假定条件下进行假设检验 4.3配对样本T检验 案例延伸 1.改变置信水平 4.4单一样本方差的假设检验 案例延伸 4.5双样本方差的假设检验 参数检验&#xff08;Parameter Test&…

非参数检验——Wilcoxon 检验 Friedman 检验与 Nemenyi 后续检验

最近看论文&#xff0c;看到了Wilcoxon signed-rank test&#xff08;符号秩检验&#xff09;&#xff0c;咱也不知道是个啥&#xff0c;就学习了一下&#xff0c;这里做一下笔记&#xff0c;方便以后查阅。 非参数检验——Wilcoxon 检验 非参数检验概念非参数检验和参数检验的…

SPSS之“参数检验”

目录 简介单样本t检验两独立样本t检验两配对样本t检验 简介 <!-主要作为个人的笔记&#xff0c;和操作步骤的查询-->参数检验(比价均值)是根据样本数据推断总体特征的方法。这种推断通常在以下两种情况下进行&#xff1a;参数检验&#xff1a;总体分布(多为正态分布)已知…

参数检验和非参数检验(结合SPSS分析)

文章目录 假设检验参数检验平均值检验单样本t检验两独立样本t检验配对样本t检验 非参数检验卡方检验单样本K-S检验两独立样本的非参数检验多个独立样本的非参数检验两配对样本检验多匹配样本的非参数检验 假设检验 概念&#xff1a;是一种根据样本数据来推断总体的分布或均值、…

参数与非参数检验:理解差异并正确使用

数据科学是一个快速发展的领域&#xff0c;它在很大程度上依赖于统计技术来分析和理解复杂的数据集。这个过程的一个关键部分是假设检验&#xff0c;它有助于确定从样本中获得的结果是否可以推广到总体。 在这篇文章中&#xff0c;我们将探讨参数与非参数检验之间的区别&#…

SPSS-参数检验

1. 假设检验 假设检验分为参数检验与非参数检验。 &#xff08;1&#xff09; 参数检验&#xff1a;已知总体分布, 猜测总体的某参数(原假设H0&#xff0c;null hypothesis)&#xff0c;用一组样本来检验这个假设&#xff0c; 是否正确 (即接受还是拒绝假设H0)。 &#xff0…

参数检验和非参数检验

一、参数检验 1、基本思想 2、两类错误 3.、检验步骤 4、检验的p值 在一个假设检验问题中, 拒绝原假设H0的最小显著性水平称为检验的p值. 5、单正态总体参数的检验 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; 6、两正态总体参数的检…

数据分析之参数检验与非参数检验

1、参数检验和非参数检验的区别 定义不同&#xff1a; 参数检验&#xff1a;假定数据服从某分布&#xff08;一般为正态分布&#xff09;&#xff0c;通过样本参数的估计量&#xff08;xs&#xff09;对总体参数&#xff08;μ&#xff09;进行检验&#xff0c;比如t检验、u检…

常用的参数检验和非参数检验方法对比

目录 一、基本概念 二、对比 三、具体方法对比 1、参数检验 2、非参数检验 一、基本概念 参数检验是在总体分布形式已知的情况下&#xff0c;对总体分布的参数如均值、方差等进行推断的方法。但是&#xff0c;在数据分析过程中&#xff0c;由于种种原因&#xff0c;我们往…

STM32中断优先级的分配以及中断原则

STM32d的中断优先级由NVIC_IPRx寄存器来配置&#xff0c;IPR的宽度为8bit所以原则上每个中断可配置的优先级为0~255&#xff0c;数值越小优先级越高&#xff0c;但对于大部分的 Cortex-M3芯片都会精简设计&#xff0c;导致实际上支持的优先级数量更少。在STM32中只使用了IPR寄存…

STM32 中断优先级

1&#xff0e;ARM cortex_m3 内核支持 256 个中断&#xff08;16 个内核240 外部&#xff09;和可编程 256 级中断优先级 的设置&#xff0c;与其相关的中断控制和中断优先级控制寄存器&#xff08;NVIC、SYSTICK 等&#xff09;也都属于 cortex_m3 内核的部分。STM32 采用了 c…

6.STM32中断优先级管理

1.中断 stm32的芯片通常有90多个以上的中断&#xff0c;具有16级可编程的中断优先级。 2.中断管理方法 1.首先对STM32中断进行分组&#xff0c; 有组0~4。同时对每一个中断设置一个抢占优先级和一个响应优先级值。 分组配置是在寄存器SCB->AIRCR中配置&#xff1a; SCB-&…

stm32中断优先级

1.STM32(Cortex-M3)中有两个优先级的概念&#xff1a;抢占式优先级和响应优先级&#xff0c;也把响应优先级称作“亚优先级”或“副优先级”或“从优先级”&#xff0c;每个中断源都需要被指定这两种优先级。 高抢占优先级的中断可以打断低抢占优先级的中断 相同抢占优先级&…

STM32中断优先级NVIC

参考正点原子视频 为什么STM32需要中断 就拿你去饭馆吃饭为例。 使用中断就是饭做好了&#xff0c;服务员会为你端上来&#xff0c;然后你开始吃饭。端上来之前你爱干啥就干啥。 不使用中断&#xff0c;你需要一次一次去问服务员饭做好了没有&#xff0c;这期间你没办法去做…

STM32中断优先级处理机制

设置中断时需要配置中断的优先级&#xff0c;STM32将中断优先级分为抢占优先级&#xff08;也叫先占优先级&#xff09;和响应优先级&#xff08;亚优先级或从优先级&#xff09;&#xff0c;每个中断源都需要设定这两种优先级。 当中断系统正在执行一个中断服务时&#xff0c…

STM32-中断优先级管理NVIC详解

中断和NVIC详解 1&#xff0c;什么是中断&#xff1f;2&#xff0c;中断、异常、事件三者的区别3&#xff0c;中断由谁管理&#xff1f;NVIC中断优先级中断相关函数 4&#xff0c;外部中断使用示例 1&#xff0c;什么是中断&#xff1f; 举个简单的例子&#xff0c;你正在打王者…