This is my first post here, so please bear with me! I'm comparing several biomarkers with Kaplan-Meier curves and calculating hazard ratios for different risk groups (defined by a certain, well established cut-off value of the biomarker) by using Cox regression in R. We have 3 tiers with a low, intermediate and high risk group, however the low risk group for one biomarker contains no events.
This, so my understanding, leads to quasi-separation in the Cox regression and hence infinite values and large coefficients and SEs. I understand the Likelihood ratio is still valid, but what I'm obviously interested in is a calculation of the HR from exp(coef). A sample of the data is displayed below:
> head(riskgroups) ID FU_3y_death FU_3y_death_days biomarker bm.riskcat 1 0 1095 58.2 group.3 2 1 79 11.5 group.2 22 0 1095 11.7 group.2 27 0 929 9.0 group.2 44 0 949 7.0 group.2 46 0 1095 7.5 group.2
Now I have found that using Firth's method might allow a workaround, hence I've tried to run the analysis using coxphf with the following code:
cox.groups <- coxphf(riskgroups, formula=Surv(FU_3y_death_days,FU_3y_death) ~ bm.riskcat, pl=T, firth = T)
Rather bizarrely, this results in the following error:
Error in coxphf(riskgroups, formula = Surv(FU_3y_death_days, FU_3y_death) ~ : NA/NaN/Inf in foreign function call (arg 3)
I would have assumed that this is exactly what coxphf is trying to avoid? When setting pl to FALSE (to base the tests on the Wald method instead of profile penalised LL) I get results with all NaN. Of course the fact that there is no event in the lowest risk group is in itself an important message, but I do require hazard ratios for the second and third tier of risk categories to compare the different biomarkers. Any bright thoughts on this, my research into this has hit a wall after 3 days of reading...