Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Competing risk survival analysis

    Hello,

    I am approaching for the first time a competing risk survival analysis. I am using Stata/SE 12.
    I have two cohorts of patients with cancer and I am looking at the estimate of their risk of thrombosis; however, there is death as competing risk.

    Here is an example of my dataset:

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input int patient_id float cohort_num byte(age genderm thrombosis) float follow_up byte(thrombosis_competing_analysis death)
      3 1 58 0 0 .33 2 1
      4 1 73 1 1 .38 1 0
      5 1 60 1 0 .19 2 1
      6 1 38 0 0   1 0 0
      7 1 58 1 0   1 0 0
      8 1 44 0 0   1 0 0
      9 1 64 0 0 .49 2 1
     10 1 47 0 0 .48 2 1
     11 1 70 1 0 .01 2 1
     12 1 37 1 0 .05 2 1
     13 1 26 0 0  .1 0 0
     14 1 54 1 0  .2 0 0
     15 1 37 0 0  .6 0 0
     16 1 65 1 1  .5 1 0
     17 1 76 0 0   1 0 0
     18 1 34 1 0   1 0 0
    270 2 74 0 0 .78 2 1
    271 2 73 1 0   1 0 0
    272 2 70 0 0   1 0 0
    273 2 72 0 0   1 0 0
    274 2 61 1 0   1 0 0
    275 2 80 1 0 .08 2 1
    276 2 74 0 0   1 0 0
    277 2 73 0 0   1 0 0
    278 2 73 0 0   1 0 0
    279 2 81 1 1   1 1 0
    280 2 35 0 0  .2 0 0
    281 2 46 1 0  .3 0 0
    282 2 56 0 0  .8 0 0
    283 2 75 1 1  .7 1 0
    284 2 76 0 0   1 0 0
    285 2 24 1 0   1 0 0
    end


    I have first tried a standard Kaplan-Meier survival analysis, as follows:

    Code:
    stset follow_up, id(patient_id) failure(thrombosis == 1)
    by cohort_num, sort: stptime
    sts graph, failure by(cohort_num)
    sts test cohort_num, logrank
    stcox cohort_num age genderm

    Then I tried a competing risk survival analysis, as follows:

    Code:
    stset follow_up, id(patient_id) failure(thrombosis_competing_analysis == 1)
    stcrreg cohort_num, compete(thrombosis_competing_analysis == 2)
    stcurve, cif at1(cohort_num = 1) at2(cohort_num = 2)
    stcrreg cohort_num  age genderm, compete(thrombosis_competing_analysis == 2)

    My questions are:

    1) in the competing risk analysis is there a way to provide the failure rate (or the cumulative incidence) for each of my cohorts? Something similar to the stptime command of the standard survival analysis?


    2) I have read that to compare two cumulative incidence curve I should use the Gray's test (which is the corresponding of the log-rank test). Is there a way to perform the Gray's test in Stata?
    Lacking of the Gray's test, the only possible alternative that came to my mind was to provide the p value of the corresponding SHR from stcrreg (e.g. if cohort_num is not statistically significant, can I say that there is no difference between the two curves?)


    Many thanks in advance.

    Nicoletta

  • #2
    Re Q1: have you looked at -stcompet- on SSC? Items returned from -search competing risk- might also help you.

    Comment


    • #3
      Dear Stephen,

      Thanks for your suggestion. I think -stcompet- is exactly what I am looking for.
      I am not sure, though, if I am interpreting the output correctly.

      After reading about -stcompet- I used the following code:

      Code:
      stset follow_up, id(patient_id) failure(thrombosis_competing_analysis == 1)
      stcompet CumInc=ci HigherBound=hi LowerBound=lo, compet1(2) by(cohort_num)
      and the command -stcompet- generates in every row the incidence with the lower/upper limit of the confidence interval.

      How can I provide the cumulative incidence of the event coded as 1 in the two cohorts? I tried the following, but I am not sure if it is correct

      Code:
      by cohort_num, sort: sum CumInc if thrombosis_competing_analysis == 1
      by cohort_num, sort: sum HigherBound if thrombosis_competing_analysis == 1
      by cohort_num, sort: sum LowerBound if thrombosis_competing_analysis == 1
      Many thanks again!

      Nicoletta

      Comment


      • #4
        Sorry, I only know that -stcompet- exists; I have never used it in my own work. I suggest you search Statalist for earlier posts about -stcompet- and its use.

        Comment


        • #5
          Thanks.

          I am now considering -stcomlist-

          I think the more appropriate code for my aim (Q1) should be

          Code:
          stcomlist, compet1(2) by(cohort_num) at(1.1)
          I am not convinced, however, by the fact that it gives a different result than

          Code:
          stcomlist, compet1(2) by(cohort_num) at(1)
          My follow-up ends at 1 year, so ideally the second code should be the correct one. But since I have some events exactly at time 1 year, it looks like only the first code actually counts them... so I am still a bit confused...

          If anyone has any suggestion, it would be very much appreciated!
          Many thanks in advance!

          Nicoletta

          Comment


          • #6
            Hi Nicoletta,
            I am doing a similar analysis, and was wondering if you found the values derived from your "stcomlist" command to correspond to your "stcurve" graph? I noticed a discrepancy in that the values from "stcomlist" did not intersect at those specific points on my graph.

            Would appreciate any insight to this issue! Thanks

            Comment

            Working...
            X