Answers:
(就 R
编码风格而言,最好不要 T
用作变量名,因为它是的别名 TRUE
,这种做法不可避免地会导致问题。)
您的问题有点模棱两可;有几种解释它的方法。让我们来看一下它们:
您规定要模拟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
另一方面,我们可以认为在整个研究过程中由于(例如)辍学,审查是随机发生的(通常独立发生)。在这种情况下,过程是模拟两组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
只是为了确保我们在谈论同一件事,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型审查所需要的唯一参数是审查时间,因此我不确定该比率是如何计算出来的。
min
(或更一般而言pmin
)是在中进行模拟的方法R
。(在非生存性研究中,正确检查的一个示例是对废水中细菌菌落的分析。这是通过手动计数显微镜载玻片上可见的菌落来完成的。存在严重污染时,得出的结果是“数量太多”。 )
optim
功能很棒),但是您将如何校准第二个答案以实现一定比例的审查?