两独立样本进行统计,作箱式图和ROC曲线

  • 比较肿瘤与正常组织的差异,需要进行两独立样本的T检验,可以用boxplot展示,还可以用RCO曲线评估预测性能,那么可以用ggplot2和pROC进行图片构建.
  • 首先导入数据,需要类型和数值两列,如下所示:
 library(readr)
 data<- read.csv("content/post/2020-08-16-roc/data.csv")
 knitr::kable(data)
Typevalue
Cancer10.005625
Cancer7.851749
Cancer10.030667
Cancer10.79604
Cancer9.805744
Normal10.210671
Normal9.319673
Normal8.9128895
Normal9.3442955
Normal11.58684
Normal8.672425
Normal10.518653
Normal9.902375

首先是boxplot,可以用ggplot2作图,ggsignif进行统计,然后ggsci配色,由于默认的X轴排序是按英文来的,如果想固定一个顺序排序,可以把X轴的变量设置为因子,然后定义先后顺序

 data<- within(data, Type <- factor(Type, levels = c("Normal", "Cancer"))) 
 shapiro.test(data$value)  # 首先进行正态检验
#   Shapiro-Wilk normality test
#
#data:  data$value
#W = 0.98318, p-value = 0.005502
  • 可知p<0.05,不符合正态分布,选择非参数检验,默认的就是非参数检验,如果大于0.5就改用t.test
 library(ggplot2)
 library(ggsignif)
 library(ggsci)
 p1<-ggplot(data,aes(x=Type,y=value,color=Type,shape=Type))+ #X轴为类型,Y轴为数值,按类型填色,按类型分形状
   geom_boxplot()+geom_jitter()+#加柱状图,加点
   theme_bw(base_size = 12)+#背景和字体大学
   theme(legend.position = 'none')+#去掉标签
   ggtitle("Dataset")+xlab(NULL)+#添加标题,去掉X轴
   ylab("Expression value\nelog2(TPM+1)")+ #\n表示下一行
   scale_color_lancet()+#lancet配色
   geom_signif(comparisons = list(c("Normal","Cancer")),map_signif_level = T,textsize = 4)#显著标识
 p1

接下来是ROC曲线的构建,需要用到pROC

# library(pROC)
 roc<-roc(data$Type,data$value,ci=TRUE,  smooth = TRUE) #进行roc计算,然后做曲线处理
 roc$ci # 只有2.5,50和97.5%的置信区间,不是95%
# 95% CI: 0.506-0.672 (2000 stratified bootstrap replicates)
 roc$auc #曲线下面积,一般大于0.5最好
# Area under the curve: 0.5878

画图

 p2<-ggroc(roc,color="#00468B")+ggtitle("ROC curver")+
   theme_bw(base_size = 12)+     
   geom_segment(aes(x = 1, xend = 0, y = 0, yend = 1), color="grey",linetype="dashed")+
   ggplot2::annotate('text',x=0.12,y=0.25,label=paste("AUC:",round(roc$auc,4)))+ # 提取ACU结果,四位小数点
  ggplot2::annotate('text',x=0.18,y=0.15,label=paste("97.5%CI:",round(roc$ci[1],4),"-",round(roc$ci[3],4)))# 提取97.5%结果,四位小数点
 p2

最后,将两张图拼起来

 cowplot::plot_grid(p1,p2,labels = "AUTO")

欧阳松
欧阳松
主治医师、讲师

My research interests include urogenital tumors, urolithiasis, male infertility, male erectile dysfunction,etc.

Related