【问题标题】:How to use string variable in survival analysis in R?如何在 R 的生存分析中使用字符串变量?
【发布时间】:2014-12-04 20:01:30
【问题描述】:

我希望在 R 中应用参数生存分析。我的数据是 Veteran 的肺癌研究数据。这是数据的前 20 列:

我想我需要将 celltype 转换为分类虚拟变量,就像这里的讲义建议的那样:

首先,我想知道是否有任何方法可以像原始形式一样使用celltype。如果有,怎么做?

其次,如何创建上面提到的虚拟变量?

以下是获取全部数据的方法:

library(survival)
veteran

这是模型在 R 中的拟合方式:

weibull <- survreg(S ~c2 + c3 + c4, dist="w")

这是输出:

【问题讨论】:

    标签: r survival-analysis r-factor


    【解决方案1】:

    您可以使用model.matrix 创建一个包含celltype 的4 个虚拟变量的模型矩阵:

    model.matrix( ~ 0 + celltype, veteran)
    

    结果:

        celltypesquamous celltypesmallcell celltypeadeno celltypelarge
    1                  1                 0             0             0
    2                  1                 0             0             0
    3                  1                 0             0             0
    4                  1                 0             0             0
    5                  1                 0             0             0
    .
    .
    .
    

    【讨论】:

      【解决方案2】:

      你不需要做任何特别的事情。只需在公式中输入该变量名称即可。 (如果这就是你所教的,我对你导师的 R 编程能力印象不深):

      > weibull <- survreg(Surv(time,status) ~celltype, dist="w", data=veteran)
      > weibull
      Call:
      survreg(formula = Surv(time, status) ~ celltype, data = veteran, 
          dist = "w")
      
      Coefficients:
            (Intercept) celltypesmallcell     celltypeadeno     celltypelarge 
              5.4065502        -1.0831923        -1.2162022        -0.2627843 
      
      Scale= 1.03048 
      
      Loglik(model)= -734.2   Loglik(intercept only)= -748.1
          Chisq= 27.87 on 3 degrees of freedom, p= 3.9e-06 
      n= 137 
      

      【讨论】:

      • 感谢您的代码,但您的输出与我讲义中的不同。你觉得有什么不同?我已将输出放入我上面的帖子中。
      • 看起来与我非常相似的输出。只有(Intercept)参数不同,推理统计都一样。您从未展示过 S 对象是如何创建的,所以您现在真的要求我们读懂您的想法。
      • 那是因为讲义中没有给出S。查看数据后,我认为 S = Surv(time,status)。很抱歉
      【解决方案3】:

      要更改因子,您可以使用以下代码:

      DataFrame$celltype[DataFrame$celltype == "large"] <- 1
      

      使用此代码,您可以更改数据框的每个部分。请记住,如果要计算某些内容,则必须将值的模式从因子更改为数字

      DataFrame$celltype <- as.numeric(DataFrame$celltype)
      

      最好的睡衣

      PS:我不确定这是不是问题

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 2015-12-27
        • 2020-01-11
        • 2022-08-04
        • 2015-02-17
        • 1970-01-01
        • 2021-12-11
        • 1970-01-01
        相关资源
        最近更新 更多