美文网首页
生存分析

生存分析

作者: 张帆_d681 | 来源:发表于2018-11-21 09:41 被阅读0次
    x=c(2, -2.5, 3.5, 4, 4, -5, 6, -6, 7, -7, 8, -9, 10.5, 12.5, 19, 2.5, 5, 7, -8.5, 9, -10, 11, -11, 12, 13, -14, 15, -16, 17, -18, 19, -20, 21, 24, 32)
    A=data.frame() #创立A的数据框
     for (i in 1:length(x))
    {
      A[i,1]=x[i]
      if(A[i,1]<0) 
        A[i,2]=0
      else
        A[i,2]=1 #循环定义A[,2]根据是否截尾分为0(是)和1(否)
    }
    A[,3]=c(rep("high",15),rep("low",20))#建立分组
    A[,1]=abs(x) #取绝对值
    names(A)=c("survt","censor","wbs") #names()定义数据框每列的名称
    library(survival)
    Surv(A$survt,A$censor==1)
    y=Surv(A$survt,A$censor==1)
    kmfit1=survfit(y~1)
    summary(kmfit1)
    plot(kmfit1)
    kmfit2=survfit(y~A$wbs)
    plot(kmfit2,lty=c('solid','dashed'),col=c('black','blue'),xlab = 'survival time in days',ylab = 'survival probabilities')
    legend('topright',c('wbc high','wbc low'),lty = c('solid','dashed'),col = c('black','blue'))
    
    
    1. 某医生对15例接受易瑞沙治疗的肺癌骨转移患者进行随访,生存时间(月)如下:
      3,4,7+,9,10,11+ ,13,15,17+,18,18+,19,20,20+,22
      (3,4,-7,9,10,-11,13,15,-17,18,-18,19,20,-20,22)
      试估计各时点的生存率及其标准误,中位生存时间,并绘制生存曲线。
    #不进行两组间比较,仅单组生存分析的kaplan-meier法
    x=c(3,4,-7,9,10,-11,13,15,-17,18,-18,19,20,-20,22)
    A=data.frame()
    for (i in 1:length(x))
    {
      A[i,1]=x[i]
      if(A[i,1]<0) 
        A[i,2]=0
      else
        A[i,2]=1
    }
    A[,1]=abs(x)
    names(A)=c("survt","censor")
    library(survival)
    Surv(A$survt,A$censor)
    y=Surv(A$survt,A$censor)
    kmfit1=survfit(y~1)
    summary(kmfit1)
    plot(kmfit1)
    
    1. 某医生将20例乙型肝炎后肝硬化患者随机分为两组,分别采用甲、乙两种疗法进行治疗,随访10年得资料如下:
      甲疗法组 12,25,50+,68,70,79+,83+,91+,104+,114
      乙疗法组 9,19, 27,31,35,47+,48,58,82+,93
      试比较两疗法的疗效有无差别。
    x=c(12,25,-50,68,70,-79,-83,-91,-104,114,9,19,27,31,35,-47,48,58,-82,93)
    A=data.frame() #创立A的数据框
    for (i in 1:length(x))
    {
      A[i,1]=x[i]
      if(A[i,1]<0) 
        A[i,2]=0
      else
        A[i,2]=1 #循环定义A[,2]根据是否截尾分为0(是)和1(否)
    }
    A[,3]=c(rep("甲",10),rep("乙",10))#建立分组
    A[,1]=abs(x) #取绝对值
    names(A)=c("survt","censor","group") #names()定义数据框每列的名称
    library(survival)
    Surv(A$survt,A$censor==1)
    y=Surv(A$survt,A$censor==1)
    kmfit1=survfit(y~1)
    summary(kmfit1)
    plot(kmfit1)
    kmfit2=survfit(y~A$group)
    plot(kmfit2,lty=c('solid','dashed'),col=c('black','blue'),xlab = '生存时间(月)',ylab = '生存率')
    legend('topright',c('甲组','乙组'),lty = c('solid','dashed'),col = c('black','blue'))
    survdiff(Surv(survt,censor)~group, data=A,rho = 0)  #检验显著性,rho=0为log-rank法或Mantel Haenszel法,rho=1为Wilcoxon法
    
    image.png
    d=c() #必须重置d
    a=c(3,9,15,21,27,33,39,45,51,57,63,69) #代表时间
    b=c(37,2,33,33,33,38,31,11,8,6,5,2) #代表a相应时间内的期内死亡人数
    c=c(31,29,13,4,4,0,3,1,0,0,0,0) #代表a相应时间内的期内截尾人数
    for (i in 1:length(a))
    {  d=c(d,rep(a[i],each=b[i]),rep(-a[i],each=c[i])) } #将简化的向量a,b,c转换为完整的数据,之后可以用kaplan-meier法进行分析,也可以使用寿命表法(?不会)
    x=d
    
    

    相关文章

      网友评论

          本文标题:生存分析

          本文链接:https://www.haomeiwen.com/subject/hqjbfqtx.html