前言

起初听到这个我是不理解的,这不是统计学常识吗?划分三个程度:* ,** ,***。
头儿咋还要精确到小数位,不是画蛇添足吗?不了解归不了解,该干还是要干。

目录

  • 前言
    • 一、P值
    • 二、生存分析
    • 三、“锦上添花”
      • 3.1 计算P值
      • 3.2 带-次方的调整P值
      • 3.3 不带次方的调整P值
      • 3.4 小数点后无0的调整P值
    • 四、用两个if解决

一、P值

关于显著性检验偷懒,找到一篇很典型的抛硬币可以回顾或预习,浅谈p值(p-value是什么)

P值 P值解释 统计意义
>0.05 碰巧出现的可能性大于5%,不能否定原假设 无统计学差异
<0.05 碰巧出现的可能性小于5%,可以否定原假设 有统计学差异
<0.01 碰巧出现的可能性小于1%,可以否定原假设 有显著统计学差异
<0.001 碰巧出现的可能性小于0.1%,可以否定原假设 有极其显著统计学差异

二、生存分析

关于生存分析上篇有提过,单分组直接删掉循环即可,用for循环批量生存分析

像这样的生存曲线可以接受,但是“你这个不行,要看到具体P值”
虽然说不难,但是确实是有点迷惑行为,不过还得开整。

三、“锦上添花”

3.1 计算P值

继续用我的循环来记录,单分组把 data[,i] 换成具体分组变量即可

    #survfit构建完生存模型后,用survdiff计算生存差异surv_diff <- survdiff(Surv(data$time, data$status) ~ data[,i], data = data)p.value <- 1 - pchisq(surv_diff$chisq, length(surv_diff$n) -1)#提p值

若直接添加到图上是这样的,预言一波“你这个不行,P值太长了”

3.2 带-次方的调整P值

像这种带-次方的可以缩小数位

    lastnum <- substr(p.value, nchar(p.value) - 1 + 1, nchar(p.value))lastnum <- as.numeric(lastnum)


再预言一波“你这个不行,太短了很奇怪”

3.3 不带次方的调整P值

小数点后三个0直接取有效小数

这里取三位

p.value <- signif(p.value,3)

3.4 小数点后无0的调整P值

像这种情况直接开摆就行了,P值0.05好歹也有一个0,做批量分析时这种直接不要了,所以显示多少位没啥区别

四、用两个if解决

交差的全部代码

    surv_diff <- survdiff(Surv(data$time, data$status) ~ data[,i], data = data)#计算提取p值p.value <- 1 - pchisq(surv_diff$chisq, length(surv_diff$n) -1)#打印p值lastnum <- substr(p.value, nchar(p.value) - 1 + 1, nchar(p.value))#提取次方数lastnumlastnum <- as.numeric(lastnum)#转换数值类型lastnumif(lastnum<4){pvalue <- round(p.value,lastnum)}else{pvalue <- round(p.value,3)}if(pvalue<1){p.value <- signif(p.value,3)}else{p.value <- pvalue}

然后画图改p值

pval=p.value

这样在循环出的每一张生存曲线的P值小数位都刚好合适了

【R语言】他说每个生存曲线一定要看到p值,不能0.05,0.01,0.001相关推荐

  1. R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图、使用subset函数、使用drop_na函数

    R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图.使用subset函数.使用drop_na函数 目录

  2. R语言ggplot2可视化强制设置x轴、y轴坐标的起始点为0或者其他实战

    R语言ggplot2可视化强制设置x轴.y轴坐标的起始点为0或者其他实战 目录 R语言ggplot2可视化强制设置x轴.y轴坐标的起始点为0或者其他实战

  3. R语言游程检验:使用runs.test函数对二值序列数据执行游程检验(检验序列是否是随机的)

    R语言游程检验:使用runs.test函数对二值序列数据执行游程检验(检验序列是否是随机的) 目录

  4. R语言 将多条生存曲线画到一起(不是拼图) ,一张图绘制多条生存曲线

    网上找破了头都没找到这个办法,只找到一堆拼图的办法 其实方法很简单,survival包自带这个函数:ggsurvplot_combine() library(survival) library(sur ...

  5. R语言-解决载入了名字空间rlang0.4.5,但需要的是大于等于0.4.6

    问题 # Error: package or namespace load failed for 'clusterProfiler' in loadNamespace(i, c(lib.loc, .l ...

  6. 关于R语言中混合线性模型summary()结果中交互作用beta值的含义

    本文以2*2的实验设计为例,利用lmerTest包在R中进行混合线性模型分析,采用sum的因子编码方式,简单介绍一下在summary的结果中,交互作用的beta值的含义. 数据准备: library( ...

  7. R语言将字符串中的数字提取出来作为值

    用到的函数 extract() 例子 首先构造数据 week <- c("week1","week2","week3","w ...

  8. R语言:无法精确计算带连结的p值

    当你在使用cor.test,wilcoxon.test等这些函数时,不知道有没发现一个exact参数,以及是否遇到过无法精确计算带连结的p值这个warning.如果有,请往下看. 这个问题应该是很常见 ...

  9. 基于R语言 meta/metafor 包进行荟萃分析(一)

    目录 目录 1.引言 2.安装,数据的读取和保存 不讲.这个有别的大佬讲了,没有创新点. 3.标准方法 3.1 固定效应模型与随机效应模型 3.1.1 连续型结果的数据测量 3.1.2 固定效应模型 ...

  10. 用R语言把数据玩出花样

    用R语言把数据玩出花样 数据处理 R 去重 数据可视化 阅读759  R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程 ...

最新文章

  1. PyTorch 的预训练,是时候学习一下了
  2. 2.7 迁移学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  3. 《疯狂JAVA讲义》笔记1
  4. Android安全开发之Provider组件安全
  5. spring配置c3p0连接池、spring的声明式事务管理
  6. java log 断点_项目中常见的log日志调用
  7. vue 判断两对象是否一致_你的.vue文件就已经是你的文档了
  8. PAT练习题:D进制的A+B(C++)
  9. linux网速卡怎么办_手机同是4G网络,为什么总比别人慢,学会这个方法,网速成倍提升...
  10. 死锁、EAT、页表、单双缓冲区典型题目及解析
  11. libz.dylib的研究 libz.1.2.5.tbd
  12. 牛逼!java反射创建类实例的三种方式
  13. 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)...
  14. Nginx 代理设置
  15. 40. Element getAttribute() 方法
  16. 人事管理工作难开展?这几个人力资源管理软件用了没
  17. AppSpider:Xposed+JustTrustMe关闭SSL证书验证
  18. 什么是Web前端工程师?为什么Web前端工资如此之高呢?
  19. Android MediaRecorder录制视频
  20. C语言变量的存储类别和生存期

热门文章

  1. vLive虚拟直播,助力企业打造线上云年会
  2. 《2020年全球程序员收入报告》,看完报告我酸了!
  3. 利用企业微信免费发送各种信息,开发网页客服
  4. 网线,交换机基础命令
  5. 肖申克的救赎-救赎自己的心灵
  6. WebApi编程(一)-DOM
  7. 计算机的防呆接口,电脑上有哪些“防呆设计”
  8. 一文看懂互联网支付系统架构
  9. python常用的开发环境包括_Python 全栈:Python 四种常用开发环境总结
  10. 对于企业是云服务器划算还是自购服务器划算?