• R语言和医学统计学(4):秩和检验


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

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

    前言

    这是R语言和医学统计学的第4篇内容。

    主要是用R语言复现课本中的例子。我使用的课本是孙振球主编的《医学统计学》第4版,封面如下:

    在这里插入图片描述

    配对样本比较的Wilcoxon符号秩检验

    使用课本例8-1的数据,自己手动摘录:

    test1<-c(60,142,195,80,242,220,190,25,198,38,236,95)
    test2<-c(76,152,243,82,240,220,205,38,243,44,190,100)
    
    • 1
    • 2

    两列数据,和配对t检验的数据结果完全一样。

    简单看一下数据情况:

    boxplot(test1,test2)
    
    • 1

    进行秩和检验:

    wilcox.test(test1,test2,paired = T,alternative = "two.sided",exact = F, correct = F)
    ## 
    ## 	Wilcoxon signed rank test
    ## 
    ## data:  test1 and test2
    ## V = 11.5, p-value = 0.05581
    ## alternative hypothesis: true location shift is not equal to 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果和课本一致!

    两独立样本比较的Wilcoxon符号秩检验

    和两样本t检验的数据格式完全一样!

    使用课本例8-3的数据,自己手动摘录。。

    RD1<-c(2.78,3.23,4.20,4.87,5.12,6.21,7.18,8.05,8.56,9.60)
    RD2<-c(3.23,3.50,4.04,4.15,4.28,4.34,4.47,4.64,4.75,4.82,4.95,5.10)
    
    • 1
    • 2

    进行两独立样本比较的Wilcoxon符号秩检验:

    wilcox.test(RD1,RD2,paired = F, correct = F)
    ## 
    ## 	Wilcoxon rank sum test
    ## 
    ## data:  RD1 and RD2
    ## W = 86.5, p-value = 0.08049
    ## alternative hypothesis: true location shift is not equal to 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果取单侧检验,还是和课本一致!

    完全随机设计多个样本比较的 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)
    
    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      : chr  "Drug_A" "Drug_A" "Drug_A" "Drug_A" ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    数据一共2列,第1列是死亡率,第2列是药物(3种)。

    简单看下数据:

    boxplot(death_rate ~ drug, data = mydata)
    
    • 1

    进行 Kruskal-Wallis H 检验:

    kruskal.test(death_rate ~ drug, data = mydata)
    ## 
    ## 	Kruskal-Wallis rank sum test
    ## 
    ## data:  death_rate by drug
    ## Kruskal-Wallis chi-squared = 9.74, df = 2, p-value = 0.007673
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    算出来结果和课本一致!

    随记区组设计多个样本比较的 Friedman M 检验

    使用课本例8-9的数据:

    df <- foreign::read.spss("E:/各科资料/医学统计学/研究生课程/6非参数检验18-9研/例08-09.sav", to.data.frame = T)
    
    str(df)
    ## 'data.frame':	8 obs. of  4 variables:
    ##  $ 频率A: num  8.4 11.6 9.4 9.8 8.3 8.6 8.9 7.8
    ##  $ 频率B: num  9.6 12.7 9.1 8.7 8 9.8 9 8.2
    ##  $ 频率C: num  9.8 11.8 10.4 9.9 8.6 9.6 10.6 8.5
    ##  $ 频率D: num  11.7 12 9.8 12 8.6 10.6 11.4 10.8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    数据一共4列,分别是4中不同频率下的反应率。

    简单看下数据:

    boxplot(df$频率A,df$频率B,df$频率C,df$频率D)
    
    • 1

    进行 Friedman M 检验前先把数据格式转换一下:

    M <- as.matrix(df) # 变成矩阵
    
    • 1

    进行 Friedman M 检验:

    friedman.test(M)
    ## 
    ## 	Friedman rank sum test
    ## 
    ## data:  M
    ## Friedman chi-squared = 15.152, df = 3, p-value = 0.001691
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果和课本一致!

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

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

  • 相关阅读:
    模拟电动车简易报警器
    Cookie Session
    DolphinScheduler3.0.0 集群部署过程
    宗老师教学-小程序渗透测试检测类目
    如何应对量化交易,个人股票账户如何实现量化程序化自动交易
    Spring学习笔记——4
    【Vue】简单介绍Vue中的Vite
    既生瑜,何生亮?
    【Java牛客刷题】入门篇(01)
    悬镜云鲨SaaS三大核心能力 构筑下一代积极防御体系
  • 原文地址:https://blog.csdn.net/Ayue0616/article/details/127587775