I work in the medical field. I want to calculate a 10 yr risk of cardiovascular disease (CVD) based on a published forumla. That is to say to be able to calculate the same as this page.

But I can't figure out how to implement the published algorithm. Here is the source article.

And here is a supplemental tab that contains more information.

And here is a Word document that gives examples of how to actually calculate it, using examples.

Especially look in this document starting at page 33, Table 4.

I am unable to post the table here that seems to contain the algorithm here, it doesn't format correctly, but it can be seen here (a cross-post). I encourage readers to view the table at that link.

In Table 4, there is a row stating "Baseline Survival", and this is use with the other input variables (hypertension values, diabetes etc). I can't see how this is calculated. And the article doesn't expand upon it. So I am assuming it is a standard concept that those who work in the field of medical statistics would immediately understand it without explanation. I guess it has to do with how any population survives over time, with a certain percentage dying off from various causes. And it seems to be different between males and females.

So my specific question is how to calculate baseline survival. When I Google this, I am given links to Baseline Hazard functions. But they all seem generic. In the examples from Table 4, the baseline survival of a 55 yr female is "0.9665" and for a 55 yr male is "0.9144". How do I come by these values?


Baseline survival is the survival estimate or cumulative hazard at a given time point from a pattern of covariates (usually set to zero or, more realistically, the mean) and the model-derived coefficients. In this sense, you do not need to calculate baseline survival, simply use the baseline survival provided for each stratum of sex and race.

Using R:

sex <- 0
aarace <- 1
age <- 55
totchol <- 213
hdlc <- 50
treatsysbp <- 1
untreatsysbp <- 120
smoke <- 0
dm <- 0
basesurv <- 0.9144

sumxbeta <- log(age)*12.344 + log(totchol)*11.853 + log(age)*log(totchol)*-2.664 + 
            log(hdlc)*-7.990 + log(age)*log(hdlc)*1.769 + log(treatsysbp)*1.797 + 
            log(untreatsysbp)*1.764 + smoke*7.837 + log(age)*smoke*-1.795 + dm*0.658

ascvd <-1-basesurv^exp(sumxbeta-60.69)

The equation in the example suggests (IndX'B - MeanX'B). However, they carry out the calculation of (MeanX'B - IndX'B):


yielding a 10-year risk of 0.053. As far as I can discern, 61.18 is the covariate pattern from an individual's values not outlined in their example. Further, note the equation: 1-S^exp(IndX'B - MeanX'B) would suggest:

1-0.9144^exp(61.18-60.69) = 0.13594

which is not the same as a risk of 0.053 in the worked example.

| cite | improve this answer | |
  • $\begingroup$ Thank you so much for looking at this. Do you think it would be valid to use the same Baseline risk value (as provided in the table for gender and race) for all ages? It seems to me that this value would vary with age. Also, do you have any idea how the mean would be calculated? Usually mean is total sum / number items. But that wouldn't give the value they show. Thanks again so much! $\endgroup$ – kdtop Jan 12 '17 at 15:20
  • $\begingroup$ The risk of the patient is further modified from the mean age of the group using actual age. The final result will be age-sensitive. I'm not clear which mean you are seeking to calculate. $\endgroup$ – Todd D Jan 12 '17 at 16:28
  • $\begingroup$ Todd, thanks again for your feedback. I have decided that I can't use this equation. I don't feel they gave enough information. I have decided to go with a simpler Framingham CVD risk formula. So I guess I am going to leave this problem uncracked. But I do appreciate your help. $\endgroup$ – kdtop Jan 13 '17 at 13:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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