听说你的KM
听说你的KM
0.背景知识KM-plot是生存分析最常用的图表,没有之一。它接受的分组依据必须是离散型的数据,就是固定分成有限的几类,不能是数值这样的连续型数据。而年龄、基因表达量都是连续型数据,他们要做KM-plot时,就必须要先离散化。按照某个具体数值作为分界线,大于该值的是一个组, 小于该值的是另一个组。常见的离散化方案分界线的选择方法有三种:1.按照经验值,例如年龄按照60分为年长组和年轻
听说你的KM
0.背景知识
KM-plot是生存分析最常用的图表,没有之一。它接受的分组依据必须是离散型的数据,就是固定分成有限的几类,不能是数值这样的连续型数据。
而年龄、基因表达量都是连续型数据,他们要做KM-plot时,就必须要先离散化。按照某个具体数值作为分界线,大于该值的是一个组, 小于该值的是另一个组。
常见的离散化方案分界线的选择方法有三种:
1.按照经验值,例如年龄按照60分为年长组和年轻组。
2.按照中位数
.按照最佳截断值
最佳截断值是约登指数(敏感度+特异度-1)最大的点,说人话就是让KM-plot上的p值最小的值。例如我编的数据年龄范围是45-100,那么就是说在这个范围内去计算一系列的截断值和它对应的p值,出让p值最小的那个截断值。我经常说这是一种耍流氓行为!你可以不用但是不能不会啊。
1.编造一个示例数据
代码语言:javascript代码运行次数:0运行复制if(!require(survival))install.packages('survival',update = F,ask = F)
if(!require(tinyarray))install.packages('tinyarray',update = F,ask = F)
if(!require(survminer))install.packages('survminer',update = F,ask = F)
library(tinyarray)
library(survival)
library(survminer)
head(meta1) #tinyarray包里的示例数据
set.seed(1)
meta = mutate(meta1,age = sample(45:100,nrow(meta1),replace = T)) #伪造一列,年龄,做例子
head(meta)
2.用中位数来作为分界线
代码语言:javascript代码运行次数:0运行复制m = median(meta$age,na.rm = T);m #中位数
代码语言:javascript代码运行次数:0运行复制## [1] 7
代码语言:javascript代码运行次数:0运行复制group = ifelse(meta$age>m,"older","younger")
table(group)
代码语言:javascript代码运行次数:0运行复制## group
## older younger
## 88 89
代码语言:javascript代码运行次数:0运行复制sfit=survfit(Surv(time, event)~group, data=meta)
ggsurvplot(sfit,pval =TRUE, data = meta, = TRUE)
.用最佳截断值来作为分界线
代码语言:javascript代码运行次数:0运行复制cut = surv_cutpoint(meta, time = "time", event = "event",variables = "age")
m = cut[["cutpoint"]][1, 1];m
代码语言:javascript代码运行次数:0运行复制## [1] 92
代码语言:javascript代码运行次数:0运行复制group = ifelse(meta$age>m,"older","younger")
table(group)
代码语言:javascript代码运行次数:0运行复制## group
## older younger
## 1 146
代码语言:javascript代码运行次数:0运行复制sfit=survfit(Surv(time, event)~group, data=meta)
ggsurvplot(sfit,pval =TRUE, data = meta, = TRUE)
哈哈!我举得例子真好,按照中位数不显著,按照最佳截断值就显著。有些东西就是,你感觉不应该这样干但是架不住它太有诱惑力了。
生存分析的图有一个简化的画法,在我的包里,就图一个简单美丽。
代码语言:javascript代码运行次数:0运行复制group = factor(group,levels = c("younger","older"))
draw_KM(meta,group_list = group)
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-26 17:25:13
下一篇:log10数据要当心
推荐阅读
留言与评论(共有 10 条评论) |
本站网友 2013最新xp系统下载 | 25分钟前 发表 |
event)~group | |
本站网友 成都酒店预订 | 14分钟前 发表 |
如有侵权请联系 cloudcommunity@tencent 删除table数据图表metaplot | |
本站网友 北汽集团官网 | 2分钟前 发表 |
event)~group | |
本站网友 dala | 15分钟前 发表 |
说人话就是让KM-plot上的p值最小的值 | |
本站网友 中国银行香港有限公司 | 26分钟前 发表 |
就必须要先离散化 | |
本站网友 八一农垦大学 | 18分钟前 发表 |
levels = c("younger" | |
本站网友 上海自助餐 | 10分钟前 发表 |
就是固定分成有限的几类 | |
本站网友 珠海渔家乐 | 24分钟前 发表 |
按照中位数不显著 | |
本站网友 合淮阜高速 | 25分钟前 发表 |
ask = F) if(!require(tinyarray))install.packages('tinyarray' |