The itprint
option in the class
statement of SAS proc phreg
causes the display of the iteration history. This includes a Ridge value, along with the beta values and log likelihoods for each iteration. Ridge is usually zero but is non-zero whenever a log likelihood would otherwise be more negative than the log likelihood for the previous iteration. I need to know how SAS computes that ridge value and I can find nothing in the Details section for that procedure, or anywhere else.
It appears that, by default, that Ridge value is always 0.0001 * 2^n
, and that SAS starts with n=0
and increments n
until log likelihood is less negative than in the previous iteration. But I have tested at least one example where SAS used Ridge=0.4096
when Ridge=0.2048
would suffice.
Update: I now think that SAS is iterating 4^n
, rather than 2^n
. That explains skipping 2048
and is consistent with my testing so far.
So I think I have answered my own question and would now like academic support for this method. I'll likely seek that at Cross Validated as Robert Penridge and Joe suggest.
When PHREG fails to converge, that is, when a log likelihood value is more negative than in the previous iteration, the procedure computes a ridge value. This value is RIDGEINIT * 2^n
, with n
incremented until either the log likelihood value becomes less negative, or the ridge value reaches RIDGEMAX
.
The default RIDGEINIT
is 1e-4
.
The default RIDGEMAX
is MAX(1, RIDGEINIT) * 2000
.