【R语言】他说每个生存曲线一定要看到p值,不能0.05,0.01,0.001
前言
起初听到这个我是不理解的,这不是统计学常识吗?划分三个程度:* ,** ,***。
头儿咋还要精确到小数位,不是画蛇添足吗?不了解归不了解,该干还是要干。
目录
- 前言
- 一、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相关推荐
- R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图、使用subset函数、使用drop_na函数
R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图.使用subset函数.使用drop_na函数 目录
- R语言ggplot2可视化强制设置x轴、y轴坐标的起始点为0或者其他实战
R语言ggplot2可视化强制设置x轴.y轴坐标的起始点为0或者其他实战 目录 R语言ggplot2可视化强制设置x轴.y轴坐标的起始点为0或者其他实战
- R语言游程检验:使用runs.test函数对二值序列数据执行游程检验(检验序列是否是随机的)
R语言游程检验:使用runs.test函数对二值序列数据执行游程检验(检验序列是否是随机的) 目录
- R语言 将多条生存曲线画到一起(不是拼图) ,一张图绘制多条生存曲线
网上找破了头都没找到这个办法,只找到一堆拼图的办法 其实方法很简单,survival包自带这个函数:ggsurvplot_combine() library(survival) library(sur ...
- R语言-解决载入了名字空间rlang0.4.5,但需要的是大于等于0.4.6
问题 # Error: package or namespace load failed for 'clusterProfiler' in loadNamespace(i, c(lib.loc, .l ...
- 关于R语言中混合线性模型summary()结果中交互作用beta值的含义
本文以2*2的实验设计为例,利用lmerTest包在R中进行混合线性模型分析,采用sum的因子编码方式,简单介绍一下在summary的结果中,交互作用的beta值的含义. 数据准备: library( ...
- R语言将字符串中的数字提取出来作为值
用到的函数 extract() 例子 首先构造数据 week <- c("week1","week2","week3","w ...
- R语言:无法精确计算带连结的p值
当你在使用cor.test,wilcoxon.test等这些函数时,不知道有没发现一个exact参数,以及是否遇到过无法精确计算带连结的p值这个warning.如果有,请往下看. 这个问题应该是很常见 ...
- 基于R语言 meta/metafor 包进行荟萃分析(一)
目录 目录 1.引言 2.安装,数据的读取和保存 不讲.这个有别的大佬讲了,没有创新点. 3.标准方法 3.1 固定效应模型与随机效应模型 3.1.1 连续型结果的数据测量 3.1.2 固定效应模型 ...
- 用R语言把数据玩出花样
用R语言把数据玩出花样 数据处理 R 去重 数据可视化 阅读759 R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程 ...
最新文章
- PyTorch 的预训练,是时候学习一下了
- 2.7 迁移学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- 《疯狂JAVA讲义》笔记1
- Android安全开发之Provider组件安全
- spring配置c3p0连接池、spring的声明式事务管理
- java log 断点_项目中常见的log日志调用
- vue 判断两对象是否一致_你的.vue文件就已经是你的文档了
- PAT练习题:D进制的A+B(C++)
- linux网速卡怎么办_手机同是4G网络,为什么总比别人慢,学会这个方法,网速成倍提升...
- 死锁、EAT、页表、单双缓冲区典型题目及解析
- libz.dylib的研究 libz.1.2.5.tbd
- 牛逼!java反射创建类实例的三种方式
- 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)...
- Nginx 代理设置
- 40. Element getAttribute() 方法
- 人事管理工作难开展?这几个人力资源管理软件用了没
- AppSpider:Xposed+JustTrustMe关闭SSL证书验证
- 什么是Web前端工程师?为什么Web前端工资如此之高呢?
- Android MediaRecorder录制视频
- C语言变量的存储类别和生存期