SAS如何在PROC PHREG中计算脊线值

SAS如何在PROC PHREG中计算脊线值,sas,survival-analysis,Sas,Survival Analysis,SASproc phreg的class语句中的itprint选项会显示迭代历史。这包括脊线值,以及每个迭代的beta值和对数概率。岭通常为零,但当对数似然比上一次迭代的对数似然更为负时,岭为非零。我需要知道SAS是如何计算脊线值的,我在该过程的详细信息部分或其他任何地方都找不到任何信息 默认情况下,岭值始终为0.0001*2^n,SAS从n=0开始,并递增n,直到对数似然小于上一次迭代中的负。但我至少测试了一个示例,其中SAS在Ridge=0.2048时使用Ridge=0.4096就足够了 更新

SAS
proc phreg
class
语句中的
itprint
选项会显示迭代历史。这包括脊线值,以及每个迭代的beta值和对数概率。岭通常为零,但当对数似然比上一次迭代的对数似然更为负时,岭为非零。我需要知道SAS是如何计算脊线值的,我在该过程的详细信息部分或其他任何地方都找不到任何信息

默认情况下,岭值始终为
0.0001*2^n
,SAS从
n=0
开始,并递增
n
,直到对数似然小于上一次迭代中的负。但我至少测试了一个示例,其中SAS在
Ridge=0.2048
时使用
Ridge=0.4096
就足够了

更新:我现在认为SAS正在迭代
4^n
,而不是
2^n
。这就解释了跳过
2048
,这与我目前的测试是一致的


因此,我想我已经回答了我自己的问题,现在希望学术界支持这种方法。我很可能会在as中找到它并提出建议。

当PHREG无法收敛时,即当对数似然值比上一次迭代中的值更负时,该过程计算岭值。该值为
RIDGEINIT*2^n
,并随着
n
的增加而增加,直到对数似然值变为负值或脊线值达到
RIDGEMAX

默认的
RIDGEINIT
1e-4


默认的<代码> RigGEMAX <代码>是代码> max(1,RIDGEIIT)*2000 ./P>如果您在这里没有任何成功,您应该考虑将问题标记为迁移到交叉验证(),我不认为这是一个合适的CV问题;这是询问特定软件如何执行计算,而不是一般情况下如何执行计算。当然,不要交叉发布,如果您正在寻找更通用的统计建议,您应该标记迁移。也就是说,如果您要将此发布到其他地方,我建议。谢谢您的建议,Joe。我最终想要的是一篇支持SAS使用的任何方法的学术论文或文本。我认为将SAS的显示值和我自己的VB例程中的计算值进行比较是一个很好的开始。我认为,对该方法的学术支持对CV来说是很好的。最初的问题(SAS如何…)不会是,但一旦你进入了不再真正依赖特定软件来回答的领域,你就没事了。