当前位置:   article > 正文

【R语言】他说每个生存曲线一定要看到p值,不能0.05,0.01,0.001_生存分析p值

生存分析p值

前言

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

一、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值
  • 1
  • 2
  • 3

在这里插入图片描述

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

在这里插入图片描述

3.2 带-次方的调整P值

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

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

在这里插入图片描述
在这里插入图片描述

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

3.3 不带次方的调整P值

小数点后三个0直接取有效小数
在这里插入图片描述
这里取三位

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

在这里插入图片描述

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))#提取次方数
    lastnum
    lastnum <- as.numeric(lastnum)#转换数值类型
    lastnum
    if(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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

然后画图改p值

pval=p.value
  • 1

这样在循环出的每一张生存曲线的P值小数位都刚好合适了
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/132186
推荐阅读
相关标签
  

闽ICP备14008679号