Announcement

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

  • Matching with competing risk regression.

    Dear All,

    I want to estimate the effect of treatment (COVID) on a survival outcome using matching. I am trying to match on the 8 pre-treatment period observables, but am not sure how to incorporate which pairs are matched in the final stcrreg regression:

    Code:
    . preserve
    
    . bysort grpatid: gen counter=_n /*create period counter*/
    
    
    . reshape wide age75plus tavg lnprcp chf cad cancer copd dm stroke htn oarth liver renal depress cumchf_f cumcad_f cumcancer_f cumcopd_f cumdm_f cumstrok
    > e_f cumhtn_f cumoarth_f cumliver_f cumrenal_f cumdepress_f, i(grpatid) j(counter)
    (j = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31)
    
    Data                               Long   ->   Wide
    -----------------------------------------------------------------------------
    Number of observations           50,166   ->   1,703       
    Number of variables                  45   ->   794         
    j variable (31 values)          counter   ->   (dropped)
    xij variables:
                                  age75plus   ->   age75plus1 age75plus2 ... age75plus31
                                       tavg   ->   tavg1 tavg2 ... tavg31
                                     lnprcp   ->   lnprcp1 lnprcp2 ... lnprcp31
                                        chf   ->   chf1 chf2 ... chf31
                                        cad   ->   cad1 cad2 ... cad31
                                     cancer   ->   cancer1 cancer2 ... cancer31
                                       copd   ->   copd1 copd2 ... copd31
                                         dm   ->   dm1 dm2 ... dm31
                                     stroke   ->   stroke1 stroke2 ... stroke31
                                        htn   ->   htn1 htn2 ... htn31
                                      oarth   ->   oarth1 oarth2 ... oarth31
                                      liver   ->   liver1 liver2 ... liver31
                                      renal   ->   renal1 renal2 ... renal31
                                    depress   ->   depress1 depress2 ... depress31
                                   cumchf_f   ->   cumchf_f1 cumchf_f2 ... cumchf_f31
                                   cumcad_f   ->   cumcad_f1 cumcad_f2 ... cumcad_f31
                                cumcancer_f   ->   cumcancer_f1 cumcancer_f2 ... cumcancer_f31
                                  cumcopd_f   ->   cumcopd_f1 cumcopd_f2 ... cumcopd_f31
                                    cumdm_f   ->   cumdm_f1 cumdm_f2 ... cumdm_f31
                                cumstroke_f   ->   cumstroke_f1 cumstroke_f2 ... cumstroke_f31
                                   cumhtn_f   ->   cumhtn_f1 cumhtn_f2 ... cumhtn_f31
                                 cumoarth_f   ->   cumoarth_f1 cumoarth_f2 ... cumoarth_f31
                                 cumliver_f   ->   cumliver_f1 cumliver_f2 ... cumliver_f31
                                 cumrenal_f   ->   cumrenal_f1 cumrenal_f2 ... cumrenal_f31
                               cumdepress_f   ->   cumdepress_f1 cumdepress_f2 ... cumdepress_f31
    -----------------------------------------------------------------------------
    
    . 
    . psmatch2 treat state_d Female age75plus1 age75plus2 age75plus3 age75plus4 age75plus5 age75plus16 age75plus7 age75plus8 Asian Black Hispanic lnPopDensit
    > y tavg1 tavg2 tavg3 tavg4 tavg5 tavg6 tavg7 tavg8 lnprcp1 lnprcp2 lnprcp3 lnprcp4 lnprcp5 lnprcp6 lnprcp7 lnprcp8 chf_b cad_b cancer_b copd_b dm_b stro
    > ke_b htn_b oarth_b liver_b renal_b depress_b , ties
    note: age75plus2 omitted because of collinearity.
    note: age75plus3 omitted because of collinearity.
    note: age75plus4 omitted because of collinearity.
    note: age75plus5 omitted because of collinearity.
    note: age75plus7 omitted because of collinearity.
    note: age75plus8 omitted because of collinearity.
    
    Probit regression                                       Number of obs =  1,627
                                                            LR chi2(35)   =  67.01
                                                            Prob > chi2   = 0.0009
    Log likelihood = -517.68107                             Pseudo R2     = 0.0608
    
    ------------------------------------------------------------------------------
           treat | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
    -------------+----------------------------------------------------------------
         state_d |   .0101961   .0053687     1.90   0.058    -.0003263    .0207185
          Female |  -.1764547   .0888231    -1.99   0.047    -.3505449   -.0023646
      age75plus1 |   .0276325   .2025255     0.14   0.891    -.3693103    .4245753
      age75plus2 |          0  (omitted)
      age75plus3 |          0  (omitted)
      age75plus4 |          0  (omitted)
      age75plus5 |          0  (omitted)
     age75plus16 |    .061685   .1995193     0.31   0.757    -.3293656    .4527357
      age75plus7 |          0  (omitted)
      age75plus8 |          0  (omitted)
           Asian |   .1135679    .263324     0.43   0.666    -.4025377    .6296734
           Black |  -.1448756   .1527226    -0.95   0.343    -.4442065    .1544552
        Hispanic |   .1313628   .1440939     0.91   0.362    -.1510559    .4137816
    lnPopDensity |    .176917   .1240405     1.43   0.154    -.0661978    .4200319
           tavg1 |    .023828   .2270113     0.10   0.916     -.421106     .468762
           tavg2 |   .0198481   .2761293     0.07   0.943    -.5213552    .5610515
           tavg3 |   .0951089     .15344     0.62   0.535     -.205628    .3958457
           tavg4 |  -.0598312   .0926228    -0.65   0.518    -.2413686    .1217061
           tavg5 |  -.0177726   .2445209    -0.07   0.942    -.4970247    .4614794
           tavg6 |   .1510144   .2468117     0.61   0.541    -.3327277    .6347564
           tavg7 |  -.0741244    .206211    -0.36   0.719    -.4782904    .3300417
           tavg8 |  -.0959662    .112928    -0.85   0.395     -.317301    .1253686
         lnprcp1 |   -.054779   .2997335    -0.18   0.855    -.6422459    .5326878
         lnprcp2 |   .0383508   .3075831     0.12   0.901     -.564501    .6412026
         lnprcp3 |  -.1618274    .141706    -1.14   0.253    -.4395661    .1159114
         lnprcp4 |  -.0255357   .0840448    -0.30   0.761    -.1902604     .139189
         lnprcp5 |  -.1859812   .2462032    -0.76   0.450    -.6685305    .2965681
         lnprcp6 |   .3399121    .266266     1.28   0.202    -.1819597    .8617839
         lnprcp7 |   -.330242   .3905652    -0.85   0.398    -1.095736    .4352518
         lnprcp8 |   .1491762   .2697388     0.55   0.580    -.3795021    .6778544
           chf_b |   .3893635   .2031189     1.92   0.055    -.0087422    .7874693
           cad_b |   -.500356   .2751061    -1.82   0.069    -1.039554     .038842
        cancer_b |   .0518006    .135363     0.38   0.702    -.2135061    .3171072
          copd_b |   .1001201   .1491387     0.67   0.502    -.1921863    .3924266
            dm_b |   .0603563   .1102821     0.55   0.584    -.1557926    .2765051
        stroke_b |  -.5330403   .5471012    -0.97   0.330    -1.605339    .5392583
           htn_b |   .2421702   .0982421     2.47   0.014     .0496193    .4347212
         oarth_b |   .0156505   .1823614     0.09   0.932    -.3417713    .3730723
         liver_b |   .0174328   .2858999     0.06   0.951    -.5429208    .5777864
         renal_b |   .0909087    .133533     0.68   0.496    -.1708112    .3526287
       depress_b |   .1411918   .1638635     0.86   0.389    -.1799747    .4623583
           _cons |  -3.852092   2.356527    -1.63   0.102      -8.4708    .7666153
    ------------------------------------------------------------------------------
    
    . 
    . keep grpatid _pscore- _pdif
    
    
    . *generate pair from output
    . gen pair=.
    (1,703 missing values generated)
    
    . replace pair =_id if _treated==0
    (1,454 real changes made)
    
    . replace pair= _n1 if _treated==1
    (173 real changes made)
    
    . replace pair=. if _weight==.
    (1,160 real changes made, 1,160 to missing)
    
     
    . save "psmatch_point05pct_treated.dta", replace
    . restore
    
    . 
    . merge m:1 grpatid using "psmatch_point05pct_treated.dta", keep(3) nogen
    
        Result                      Number of obs
        -----------------------------------------
        Not matched                             0
        Matched                            50,166  
        -----------------------------------------
    
    . drop if _weight==.
    (36,116 observations deleted)
    
    . 
    . stset stop [pw=_weight], id(grpatid)  enter(start) failure(d2=1) time0(start)
    
    Survival-time data settings
    
               ID variable: grpatid
             Failure event: d2==1
    Observed time interval: (start, stop]
         Enter on or after: time start
         Exit on or before: failure
                    Weight: [pweight=_weight]
    
    --------------------------------------------------------------------------
         14,050  total observations
              0  exclusions
    --------------------------------------------------------------------------
         14,050  observations remaining, representing
            467  subjects
             27  failures in single-failure-per-subject data
         14,050  total analysis time at risk and under observation
                                                    At risk from t =         0
                                         Earliest observed entry t =         0
                                              Last observed exit t =        31
    
    . 
    . eststo: stcrreg Female age75plus Asian Black Hispanic chf_b cad_b cancer_b copd_b dm_b stroke_b htn_b oarth_b liver_b renal_b depress_b COVID CumMonths
    > SAH lnnursing_visits,  compete(d2=2)  
    
             Failure _d: d2==1
       Analysis time _t: stop
      Enter on or after: time start
            ID variable: grpatid
                 Weight: [pweight=_weight]
    
    Iteration 0:  Log pseudolikelihood = -192.48387  
    Iteration 1:  Log pseudolikelihood = -192.05237  
    Iteration 2:  Log pseudolikelihood = -192.04966  
    Iteration 3:  Log pseudolikelihood = -192.04964  
    Iteration 4:  Log pseudolikelihood = -192.04963  
    
    Competing-risks regression                        No. of obs      =     13,635
                                                      No. of subjects =        467
    Failure event:   d2 == 1                          No. failed      =         26
    Competing event: d2 == 2                          No. competing   =         28
                                                      No. censored    =        413
    
                                                      Wald chi2(19)   =    2387.66
    Log pseudolikelihood = -192.04963                 Prob > chi2     =     0.0000
    
                                      (Std. err. adjusted for 467 clusters in grpatid)
    ----------------------------------------------------------------------------------
                     |               Robust
                  _t |        SHR   std. err.      z    P>|z|     [95% conf. interval]
    -----------------+----------------------------------------------------------------
              Female |   3.064866    1.68689     2.03   0.042     1.042111    9.013829
           age75plus |   1.207451   .5368349     0.42   0.672     .5051539    2.886126
               Asian |   2.66e-07   1.66e-07   -24.22   0.000     7.82e-08    9.07e-07
               Black |   .4487784   .3278344    -1.10   0.273     .1072077    1.878616
            Hispanic |   .3482283   .3669299    -1.00   0.317     .0441518    2.746499
               chf_b |   1.310732   .9467288     0.37   0.708     .3181995    5.399187
               cad_b |   7.134107   5.745512     2.44   0.015     1.471694    34.58293
            cancer_b |   .7528565   .8304606    -0.26   0.797     .0866501    6.541166
              copd_b |   1.667023    1.02421     0.83   0.406     .4999975    5.557959
                dm_b |   .6457047   .3659011    -0.77   0.440     .2126592    1.960576
            stroke_b |   19.18389   18.76927     3.02   0.003      2.81924    130.5393
               htn_b |   .9629506   .5475104    -0.07   0.947     .3159595    2.934787
             oarth_b |   1.957083   1.460144     0.90   0.368     .4534641    8.446474
             liver_b |   2.42e-07   3.37e-07   -10.94   0.000     1.58e-08    3.71e-06
             renal_b |   3.848813   2.932669     1.77   0.077     .8644488     17.1362
           depress_b |   1.835248   1.099269     1.01   0.311     .5673433    5.936681
               COVID |   .5705513   .3140267    -1.02   0.308     .1939994    1.677988
        CumMonthsSAH |   .6244314    .238847    -1.23   0.218     .2950512    1.321515
    lnnursing_visits |   1.146258   .2422881     0.65   0.518     .7574626    1.734616
    ----------------------------------------------------------------------------------
    (est93 stored)

    But shouldn't the matched 'pair' be somehow incorporated into the final regression or does including the _weight in the sttset already do that?


    Here is a dataex:

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input float(treat Female age75plus) byte(Asian Black Hispanic) float(COVID CumMonthsSAH lnnursing_visits d2) byte(_st _d _t _t0) int(_id _n1) float _nn double _pdif float pair
    0 1 0 0 0 0 0   .8333333 11.508034 0 1 0 22 21 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333  11.78502 0 1 0 29 28 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333   11.3792 0 1 0 13 12 430 . 0 . 430
    0 1 0 0 0 0 0          0 11.699944 0 1 0  3  2 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333  11.43734 0 1 0 16 15 430 . 0 . 430
    0 1 0 0 0 0 0          0 11.549827 0 1 0  9  8 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333  11.56043 0 1 0 19 18 430 . 0 . 430
    0 1 0 0 0 0 0          0  11.59666 0 1 0  1  0 430 . 0 . 430
    0 1 0 0 0 0 0          0  11.26563 0 1 0 10  9 430 . 0 . 430
    0 1 0 0 0 0 0          0 11.777856 0 1 0  8  7 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.320626 0 1 0 11 10 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.755024 0 1 0 27 26 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.787697 0 1 0 26 25 430 . 0 . 430
    0 1 0 0 0 0 0          0  11.74062 0 1 0  6  5 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.477817 0 1 0 20 19 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.754592 0 1 0 25 24 430 . 0 . 430
    0 1 0 0 0 0 0          0 11.631082 0 1 0  5  4 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333         . 0 1 0 31 30 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.828933 0 1 0 30 29 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.482714 0 1 0 21 20 430 . 0 . 430
    0 1 0 0 0 0 0          0  11.66851 0 1 0  2  1 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.394693 0 1 0 14 13 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.543426 0 1 0 18 17 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333  11.35496 0 1 0 17 16 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.812682 0 1 0 28 27 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333   11.3682 0 1 0 12 11 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.753028 0 1 0 23 22 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333 11.737787 0 1 0 24 23 430 . 0 . 430
    0 1 0 0 0 0 0   .8333333  11.39811 0 1 0 15 14 430 . 0 . 430
    0 1 0 0 0 0 0          0 11.873713 0 1 0  7  6 430 . 0 . 430
    0 1 0 0 0 0 0          0  11.65453 0 1 0  4  3 430 . 0 . 430
    0 1 1 0 0 0 0  1.0333333  9.643355 0 1 0 26 25 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333   9.44715 0 1 0 22 21 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.813398 0 1 0  3  2 169 . 0 . 169
    0 1 1 0 0 0 0          0   9.75771 0 1 0  4  3 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.273315 0 1 0 12 11 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333         . 0 1 0 31 30 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.612266 0 1 0 30 29 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.709599 0 1 0 28 27 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.711843 0 1 0  5  4 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.235423 0 1 0 17 16 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.784986 0 1 0  8  7 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333   9.30146 0 1 0 13 12 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.818583 0 1 0  6  5 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.685331 0 1 0 29 28 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.285727 0 1 0 16 15 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.939193 0 1 0  7  6 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.305832 0 1 0 19 18 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.272188 0 1 0 11 10 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333   9.36246 0 1 0 20 19 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.164087 0 1 0 21 20 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.716133 0 1 0  1  0 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.641993 0 1 0 27 26 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.361945 0 1 0 18 17 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.304923 0 1 0 14 13 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.287765 0 1 0 15 14 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.621788 0 1 0 23 22 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.531772 0 1 0  9  8 169 . 0 . 169
    0 1 1 0 0 0 0          0  9.750219 0 1 0  2  1 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333   9.61086 0 1 0 25 24 169 . 0 . 169
    0 1 1 0 0 0 0  1.0333333  9.651944 0 1 0 24 23 169 . 0 . 169
    0 1 1 0 0 0 0 .033333335  9.191668 0 1 0 10  9 169 . 0 . 169
    0 1 1 0 0 0 0   .8333333 11.508034 0 1 0 22 21 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.828933 0 1 0 30 29 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.755024 0 1 0 27 26 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.477817 0 1 0 20 19 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333  11.43734 0 1 0 16 15 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333   11.3682 0 1 0 12 11 708 . 0 . 708
    0 1 1 0 0 0 0          0 11.777856 0 1 0  8  7 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.394693 0 1 0 14 13 708 . 0 . 708
    0 1 1 0 0 0 0          0 11.699944 0 1 0  3  2 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333         . 0 1 0 31 30 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.753028 0 1 0 23 22 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.482714 0 1 0 21 20 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.320626 0 1 0 11 10 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.737787 0 1 0 24 23 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333  11.78502 0 1 0 29 28 708 . 0 . 708
    0 1 1 0 0 0 0          0 11.549827 0 1 0  9  8 708 . 0 . 708
    0 1 1 0 0 0 0          0  11.65453 0 1 0  4  3 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.543426 0 1 0 18 17 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333  11.56043 0 1 0 19 18 708 . 0 . 708
    0 1 1 0 0 0 0          0  11.26563 0 1 0 10  9 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333  11.39811 0 1 0 15 14 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333  11.35496 0 1 0 17 16 708 . 0 . 708
    0 1 1 0 0 0 0          0  11.74062 0 1 0  6  5 708 . 0 . 708
    0 1 1 0 0 0 0          0 11.873713 0 1 0  7  6 708 . 0 . 708
    0 1 1 0 0 0 0          0  11.66851 0 1 0  2  1 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.754592 0 1 0 25 24 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.812682 0 1 0 28 27 708 . 0 . 708
    0 1 1 0 0 0 0          0  11.59666 0 1 0  1  0 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333   11.3792 0 1 0 13 12 708 . 0 . 708
    0 1 1 0 0 0 0          0 11.631082 0 1 0  5  4 708 . 0 . 708
    0 1 1 0 0 0 0   .8333333 11.787697 0 1 0 26 25 708 . 0 . 708
    0 1 1 0 0 0 0        1.2 10.688416 0 1 0 29 28 714 . 0 . 714
    0 1 1 0 0 0 0        1.2 10.674937 0 1 0 25 24 714 . 0 . 714
    0 1 1 0 0 0 0        1.2 10.419062 0 1 0 21 20 714 . 0 . 714
    0 1 1 0 0 0 0        1.2 10.713306 0 1 0 28 27 714 . 0 . 714
    0 1 1 0 0 0 0        1.2 10.528222 0 1 0 15 14 714 . 0 . 714
    0 1 1 0 0 0 0        1.2 10.713017 0 1 0 26 25 714 . 0 . 714
    0 1 1 0 0 0 0        1.2 10.624347 0 1 0 18 17 714 . 0 . 714
    end
    label values COVID COVID
    label def COVID 0 "No confirmed COVID-19", modify
    I would be very grateful for any help you may be able to offer.
    Many thanks in advance,
    Sumedha
Working...
X