楼主: jxapp_21238
9367 6

[问答] R语言如何画拟合后的函数图,生存分析 [推广有奖]

  • 0关注
  • 0粉丝

小学生

28%

还不是VIP/贵宾

-

威望
0
论坛币
18 个
通用积分
0.0003
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
4
精华
0
在线时间
4 小时
注册时间
2016-12-12
最后登录
2017-1-2

楼主
jxapp_21238 发表于 2016-12-15 10:27:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用R语言进行生存分析,并假设数据符合指数分布,调用的是内部的数据包,程序如下> library(survival)
> data(ovarian)
> s1<-Surv(ovarian$futime,ovarian$fustat)    #判断完全数据和截尾数据
> s1
[1]   59   115   156   421+  431   448+  464   475   477+  563   638   744+
[13]  769+  770+  803+  855+ 1040+ 1106+ 1129+ 1206+ 1227+  268   329   353
[25]  365   377+
> fit<-survreg(s1~1,dist='exponential')  #按照指数分布拟合函数,
到这里就已经拟合完了,下面是结果,可以看到参数是7.169
> fit

      Call:
      survreg(formula = s1 ~ 1, dist = "exponential")

      Coefficients:
     (Intercept)
               7.16935

       Scale fixed at 1

       Loglik(model)= -98   Loglik(intercept only)= -98
       n= 26

但是最后的拟合图不会画了,想知道怎么才能画出如下所示的这样的图(这是我截取的例子里面的图)
222.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:生存分析 R语言 coefficients Exponential coefficient 如何

沙发
机械唯物主义123 发表于 2016-12-24 00:42:55
360截图20161224003556084.jpg

藤椅
机械唯物主义123 发表于 2016-12-24 00:45:24
  1. fit<-survfit(s1~1)
  2. eqn=function(time)12*time/(log(log(7.17))*14*1227+12*time)
  3. #7.17是你模型里的系数,12和14代表发生和不发生的事件数,1227为总时间
  4. x1=seq(0,1200,100)
  5. line=eqn(x1)
  6. plot(fit,ylim=c(0.4,1))
  7. lines(x1,1-line,col="red",lwd=2)
  8. points(summary(fit)$time,summary(fit)$n.event,col="blue")
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 30 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
jxapp_21238 发表于 2016-12-27 15:39:36
机械唯物主义123 发表于 2016-12-24 00:45
不是要用survreg这个函数才可以完成指数分布的拟合吗?还是您这个代码里哪一步起到同样的效果?

报纸
机械唯物主义123 发表于 2016-12-27 16:54:33
生存分析中,kaplan-meier plot中折现的走势依据于你的实际数据,与你所选的模型无关,你看折线中的每个拐点和图上的数据点在竖直方向上是一一对应的,不管你用什么模型,用什么转换,这个折线只反映你的真实数据
而我画的曲线则是依据你的模型参数列出方程而拟合的线

地板
机械唯物主义123 发表于 2016-12-27 16:56:45
eqn=function(time)12*time/(log(log(7.17))*14*1227+12*time)##
这就是你的曲线方程,因为你取了指数,所以我在比值比前面又加了个log,

7
wangliangsai 发表于 2019-3-11 17:55:45
机械唯物主义123 发表于 2016-12-27 16:56
eqn=function(time)12*time/(log(log(7.17))*14*1227+12*time)##
这就是你的曲线方程,因为你取了指数,所 ...
hi, 能解释一下这个曲线方程的由来么?我不知道怎么推到的?十分感谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 17:04