为什么flexsurvreg在这个痛苦的简单案例中失败了?

为什么flexsurvreg在这个痛苦的简单案例中失败了?,r,initialization,survival-analysis,convergence,R,Initialization,Survival Analysis,Convergence,看看这个痛苦的简单案例和错误。在线评论 库(flexsurv) #>装载所需包裹:生存 图书馆(tidyverse) 图书馆(magrittr) #> #>附加包:“magrittr” #>以下对象被“package:purrr”屏蔽: #> #>设置名称 #>以下对象已从“package:tidyr”屏蔽: #> #>提取 种子集(2019年) 列车数据survreg(公式=Surv(等待时间,称为尚未)~排队时间, #>数据=列车数据,dist=“威布尔”) #> #>系数: #>(

看看这个痛苦的简单案例和错误。在线评论

库(flexsurv)
#>装载所需包裹:生存
图书馆(tidyverse)
图书馆(magrittr)
#> 
#>附加包:“magrittr”
#>以下对象被“package:purrr”屏蔽:
#> 
#>设置名称
#>以下对象已从“package:tidyr”屏蔽:
#> 
#>提取
种子集(2019年)
列车数据survreg(公式=Surv(等待时间,称为尚未)~排队时间,
#>数据=列车数据,dist=“威布尔”)
#> 
#>系数:
#>(截获)排队的时间
#>4.533765e+05-2.886352e-04
#> 
#>比例=0.518221
#> 
#>Loglik(型号)=-40.2 Loglik(仅限截距)=-40.5
#>1个自由度的Chisq=0.5,p=0.48
#>n=10
#flexsurvreg甚至无法为时间队列获取有效的初始值设定项,即使
#医生说这是数据的平均值
flexsurvreg中的flexsurv_模型错误(Surv(等待时间,称为尚未)~time_排队,数据=列车数据,:参数2的初始值超出范围
#也许预测值的低方差是问题所在?所以让我们把预测值调高
#我只是想看看
列车数据%%mutate\u at(“排队时间”,减法,1.57073e9)
列车运行数据
#>#tibble:10 x 3
#>等待时间已调用,但时间已排队
#>                     
#>  1      131.          0       3365.
#>  2      358.          1       3421.
#>  3     1352.          1       3541.
#>  4     1762.          0       3941.
#>  5     1208.          0       4327.
#>  6      522.          1       4377.
#>  7      242.          0       4659.
#>  8      143.          0       4810.
#>  9     1203.          1       4943.
#> 10      615.          1       5527.
#现在它初始化,所以这是不同的…但现在它不会收敛!
flexsurvreg中的flexsurv_模型警告(Surv(等待时间,称为尚未)~time_排队,数据
#>=列车数据:优化可能尚未收敛到最大值
#>可能性-Hessian不是正定的。
由(v0.3.0)于2019年10月19日创建


我主要想使用
flexsurv
以获得更好的绘图选项和更标准的形状和比例定义——辅助参数也非常吸引人——但现在我主要想知道我是否真的做错了什么,而
flexsurv
正试图告诉我不要相信我的基础
生存
模型e因此

Marco Sandri指出,重新居中可以修复它;但是,不重新缩放的重新居中只能保证初始化,并且如果方差非常大,仍然不会导致收敛。我认为这是一个错误,因为
生存
对于具有完全相同值的完全相同模型没有问题。产生了一个问题

尝试重新缩放您的
time\u queued
变量,例如使用
train\u data$time\u queued Well我将其从0重新缩放为1(使用
train\u data%%mutate\u at(“time\u queued”,rescale,c(0,1))
),这确实有效,或者说似乎有效。
flexsurvreg
没有任何问题。我在文档中看不到任何关于价值重定尺度的必要性,甚至没有任何建议——以及它的生存数据,这些将是时间值,通常以秒为单位,经过多年!好吧,不管怎样,这个故事的寓意是我真的需要去做的吗如果我想使用flexsurv?的话,我会先重新缩放,然后再取消缩放,以获得可解释的结果。因为…现在我不需要了。你不需要重新缩放。你只需使用
train_data$time_queued>将变量居中即可