如何模拟审查数据


11

我想知道如何模拟n个Weibull分布寿命的样本,其中包括类型I右删失的观测值。例如,让n = 3,形状= 3,比例= 1,审查率= .15,审查时间= .88。我知道如何生成Weibull样本,但是我不知道如何生成在R中类型为I右删失的删失数据。

T = rweibull(3, shape=.5, scale=1)

Answers:


11

(就 R 编码风格而言,最好不要 T 用作变量名,因为它是的别名 TRUE,这种做法不可避免地会导致问题。)


您的问题有点模棱两可;有几种解释它的方法。让我们来看一下它们:

  1. 您规定要模拟1型审查。通常,这是指该实验运行了一段时间,然后审查了当时尚未发生该事件的任何研究单位。如果这是您的意思,那么(必要)不可能规定形状和比例参数以及同时检查时间和比率。规定了任何三个之后,最后一个必须固定。

    (尝试)求解shape参数:
    此操作失败;似乎无论形状参数是什么,都不可能在比例值为0.8的Weibull分布的.88的审查时间内获得15%的审查率。

    optim(.5, fn=function(shp){(pweibull(.88, shape=shp, scale=1, lower.tail=F)-.15)^2})
    # $par
    # [1] 4.768372e-08
    # ...
    # There were 46 warnings (use warnings() to see them)
    pweibull(.88, shape=4.768372e-08, scale=1, lower.tail=F)
    # [1] 0.3678794
    
    optim(.5, fn=function(shp){(pweibull(.88, shape=shp, scale=1, lower.tail=F)-.15)^2},
          control=list(reltol=1e-16))
    # $par
    # [1] 9.769963e-16
    # ...
    # There were 50 or more warnings (use warnings() to see the first 50)
    pweibull(.88, shape=9.769963e-16, scale=1, lower.tail=F)
    # [1] 0.3678794
    

    求解scale参数:

    optim(1, fn=function(scl){(pweibull(.88, shape=.5, scale=scl, lower.tail=F)-.15)^2})
    # $par
    # [1] 0.2445312
    # ...
    pweibull(.88, shape=.5, scale=0.2445312, lower.tail=F)
    # [1] 0.1500135
    

    解决审查时间:

    qweibull(.15, shape=.5, scale=1, lower.tail=F)
    # [1] 3.599064
    

    解决审查率:

    pweibull(.88, shape=.5, scale=1, lower.tail=F)
    # [1] 0.3913773
    
  2. 另一方面,我们可以认为在整个研究过程中由于(例如)辍学,审查是随机发生的(通常独立发生)。在这种情况下,过程是模拟两组Weibull变量。然后,您只需要注意先出现的情况即可:您将较小的值用作终结点,如果较小的值是检查时间,则调用该单元进行检查。例如:

    set.seed(0775)  
    t    = rweibull(3, shape=.5, scale=1)
    t      # [1] 0.7433678 1.1325749 0.2784812
    c    = rweibull(3, shape=.5, scale=1.5)
    c      # [1] 3.3242417 2.8866217 0.9779436
    time = pmin(t, c)
    time   # [1] 0.7433678 1.1325749 0.2784812
    cens = ifelse(c<t, 1, 0)
    cens   # [1] 0 0 0
    

非常有趣的答案(optim功能很棒),但是您将如何校准第二个答案以实现一定比例的审查?
Dan Chaltiel

@DanChaltiel,第二个没有经过真正的校准-只是随机的。给定您要的其他方面(类似于#1),也可能无法达到所需的比例。也就是说,有可能通过优化相对于事件分布的审查分布来确定总体比例(观察到的比例将在迭代之间反复出现)。
gung-恢复莫妮卡

2

只是为了确保我们在谈论同一件事,I型检查是在什么时候

...实验具有一定数量的主题或项目,并在预定的时间停止实验,此时剩余的任何主题都将被右删失。

要使用审查时间= 0.88生成正确的审查数据,您只需使用以下min功能:

T <- rweibull(3, shape=.5, scale=1)
censoring_time <- 0.88
T_censored <- min(censoring_time, T)

但是,我不确定您说“ 审查率= 0.15 ”时的意思。...您是说要对15%的主题进行正确审查吗?这些关于审查的说明似乎表明,I型审查所需要的唯一参数是审查时间,因此我不确定该比率是如何计算出来的。


1
请注意,您的报价不是审查的定义:仅是示例。当将每个值与预定阈值进行比较并在该值超过该阈值时,使用非数字检查指示符替换该值时,将发生右检查。无论如何,应用min(或更一般而言pmin)是在中进行模拟的方法R。(在非生存性研究中,正确检查的一个示例是对废水中细菌菌落的分析。这是通过手动计数显微镜载玻片上可见的菌落来完成的。存在严重污染时,得出的结果是“数量太多”。 )
呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜声叫声叫叫叫叫叫叫声声声声声((((Peters
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.