2

我正在尝试使用我之前在 SAS 中制作的 Weibull 发行版来复制一些生存分析——我现在正在使用未经许可的机器工作,所以我正在使用 R(都来自 Windows)。我的(右删失)输入数据如下所示:

> head(mydata)
  ID         Key  Time  Score    Event    Censor
1 1231231    ZXC   28   182.34   0      1
2 4564564    ASD   28   320.04   0      1
3 7897897    QWE   28   306.32   0      1
4 9879879    QWE   28   211.92   0      1
5 6546546    ASD   28   276.14   0      1
6 3213213    ZXC   28   331.50   0      1

事件和审查员是二进制文件,分数在 150 到 450 之间变化,时间在 1 到 28 之间。输入数据集中有大约 30,000 行。

当我尝试:

mydatasr <- survreg(Surv(Time, Censor) ~ Score, dist = "w")

我收到一条警告消息:

在 survreg.fit(X, Y, weights, offset, init = init, controlvals = control, : 用完迭代并且没有收敛,

而且没有输出。

我已经在网上(并通过这个网站)搜索了这个味精,但没有找到任何表明问题可能是什么的东西。我在 SAS 中通过(proc 逻辑和)lifereg 放置相同的数据时没有收敛问题。

4

2 回答 2

3

在没有数据的情况下很难知道。您可以将默认为 30 的迭代次数加倍(或如下图所示为三倍):

(mydatasr <- survreg(Surv(Time, Censor) ~ Score , dist = "w", control = list(maxiter=90) )

有关更多选项,请参见 ?survreg.control。我也猜你可能错过了 Surv 对象在公式之前有一个右括号 -~

于 2015-08-25T18:59:06.023 回答
0

尝试这个:

   survreg(Surv(Time, Censor) ~ Score, data=mydata, dist = "w", scale=1)
于 2015-08-25T11:23:11.060 回答