快生活 - 生活常识大全

语言教程两样本秩和检验


  医学研究的R语言应用(3):两样本秩和检验
  同期SPSS教程篇,已经就两样本检验,进行了详细的叙述(SPSS统计分析策略(3):两样本秩和检验),本文采用R语言对本案例进行分析。
  研究实例
  某研究者将小鼠随机分为两组,观察局部加热治疗小鼠移植肿瘤的疗效,以生存时间(日)作为观察指标,实验结果见下表,试检验两组小鼠生存日数有无差别?详见rat.sav(SPSS格式)
  局部加热组:10,12,15, 15, 15,16,20,23, 30,40
  空白对照组:2,3, 3, 3,4, 4, 4,6,9,11,12,14
  数据导入、整理与描述
  加载必要的包
  library(foreign) # 第1篇介绍
  library(nortest) # 第1篇介绍
  library(CBCgrps) # 第2篇介绍
  library(tidyverse) # 第1篇介绍
  library(car) #本篇首次出现,用于方差齐性检验
  重复之前第2篇R语言的操作,将数据导入进来
  library(foreign) # 利用foreign直接将数据库从SPSS中导入
  setwd("E:/zwj云数据/R/SPSS") #此处设定好工作空间
  e3=read.spss("rat.sav") #读取数据集,
  e3<-as.data.frame(e3)
  str(e3) # 浏览变量
  is.factor(e3$group)# group变量是因子吗?
  is.numeric(e3$time)# group变量是数值吗?
  利tapply语句进行初步统计
  tapply(e3$time,e3$group,median)
  tapply(e3$time,e3$group,mean)
  tapply(e3$time,e3$group,IQR)
  tapply(e3$time,e3$group,sd
  太麻烦,创建个函数再进行统计分析
  fun1<-function(x1,x2){
  median<-tapply(x1,x2,median)
  mean<-tapply(x1,x2,mean)
  IQR<-tapply(x1,x2,IQR)
  sd<-tapply(x1,x2,sd)
  y5<-cbind(median,mean,IQR,sd)
  return(y5)
  }
  fun1(e3$time,e3$group)
  #SW法进行两组数据的正态性检验
  tapply(e3$time,e1$group,shapiro.test)
  #分别绘制两组小鼠的直方图
  par(mfrow = c(1, 2)) #两幅子图在同一行显示
  hist(e3$time[e3$group==1],
  col = "blue", border = "pink",xlab = "生存时间(日)",
  main = "局部加热组直方图")
  hist(e3$time[e3$group==2],
  col = "blue", border = "pink",xlab = "生存时间(日)",
  main = "空白对照组组直方图")
  用tapply 也可以简单绘制直方图
  tapply(e3$time,e3$group,hist)
  两样本秩和检验
  最常见的两样本秩和检验方法,R语言自带包
  wilcox.test(time~group,data=e3,mu=0,
  paired = FALSE,conf.int = T,correct=F, conf.level = 0.95)
  经常会出现以下警告。它的意思是,原始数据中有相等的变量值出现(ties),无法采用精确法进行P值,只能采用正态近似法。
  exactRankTests包也可以进行秩和检验,该包倒可以开展精确法计算P值。
  library(exactRankTests)
  wilcox.exact(time~group,data=e3,exact = F,correct=F, paired=F, conf.int=TRUE)
  第三种方法,利用用Coin包,它能给出z值
  library(coin)
  e3$group<-factor(e3$group)
  近似正态法
  wilcox_test(time~group, conf.int=TRUE,
  distribution="asymptotic", data=e3)
  #确切概率法
  wilcox_test(time~group, conf.int=TRUE,
  distribution="exact", data=e3)
  利用CBCgrps包快速分析与制表
  最后不妨玩一下CBCgrps包进行t检验(CBCgrps包详见上一讲介绍:太棒了! 安利一个快速批量统计分析、制作三线表的R语言包),该结果自动根据正态性选择秩和检验方法
  tab1 <-twogrps(e1, gvar = "group",ShowStatistic = T)
  print(tab1, quote = T)
  本方法没有z怎么办,请结合coin:wilcox_test一起分析
  #数据导出后形成excel格式,复制到word后,就可以快速制表了
  write.csv(tab1,file="tab1.csv")
  -本文结束,如有程序有问题,请联系本人修改-
  meta分析
  R语言
  真实世界研究
  统计技巧
网站目录投稿:静梅