I assume you are trying to estimate the hazard ratio of changing the original HEIGHT variable (you've called it BMI) from 50 to 65 in each SEX level. If so, you don't need ESTIMATE statements - just use the HAZARDRATIO statement. But even if that is not the case, the HAZARDRATIO statement can be used as a trick to find out appropriate contrast coefficients for hypotheses in linear and generalized linear models that use the identity link (possibly involving spline effects) as discussed in this note (see also the links to related notes).
For this example (I'll stick with the original HEIGHT variable), the HAZARDRATIO statement produces the hazard ratio estimates and the E option shows the coefficients you would use in ESTIMATE statements (with positional syntax) to obtain the same estimates - this is done in the first two ESTIMATE statements.
The last two ESTIMATE statements use nonpositional syntax. Note that for the HTS*SEX effect, the value of the splined variable (HEIGHT) follows the value for the CLASS variable (SEX) and the value used for SEX is its ordinal level - 2 meaning the second value, "F" (since you specified REF="F" making it the second level). The E options in all the statements confirm the same coefficients were used in each case.
proc phreg data=sashelp.class;
class sex(ref="F")/param=ref;
effect htS=spline(height/ basis=tpf(noint) NATURALCUBIC knotmethod=percentiles(4));
model age=htS|sex;
hazardratio height / units=15 at(height=50) e;
estimate '50 to 65 sex=f' htS 15 49.467243 3.750341/ e exp cl;
estimate '50 to 65 sex=m' htS 15 49.467243 3.750341 htS*sex 15 49.467243 3.750341 / e exp cl;
estimate '50 to 65 sex=f' htS [-1,50] [1,65] / e exp cl;
estimate '50 to 65 sex=m' htS [-1,50] [1,65] htS*sex [-1,2 50] [1,2 65] / e exp cl;
run;
... View more