2
$\begingroup$

For regression analysis by fractional polynomials i used the PHREG procedure in SAS. But it didn't give any Hazard Ratio values. Is it normal or any mistake in my code?

proc phreg data=Sasuser.Myeloma;
model Time*Case(0)=age age*age; 
run;

Here's the output of SAS:

enter image description here enter image description here

Using the Estimate statement:

enter image description here

Many thanks,

$\endgroup$
2
  • 1
    $\begingroup$ Please share the output of SAS program and also the data. $\endgroup$
    – forecaster
    Commented Mar 23, 2015 at 15:17
  • 1
    $\begingroup$ Coding note following on from my answer below: If you were to centre Age on e.g. 60 years, you can use the estimate statement to get a hazard ratio for a 65 year old (relative to a 60 year old) with code like estimate age 5 age*age 25 -- inputting 5 as the first argument as $65 - 60 = 5$, and 25 as $(65 - 60)^2=25$ $\endgroup$ Commented Mar 25, 2015 at 19:39

1 Answer 1

2
$\begingroup$

On a technical programming note: As a rule, SAS will not output Hazard Ratios or HR (or indeed odds ratios, in a logistic regression) for any parameter term that is included in an interaction. Here, your age-squared variable $Age*Age$ is technically an interaction term.

The statistical estimation issue arising from your question is that when you have polynomial terms fit to a generalised linear model (and I'll include Cox Proportional Hazards models in here for the sake of this answer) the "solution" to the impact of age can no longer be described by a single parameter, and interpretation based on reading the two hazard ratios (for $Age$ and $Age*Age$) is quite complex.[Footnote 1]

What this means is that one would typically solve the (Cox) regression equation for a particular age. For example, what is the hazard ratio for a 70-year old relative to a 60-year old? [Footnote 2]

Solving this function at several values of age (e.g. for 40, 50, 70, 80, 90; all relative to reference of 60 years of age) would give some idea of the underlying shape of the function. Solving the function at a finer level of detail (e.g. with one year increments) would allow plotting of this function, which is a very helpful visualisation.

In SAS, this could be done with an ESTIMATE statement in PROC PHREG. But see also Sauerbrei et al., 2006: Multivariable regression model building by using fractional polynomials: Description of SAS, STATA and R programs which gives a macro for assessing fractional polynomial models in SAS, and also gives some examples of graphical visualisations.[Footnote 3]


[Footnote 1] Quoting from the Sauerbrei et al paper cited above:

Although FP [fractional polynomical] functions are mathematically simple, presenting the model in the usual way through the estimated β's and transformed values of the covariate X, these values give no impression of what is most relevant, namely the estimated function and its uncertainty at particular values of X. From a substantive point of view, the β's are not interpretable."

As an exception: if the age-squared coefficient is zero (indicating no quadratic element to the risk of outcome), then the model simplifies to a linear (on the log-scale) association... that is, the polynomial model reduces to a linear model where the $Age$ coefficient is the log(HR) -- and the exponential of this is the hazard ratio for a one-unit (year?) difference in age.

[Footnote 2] Note that if age is included in the model in years from birth (as you'd usually do!) this solution will return a hazard ratio relative to someone with an $Age$ of zero - so it would make sense to centre age on a reasonable reference-age first, such as e.g. cancer survival to estimate a hazard ratio for patients relative to someone with an age of 60.

[Footnote 3] Note finally that the technical language "fractional polynomial" usually refers to a class of model-fitting strategies that asesses several potential polynomial fits with e.g. linear/quadratic/cubic polynomial terms -- it's not clear if you have done this from your question, as you only have linear and quadratic terms.

$\endgroup$
3
  • $\begingroup$ I was told a method to avoid the age * age term being an interaction by creating an additional column age2 = age * age. I would like to use the Estimate statement instead but i couldn't manage. Please find my code above. $\endgroup$ Commented Mar 25, 2015 at 14:38
  • 1
    $\begingroup$ You can calculate Age*Age in a data step and then include that column (e.g. Age2) in your model. But note that this would give you the same output as above (ie. the log HR for Age2 would be 0.00160, with the same standard error.) It would also give you a hazard ratio by default (which will just be 0.00160 exponentiated...) but note that this suffers from interpretation problems as per the Sauerbrei quote in the answer ("The $\beta$'s are not interpretable...") $\endgroup$ Commented Mar 25, 2015 at 19:35
  • 1
    $\begingroup$ I'll add a comment to your question on the SAS code. $\endgroup$ Commented Mar 25, 2015 at 19:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.