如何在R语言中使用Logistic回归模型

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
如何在R语言中使用Logistic回归模型?
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口关注今日:6 | 主题:188062
微信扫一扫
扫一扫,下载丁香园 App
即送15丁当
Logistic、Cox回归之图形化呈现(R语言中绘制Nomogram)&[精华]
页码直达:
这个帖子发布于3年零126天前,其中的信息可能已发生改变或有所发展。
今日看见@兄在帖子里问及Nomogram的做法(/bbs/topic/),因为内容较多,索性另开一个新帖,也便于和更多的人分享。本帖抛砖引玉,楼主懂的也是皮毛,希望有高手一起分享经验。首先什么是Nomogram?简单的说这是一种将Logistic回归或Cox回归图形化呈现的方法,可以让读者从图中很简便地根据预测变量的值得到因变量的大致概率数值。其对于Logistic回归或Cox回归的意义,大概相当于散点图对于简单线性回归的意义。具体的介绍以及作图原理,这里就不详述了,有兴趣的请参照附件中SAS公司的一份文档。下面简单说下Nomogram怎么看。如下图。欲知年龄50岁的女性(sex=1)的患病风险,只需要将age=45岁向points轴投射,则points=50;同理sex=1时,points≈37。两者相加则Total points=87;将此数值在Total points轴上向Risk概率轴投射,则可知风险大概在0.4和0.5之间。(参见图中红线)对于单个变量,只需要令Total points = points进行投射即可。接下来讲如何用R语言做出上面的这张图。简单起见,此帖仅讨论Logistic回归,Cox回归的方法类似,但相对更复杂。本帖所用数据引用自上海交大出版《医学统计学及SAS应用(修订版)》的例11.4,详细的内容请参见我的另一个帖子的附件(/bbs/topic/)。-------------------------------------代码开始---------------------------------------------require(rms)# 建立数据集y = c(0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1,
1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1,
1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0,
0, 0, 1, 0, 1, 0, 1, 0, 1)age = c(28, 42, 46, 45, 34, 44, 48, 45, 38, 45, 49, 45, 41, 46, 49, 46, 44, 48,
52, 48, 45, 50, 53, 57, 46, 52, 54, 57, 47, 52, 55, 59, 50, 54, 57, 60,
51, 55, 46, 63, 51, 59, 48, 35, 53, 59, 57, 37, 55, 32, 60, 43, 59, 37,
30, 47, 60, 38, 34, 48, 32, 38, 36, 49, 33, 42, 38, 58, 35, 43, 39, 59,
39, 43, 42, 60, 40, 44)sex = c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1,
0, 1, 1, 1, 0, 1)ECG = c(0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1,
0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2, 2, 0, 0, 2, 2,
0, 1, 2, 2, 0, 1, 0, 2, 0, 1, 0, 2, 1, 1, 0, 2, 1, 1, 0, 2, 1, 1, 0, 2,
1, 1, 0, 2, 1, 1)# 设定nomogram的参数ddist &- datadist(age, sex, ECG)options(datadist='ddist') # logistic回归f &- lrm(y ~ age + sex + ECG)
# nomogram nom &- nomogram(f, fun=plogis,
fun.at=c(.001, .01, .05, seq(.1,.9, by=.1), .95, .99, .999),
lp=F, funlabel=&Risk&)plot(nom)-------------------------------------代码结束---------------------------------------------END。欢迎交流。 更新: 有站友问到Cox回归的代码怎么写。Cox回归模型会复杂一些,因为可能涉及到不同时间点(3年、5年)生存概率的计算。下面讨论最简单的概率轴为中位生存时间的情况。若需要在映射轴呈现生存概率,或需要比较不同模型之间的优劣(比如c-index),另外再留言讨论。require(rms)require(Hmisc)# 建立数据集(使用rms包example的代码,未改动)n &- 1000set.seed(731)age &- 50 + 12*rnorm(n)label(age) &- &Age&sex &- factor(sample(c('Male','Female'), n,
rep=TRUE, prob=c(.6, .4)))cens &- 15*runif(n)h &- .02*exp(.04*(age-50)+.8*(sex=='Female'))dt &- -log(runif(n))/hlabel(dt) &- 'Follow-up Time'e &- ifelse(dt &= cens,1,0)dt &- pmin(dt, cens)units(dt) &- &Year&# 设定nomogram的参数ddist &- datadist(age, sex)options(datadist='ddist')# Cox回归S &- Surv(dt,e)f &- cph(S ~ rcs(age,4) + sex, x=T, y=T)med
&- Quantile(f)# nomogramnom &- nomogram(f, fun=function(x) med(x),
fun.at=c(13,12,11,9,8,7,6,5),
lp=F, funlabel=&Median Survival Time&)plot(nom)
不知道邀请谁?试试他们
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
四叶虫 edited on
收起全部有料回复
forsun1015 谢谢兄弟提出这个问题。本来我只是借用了帮助文档里的示例,没有深究。我查了下文档,这个rcs()函数是用于拟合三次样条函数(cubic spline function),其中的4表示的是节点(knots)。我也只知道这些了,毕竟不是学统计学的,样条函数是什么,示例中基于什么样的理由选择三次样条函数进行拟合,我也不甚了了。希望有统计学专业的大神帮我们解答一下,不胜感激。按我的理解,在没有明确理由的情况下,应该直接用 f &- cph(S ~ age + sex, x=TRUE, y=TRUE) 进行模型拟合就可以了。我也不是研究统计的,但是我对这个研究了一点,rcs全称是restricted cubic spline 即限制立方样条函数。为什么用它呢?我们在做回归拟合数据时,经常对因变量和自变量的假定是:自变量和因变量呈线性关系,logistic回归是自变量和logitP,cox是指自变量和一个h(t)变换的一个东东(记不清了,抱歉),这些假定就叫线性假定。我们做回归的时候自变量包括连续变量和ordinal variable(等级有序变量)和因变量不成线性的时候,我可以转化为分类,也可以变量log变换,还有就是spline技术,也就是引入多项式,但rcs又不是简单的引入多项式,简单的说就是引入3次方的项,这和你选择的节点有关,这样处理的结果就是可以很好的拟合数据又限制了引入项的自由度,所以Harrell (rms包的作者)推崇这种建模方法。我说的很概括,具体的内容你搜索rcs就可以了解。Harrell的论文也可以参考,他认为节点的位置不那么重要,而节点数目很重要。那么节点数取几个最合适还得靠你去找答案哟!
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
leizhengqing edited on
JCO网站上原文后附有R代码对于CEA和CA199两个连续变量能做出如上的图,感觉很困难,感觉经过了后处理,还有就是理论上SPSS确定了HR值就是对应了nomogram的分值,实际操作的时候很难做这么完美,这是怎么做到的?
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
小弟利用肿瘤病人的预后资料建模和已有的模型进行比较具体算法如下f7=cph(Surv(survival,sur) ~Ho, x=T, y=T, surv=T, time.inc=60)f8= cph(Surv(survival,sur) ~Kamura, x=T, y=T, surv=T, time.inc=60)现在需要比较两个模型c-index是否具有统计学意义网上搜索后用rcorrp.cens比较x7=predict(f7)x8=predict(f8)rcorrp.cens(x7,x8, Surv(survival,sur))获得如下结果
S.D. x1 more concordant x2 more concordant
uncensored
Relevant Pairs
-3.这里貌似可以看出X1的c-index为0.341,x2为0.344,但是我不知道这一结果中是否含有两者的c-index是否有统计学差异的信息,还请某位大神帮助解释,谢谢。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
有后续详细的bootstrap,C-index的详细步骤吗?
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
丁香园准中级站友
同问, 特别是bootstrap的参数设置有没有默认值帮助手册里的默认值,做出来的图,惨不忍睹
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
非常感谢,同问后续步骤
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
我试了一下,跑到f &- lrm(y ~ age + sex + ECG, data=dat)这一步就不对了,还有想请教楼主如果做的是COX回归该怎编nomogram
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 我试了一下,跑到f &- lrm(y ~ age + sex + ECG, data=dat)这一步就不对了,还有想请教楼主如果做的是COX回归该怎编nomogram以上代码都是我编译通过的,如果出现问题,可能是rms包加载不成功造成的。可以重新安装rms包或重装R试试看。至于Cox回归,篇幅就比较长了,稍后我更新下帖子。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
谢谢楼主,这两天我一直在忙这个nomogram的问题,应该不是rms 包的问题,这些我都加载好了,今天又试了试,bc&-read.delim(&clipboard&)library(rms)f&-cph(Surv(time,status)~age+histgard+stage+pathscat,x=T,y=T,data=bc,surv=T)surv&-Survival(f)nom&-nomogram(f,fun=list(function(x)surv(12,x),function(x)surv(36,x)),fun.at = c(.05,seq(.1,.6,by = .1),.65), funlabel=c(&1-year Survival&,&5-year Survival&),lp=0)这儿跑到最后一步就不行了,出现错误于value.chk(at, i, NA, -nint, Limval, type.range = &full&) :variable age does not have limits defined by datadist这样的错误,小弟初学R,一开始就上手这个实在很蛋疼,希望大哥指教
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
刚刚试了下楼主的代码是能用的,我想问问大哥rcs(age,4)这一步是什么意思,谢谢
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
还有fun.at里的参数设置该怎么选择,让图形更美观,十分感谢
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
我想提一个问题ECG应该是多分类变量,图中感觉是连续的
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 刚刚试了下楼主的代码是能用的,我想问问大哥rcs(age,4)这一步是什么意思,谢谢谢谢兄弟提出这个问题。本来我只是借用了帮助文档里的示例,没有深究。我查了下文档,这个rcs()函数是用于拟合三次样条函数(cubic spline function),其中的4表示的是节点(knots)。我也只知道这些了,毕竟不是学统计学的,样条函数是什么,示例中基于什么样的理由选择三次样条函数进行拟合,我也不甚了了。希望有统计学专业的大神帮我们解答一下,不胜感激。按我的理解,在没有明确理由的情况下,应该直接用 f &- cph(S ~ age + sex, x=TRUE, y=TRUE) 进行模型拟合就可以了。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
leizhengqing 我想提一个问题ECG应该是多分类变量,图中感觉是连续的在《医学统计学及SAS应用》中,原始资料ECG数据是分正常、轻度和重度三个等级的连续资料,所以该处的确应该是连续而非无序分类变量。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 谢谢楼主,这两天我一直在忙这个nomogram的问题,应该不是rms 包的问题,这些我都加载好了,今天又试了试,bc&-read.delim(&clipboard&)library(rms)f&-cph(Surv(time,status)~age+histgard+stage+pathscat,x=T,y=T,data=bc,surv=T)surv&-Survival(f)nom&-nomogram(f,fun=list(function(x)surv(12,x),function(x)surv(36,x)),fun.at = c(.05,seq(.1,.6,by = .1),.65), funlabel=c(&1-year Survival&,&5-year Survival&),lp=0)这儿跑到最后一步就不行了,出现错误于value.chk(at, i, NA, -nint, Limval, type.range = &full&) :variable age does not have limits defined by datadist这样的错误,小弟初学R,一开始就上手这个实在很蛋疼,希望大哥指教这个问题我也遇到过,请看一下我示例代码中的这两行。这两句定义了变量的范围,是必不可少的。ddist &- datadist(age, sex)options(datadist='ddist')以上
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
forsun1015 谢谢兄弟提出这个问题。本来我只是借用了帮助文档里的示例,没有深究。我查了下文档,这个rcs()函数是用于拟合三次样条函数(cubic spline function),其中的4表示的是节点(knots)。我也只知道这些了,毕竟不是学统计学的,样条函数是什么,示例中基于什么样的理由选择三次样条函数进行拟合,我也不甚了了。希望有统计学专业的大神帮我们解答一下,不胜感激。按我的理解,在没有明确理由的情况下,应该直接用 f &- cph(S ~ age + sex, x=TRUE, y=TRUE) 进行模型拟合就可以了。我也不是研究统计的,但是我对这个研究了一点,rcs全称是restricted cubic spline 即限制立方样条函数。为什么用它呢?我们在做回归拟合数据时,经常对因变量和自变量的假定是:自变量和因变量呈线性关系,logistic回归是自变量和logitP,cox是指自变量和一个h(t)变换的一个东东(记不清了,抱歉),这些假定就叫线性假定。我们做回归的时候自变量包括连续变量和ordinal variable(等级有序变量)和因变量不成线性的时候,我可以转化为分类,也可以变量log变换,还有就是spline技术,也就是引入多项式,但rcs又不是简单的引入多项式,简单的说就是引入3次方的项,这和你选择的节点有关,这样处理的结果就是可以很好的拟合数据又限制了引入项的自由度,所以Harrell (rms包的作者)推崇这种建模方法。我说的很概括,具体的内容你搜索rcs就可以了解。Harrell的论文也可以参考,他认为节点的位置不那么重要,而节点数目很重要。那么节点数取几个最合适还得靠你去找答案哟!
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
leizhengqing edited on
leizhengqing 我也不是研究统计的,但是我对这个研究了一点,rcs全称是restricted cubic spline 即限制立方样条函数。为什么用它呢?我们在做回归拟合数据时,经常对因变量和自变量的假定是:自变量和因变量呈线性关系,logistic回归是自变量和logitP,cox是指自变量和一个h(t)变换的一个东东(记不清了,抱歉),这些假定就叫线性假定。我们做回归的时候自变量包括连续变量和ordinal variable(等级有序变量)和因变量不成线性的时候,我可以转化为分类,也可以变量log变换,还有就是spline技术,也就是引入多项式,但rcs又不是简单的引入多项式,简单的说就是引入3次方的项,这和你选择的节点有关,这样处理的结果就是可以和好的拟合数据有限制了引入项的自由度,所以Harrell (rms包的作者)推崇这种建模方法。我说的很概括,具体的内容你搜索rcs就可以了解。Harrell的论文也可以参考,他认为节点的位置不那么重要,而节点数目很重要。那么节点数取几个最合适还得靠你去找答案哟!多谢兄弟耐心解答,受益匪浅!
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
谢谢兄弟们耐心解答,万分感谢
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
兄弟我有个问题请教下,如果我想用C-index描述做的nomogram模型好不好,我该从哪儿看c -index 和它的可信区间,有坛友说是如果是拟合的cox 模型可以用(1+DXY)/2,但是我用经典的AJCC分期系统拟合出的DXY=-0.352,这样算的话只有0.32,这应该是不可能的,求大哥指点下,到底该怎么看nomogram的c-index,十分感谢
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
刚刚摸索出了怎么用R计算C-index和他的置信区间,但是现在又出现了另外一个问题,想请教下大哥们我怎么比较两个模型的c-index 之间的差异有无统计学意义
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
JCO网站上原文后附有R代码对于CEA和CA199两个连续变量能做出如上的图,感觉很困难,感觉经过了后处理,还有就是理论上SPSS确定了HR值就是对应了nomogram的分值,实际操作的时候很难做这么完美,这是怎么做到的?
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
leizhengqing 我也不是研究统计的,但是我对这个研究了一点,rcs全称是restricted cubic spline 即限制立方样条函数。为什么用它呢?我们在做回归拟合数据时,经常对因变量和自变量的假定是:自变量和因变量呈线性关系,logistic回归是自变量和logitP,cox是指自变量和一个h(t)变换的一个东东(记不清了,抱歉),这些假定就叫线性假定。我们做回归的时候自变量包括连续变量和ordinal variable(等级有序变量)和因变量不成线性的时候,我可以转化为分类,也可以变量log变换,还有就是spline技术,也就是引入多项式,但rcs又不是简单的引入多项式,简单的说就是引入3次方的项,这和你选择的节点有关,这样处理的结果就是可以很好的拟合数据又限制了引入项的自由度,所以Harrell (rms包的作者)推崇这种建模方法。我说的很概括,具体的内容你搜索rcs就可以了解。也可以参考,他认为节点的位置不那么重要,而节点数目很重要。那么节点数取几个最合适还得靠你去找答案哟!rcs 时选几个节点合适,怎样选择合适的节点数,rcs(变量)不写节点时,默认的情况是怎么处理的,你参考的是Harrell哪篇的论文,期待回复
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
看看这篇文章,你就知道了
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
按那篇JCO附带的代码跑确实能跑出来,但是问题是比较的结果却看不懂 求大神能帮我解答一下 Dxy
S.D. x1 more concordant1.
5.x2 more concordant
0.uncensored
Relevant Pairs
Uncertain1.
-2.Dxy X2-2.
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
leizhengqing 看看这篇文章,你就知道了 谢谢,看原作者的书中,要做统计检验,如果非线性的更有意义才采用
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 按那篇JCO附带的代码跑确实能跑出来,但是问题是比较的结果却看不懂 求大神能帮我解答一下 Dxy
S.D. x1 more concordant1.
5.x2 more concordant
0.uncensored
Relevant Pairs
Uncertain1.
-2.Dxy X2-2. 如果仅仅是logistic回归(即结局为0/1) 而非cox生存 请问如何做calibation图及计算c-index?谢谢各位
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 兄弟我有个问题请教下,如果我想用C-index描述做的nomogram模型好不好,我该从哪儿看c -index 和它的可信区间,有坛友说是如果是拟合的cox 模型可以用(1+DXY)/2,但是我用经典的AJCC分期系统拟合出的DXY=-0.352,这样算的话只有0.32,这应该是不可能的,求大哥指点下,到底该怎么看nomogram的c-index,十分感谢 我分析出来是1+(而非-)0.352 然后除以2 不过这个图怎么画就不知道了....
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
楼主的演示用R做列线图对我们初学者非常有帮助,但是我有一些小问题想请教一下楼主,因为楼主最后做出来的列线图显示的是“Risk”,而我想显示“3-year survival”和5-year survival“,所以我用了如下命令:library(rms)coxm&-cph(Surv(time,status)~age+sex+Histograde,x=T,y=T,data=My_bc,surv=T)scoxm&-step(coxm)library(Design)dd&-datadist(My_bc)options(datadist=”dd”)surv&-Survival(scoxm)surv1&-function(x)surv(3*12,lp=x)surv2&-function(x)surv(5*12,lp=x)My_nom=nomogram(scoxm,fun=list(survl,surv2),lp=F,funlabel=c(‘3-yearsurvival’,’5-year survival’),maxscale=10,fun.at=c(0.95,0.9,0.85,0.8,0.75,0.7,0.6,0.5))以上步骤都可以运行,但是我运行如下命令画图的时候,就提示“错误于plot(My_nom) : 找不到对象'My_nom'” plot(My_nom)不知是为什么?然后想问一下bootstrap怎么做?C-index如何求?以及不同模型的C-index怎么比较?谢谢!
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
zlsports100 楼主的演示用R做列线图对我们初学者非常有帮助,但是我有一些小问题想请教一下楼主,因为楼主最后做出来的列线图显示的是“Risk”,而我想显示“3-year survival”和5-year survival“,所以我用了如下命令:library(rms)coxm&-cph(Surv(time,status)~age+sex+Histograde,x=T,y=T,data=My_bc,surv=T)scoxm&-step(coxm)library(Design)dd&-datadist(My_bc)options(datadist=”dd”)surv&-Survival(scoxm)surv1&-function(x)surv(3*12,lp=x)surv2&-function(x)surv(5*12,lp=x)My_nom=nomogram(scoxm,fun=list(survl,surv2),lp=F,funlabel=c(‘3-yearsurvival’,’5-year survival’),maxscale=10,fun.at=c(0.95,0.9,0.85,0.8,0.75,0.7,0.6,0.5))以上步骤都可以运行,但是我运行如下命令画图的时候,就提示“错误于plot(My_nom) : 找不到对象'My_nom'” plot(My_nom)不知是为什么?然后想问一下bootstrap怎么做?C-index如何求?以及不同模型的C-index怎么比较?谢谢!My_nom&-nomogram(scoxm,fun=list(survl,surv2),lp=F,funlabel=c(‘3-yearsurvival’,’5-year survival’),maxscale=10,fun.at=c(0.95,0.9,0.85,0.8,0.75,0.7,0.6,0.5))
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
两个模型C-index比较参照JCO文章,但是光是rcorrp.cens(x1, x2, S, Surv(TimeS,StateS, type = “right”))不出来结果呀,其中的S代表什么呀r&-rcorrp.cens(x1,x2, Surv(OS,OSSTATUS, type = “right”)pValue&-1-pnorm((r[11]-r[12])/(r[2]/r[5])*1.96)P值计算方法是参照网上的,但是总是提示找不到对象r。麻烦高手解答
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
(195.92k)请问可以把您的这个文件发到我的信箱吗?我在国外无法下载。试了一下你的 R code for nomogram, 很好用。多谢了!
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 兄弟我有个问题请教下,如果我想用C-index描述做的nomogram模型好不好,我该从哪儿看c -index 和它的可信区间,有坛友说是如果是拟合的cox 模型可以用(1+DXY)/2,但是我用经典的AJCC分期系统拟合出的DXY=-0.352,这样算的话只有0.32,这应该是不可能的,求大哥指点下,到底该怎么看nomogram的c-index,十分感谢Dxy是负值?我计算出来的Dxy都是正的哦
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
tobe同学 刚刚摸索出了怎么用R计算C-index和他的置信区间,但是现在又出现了另外一个问题,想请教下大哥们我怎么比较两个模型的c-index 之间的差异有无统计学意义原来你已经摸索出来了 你的置信区间是怎么计算的呢文献中统计检验用的都是Mantel-Haenszel test 这是一个用来做列联表趋势检验的方法,我也在研究如何应用
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
小弟利用肿瘤病人的预后资料建模和已有的模型进行比较具体算法如下f7=cph(Surv(survival,sur) ~Ho, x=T, y=T, surv=T, time.inc=60)f8= cph(Surv(survival,sur) ~Kamura, x=T, y=T, surv=T, time.inc=60)现在需要比较两个模型c-index是否具有统计学意义网上搜索后用rcorrp.cens比较x7=predict(f7)x8=predict(f8)rcorrp.cens(x7,x8, Surv(survival,sur))获得如下结果
S.D. x1 more concordant x2 more concordant
uncensored
Relevant Pairs
-3.这里貌似可以看出X1的c-index为0.341,x2为0.344,但是我不知道这一结果中是否含有两者的c-index是否有统计学差异的信息,还请某位大神帮助解释,谢谢。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
关于丁香园

我要回帖

 

随机推荐