Slides

1 Title

2 Table of Contents

3 Introduction

4 Method & Result

4.1 Identify Predictors (M)

  • Data source
  • Study population
nrow(dat)
[1] 9775
range(dat$year)
[1] 1990 2002
  • Covariates
  • Outcome
[1] "hla.match" "age.donor" "age.rec"   "cold.isc"  "death"     "year"     
[7] "sex"       "tx.type"   "follow.up"

4.2 Table (L)

Characteristic Overall
N = 9,775
Cadaveric
N = 5,148
Living
N = 4,627
Sex, n(%)


    Female 4,014 (41%) 2,105 (41%) 1,909 (41%)
    Male 5,761 (59%) 3,043 (59%) 2,718 (59%)
Recipient age, median (IQR) 13 (8, 16) 13 (7, 16) 14 (9, 16)
    Unknown 9 7 2
Donor age, median (IQR) 33 (21, 41) 37 (31, 42) 22 (15, 37)
    Unknown 113 112 1
HLA matches, n(%)


    0 784 (8.2%) 125 (2.5%) 659 (14%)
    1 1,504 (16%) 160 (3.2%) 1,344 (29%)
    2 1,553 (16%) 228 (4.6%) 1,325 (29%)
    3 3,778 (40%) 3,039 (61%) 739 (16%)
    4 1,278 (13%) 1,007 (20%) 271 (5.9%)
    5 365 (3.8%) 241 (4.9%) 124 (2.7%)
    6 279 (2.9%) 153 (3.1%) 126 (2.7%)
    Unknown 234 195 39
Cold ischemic time (hours), median (IQR) 7 (1, 19) 1 (0, 1) 19 (13, 25)
    Unknown 2,250 1,490 760

5 Table 1: By Transplant Type

5.1 Transplant Type vs Sex

sex are similar across tx.type

5.2 Transplant Type vs Recipient Age


  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18 
 58 290 227 156 161 151 155 167 202 218 218 250 287 330 357 420 466 508 520 

  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18 
 35 104 154 121 118 135 147 166 169 170 212 193 254 314 328 454 469 565 517 

6 Table 1: By Transplant Type

6.1 Transplant Type vs HLA Match

Living donors have less hla.match then cadaveric donors.

6.2 Transplant Type vs Donor Age

7 Overall Survival

Overall Kaplan-Meier Survival Summary
Follow-up Time Number at Risk Survival Probability Upper 95% CI Lower 95% CI
0 9775 1.000 0.999 1.000
2 6451 0.968 0.964 0.971
4 4150 0.953 0.948 0.958
6 2398 0.937 0.931 0.944
8 1197 0.919 0.910 0.928
10 492 0.901 0.888 0.913
12 48 0.888 0.871 0.905

8 Hazard by Transplant Type

8.1 Death distribution

  total first.1.total first.1.ratio first.5.total first.5.ratio
1   465           216      46.45161           390      83.87097

9 Hazard Rate by Transplant Type

Estimated Hazard Rate by Transplant Type
Follow-up Interval Deceased Living
1/3 0.010 0.022
2/3 0.003 0.006
1 0.003 0.004
2 0.006 0.011
3 0.005 0.008
4 0.006 0.010
5 0.005 0.011

10 Cox Model: Transplant Type

Call:
coxph(formula = Surv(follow.up, death) ~ tx.type, data = dat)

  n= 9775, number of events= 465 

                 coef exp(coef) se(coef)     z Pr(>|z|)    
tx.typeLiving 0.64469   1.90539  0.09558 6.745 1.53e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

              exp(coef) exp(-coef) lower .95 upper .95
tx.typeLiving     1.905     0.5248      1.58     2.298

Concordance= 0.586  (se = 0.012 )
Likelihood ratio test= 47.1  on 1 df,   p=7e-12
Wald test            = 45.5  on 1 df,   p=2e-11
Score (logrank) test = 47.09  on 1 df,   p=7e-12

Call: survfit(formula = Surv(follow.up, death) ~ tx.type, data = dat)

                tx.type=Cadaveric 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0   5148       0    1.000 0.00000        1.000        1.000
    4   2297     130    0.967 0.00294        0.961        0.973
    8    711      34    0.943 0.00514        0.933        0.953
   12     27      13    0.908 0.01135        0.886        0.931

                tx.type=Living 
 time n.risk n.event survival  std.err lower 95% CI upper 95% CI
    0   4627       4    0.999 0.000432        0.998        1.000
    4   1853     225    0.937 0.004212        0.928        0.945
    8    486      52    0.891 0.007720        0.876        0.906
   12     21       7    0.864 0.013257        0.838        0.890

11 Cox Model: Age Recipient (Continuous)

Call:
coxph(formula = Surv(follow.up, death) ~ age.rec, data = dat)

  n= 9766, number of events= 464 
   (9 observations deleted due to missingness)

             coef exp(coef)  se(coef)      z Pr(>|z|)    
age.rec -0.042550  0.958342  0.008434 -5.045 4.53e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

        exp(coef) exp(-coef) lower .95 upper .95
age.rec    0.9583      1.043    0.9426    0.9743

Concordance= 0.586  (se = 0.016 )
Likelihood ratio test= 24.81  on 1 df,   p=6e-07
Wald test            = 25.45  on 1 df,   p=5e-07
Score (logrank) test = 25.75  on 1 df,   p=4e-07

View life table
Call: survfit(formula = Surv(follow.up, death) ~ age.rec, data = dat)

9 observations deleted due to missingness 
                age.rec=0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0     93       1    0.989  0.0107        0.969         1.00
    4     34      17    0.784  0.0460        0.699         0.88
    8     13       0    0.784  0.0460        0.699         0.88

                age.rec=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    394       0    1.000  0.0000        1.000        1.000
    4    158      32    0.900  0.0173        0.866        0.934
    8     60       3    0.876  0.0217        0.835        0.920
   12      1       0    0.876  0.0217        0.835        0.920

                age.rec=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    381       0    1.000  0.0000        1.000        1.000
    4    161      26    0.917  0.0160        0.886        0.949
    8     73       2    0.899  0.0204        0.859        0.939
   12      1       2    0.860  0.0336        0.797        0.929

                age.rec=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    277       0    1.000  0.0000        1.000        1.000
    4    130      15    0.938  0.0157        0.907        0.969
    8     44       2    0.915  0.0223        0.872        0.960

                age.rec=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    279       0    1.000  0.0000        1.000        1.000
    4    129      14    0.942  0.0151        0.913        0.972
    8     44       5    0.895  0.0257        0.846        0.947
   12      1       0    0.895  0.0257        0.846        0.947

                age.rec=5 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    286       0    1.000  0.0000        1.000        1.000
    4    133      10    0.955  0.0141        0.928        0.983
    8     49       3    0.920  0.0251        0.872        0.971
   12      4       1    0.898  0.0330        0.835        0.965

                age.rec=6 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    302       0    1.000  0.0000        1.000        1.000
    4    140      10    0.961  0.0123        0.937        0.985
    8     53       0    0.961  0.0123        0.937        0.985
   12      2       0    0.961  0.0123        0.937        0.985

                age.rec=7 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    333       0    1.000  0.0000        1.000        1.000
    4    162      14    0.948  0.0140        0.921        0.976
    8     62       2    0.932  0.0177        0.898        0.967
   12      3       2    0.859  0.0546        0.759        0.973

                age.rec=8 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    371       0    1.000  0.0000        1.000        1.000
    4    183      12    0.964  0.0102        0.944        0.984
    8     72       3    0.935  0.0199        0.897        0.975
   12      1       3    0.869  0.0416        0.791        0.954

                age.rec=9 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    388       0    1.000  0.0000        1.000        1.000
    4    171      12    0.953  0.0137        0.927        0.980
    8     63       7    0.891  0.0268        0.840        0.945
   12      5       0    0.891  0.0268        0.840        0.945

                age.rec=10 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    430       1    0.998 0.00232        0.993        1.000
    4    203       7    0.976 0.00876        0.959        0.993
    8     69       4    0.943 0.01874        0.907        0.981
   12      3       2    0.846 0.06716        0.725        0.989

                age.rec=11 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    443       0    1.000  0.0000        1.000        1.000
    4    198       8    0.976  0.0087        0.959        0.993
    8     63       6    0.921  0.0242        0.875        0.970
   12      4       1    0.881  0.0455        0.796        0.975

                age.rec=12 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    541       1    0.998 0.00185        0.995        1.000
    4    246      15    0.963 0.00943        0.944        0.981
    8     69       5    0.933 0.01684        0.900        0.966
   12      2       1    0.904 0.03300        0.841        0.971

                age.rec=13 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    644       0    1.000 0.00000        1.000        1.000
    4    282      22    0.954 0.00981        0.935        0.974
    8     57       4    0.922 0.02042        0.883        0.963
   12      4       2    0.872 0.04013        0.796        0.954

                age.rec=14 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    685       0    1.000 0.00000        1.000        1.000
    4    303      15    0.971 0.00753        0.957        0.986
    8     59       4    0.945 0.01537        0.916        0.976
   12      2       1    0.909 0.03860        0.837        0.988

                age.rec=15 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    874       1    0.999 0.00114        0.997        1.000
    4    336      36    0.945 0.00910        0.927        0.963
    8     66       6    0.918 0.01432        0.890        0.946
   12      3       0    0.918 0.01432        0.890        0.946

                age.rec=16 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0    935       0    1.000  0.0000        1.000        1.000
    4    375      29    0.956  0.0082        0.941        0.973
    8     86       8    0.924  0.0145        0.896        0.953
   12      4       0    0.924  0.0145        0.896        0.953

                age.rec=17 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0   1073       0    1.000 0.00000        1.000        1.000
    4    410      28    0.961 0.00753        0.946        0.976
    8     90      16    0.889 0.02020        0.850        0.929
   12      1       2    0.854 0.03175        0.794        0.918

                age.rec=18 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    0   1037       0    1.000 0.00000        1.000        1.000
    4    395      32    0.955 0.00802        0.940        0.971
    8    104       6    0.931 0.01309        0.906        0.957
   12      7       2    0.905 0.02210        0.863        0.949

12 Cox Model: Age Recipient (Categorical)

cox.age.rec.group
Call:
coxph(formula = Surv(follow.up, death) ~ age.rec.group, data = dat.age.rec.group)

                      coef exp(coef) se(coef)      z        p
age.rec.group2-5   -0.5947    0.5517   0.1767 -3.366 0.000764
age.rec.group6-10  -1.0578    0.3472   0.1776 -5.956 2.59e-09
age.rec.group11-18 -1.0192    0.3609   0.1513 -6.736 1.63e-11

Likelihood ratio test=44.93  on 3 df, p=9.559e-10
n= 9766, number of events= 464 
   (9 observations deleted due to missingness)
eme.age.rec.group <- emmeans(cox.age.rec.group, pairwise ~ age.rec.group,
                             type = "response")
eme.age.rec.group
$emmeans
 age.rec.group response     SE  df asymp.LCL asymp.UCL
 0-1              1.000 0.0000 Inf     1.000     1.000
 2-5              0.552 0.0975 Inf     0.390     0.780
 6-10             0.347 0.0617 Inf     0.245     0.492
 11-18            0.361 0.0546 Inf     0.268     0.485

Confidence level used: 0.95 
Intervals are back-transformed from the log scale 

$contrasts
 contrast         ratio    SE  df null z.ratio p.value
 (0-1) / (2-5)    1.813 0.320 Inf    1   3.366  0.0043
 (0-1) / (6-10)   2.880 0.511 Inf    1   5.956  <.0001
 (0-1) / (11-18)  2.771 0.419 Inf    1   6.736  <.0001
 (2-5) / (6-10)   1.589 0.251 Inf    1   2.928  0.0179
 (2-5) / (11-18)  1.529 0.196 Inf    1   3.314  0.0051
 (6-10) / (11-18) 0.962 0.124 Inf    1  -0.298  0.9908

P value adjustment: tukey method for comparing a family of 4 estimates 
Tests are performed on the log scale 

13 Cox Model: Age Recipient (Categorical)

14 Identifying Predictors

14.1 Start with nothing

old.vars <- c()
test.new.var(old.vars, "tx.type", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                 coef exp(coef) se(coef)     z        p
tx.typeLiving 0.64466   1.90534  0.09558 6.745 1.53e-11

Likelihood ratio test=47.1  on 1 df, p=6.742e-12
n= 9775, number of events= 465 
      Wald df            p
1 45.49594  1 1.529554e-11
test.new.var(old.vars, "age.rec", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

             coef exp(coef)  se(coef)      z        p
age.rec -0.042545  0.958348  0.008434 -5.045 4.54e-07

Likelihood ratio test=24.8  on 1 df, p=6.362e-07
n= 9766, number of events= 464 
   (9 observations deleted due to missingness)
      Wald df            p
1 25.44856  1 4.543371e-07
test.new.var(old.vars, "age.donor", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

               coef exp(coef)  se(coef)      z        p
age.donor -0.021738  0.978497  0.003467 -6.269 3.62e-10

Likelihood ratio test=38.96  on 1 df, p=4.319e-10
n= 9662, number of events= 464 
   (113 observations deleted due to missingness)
      Wald df           p
1 39.30567  1 3.62387e-10
test.new.var(old.vars, "year", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

         coef exp(coef) se(coef)      z     p
year -0.03667   0.96399  0.01550 -2.366 0.018

Likelihood ratio test=5.62  on 1 df, p=0.0178
n= 9775, number of events= 465 
      Wald df          p
1 5.595603  1 0.01800561
test.new.var(old.vars, "hla.match", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

               coef exp(coef) se(coef)      z        p
hla.match1 -0.07016   0.93225  0.17301 -0.405   0.6851
hla.match2 -0.36381   0.69503  0.17922 -2.030   0.0424
hla.match3 -0.76176   0.46684  0.16442 -4.633 3.60e-06
hla.match4 -0.89933   0.40684  0.20835 -4.317 1.59e-05
hla.match5 -0.59727   0.55031  0.28740 -2.078   0.0377
hla.match6 -0.66377   0.51491  0.31171 -2.129   0.0332

Likelihood ratio test=47.36  on 6 df, p=1.584e-08
n= 9541, number of events= 451 
   (234 observations deleted due to missingness)
       Wald df        p
1 0.1644258  1 0.685114
test.new.var(old.vars, "sex", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

            coef exp(coef) se(coef)      z     p
sexMale -0.08422   0.91923  0.09374 -0.898 0.369

Likelihood ratio test=0.8  on 1 df, p=0.37
n= 9775, number of events= 465 
       Wald df         p
1 0.8072063  1 0.3689475
test.new.var(old.vars, "cold.isc", 1)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

             coef exp(coef) se(coef)     z        p
cold.isc 0.019094  1.019278 0.004052 4.712 2.45e-06

Likelihood ratio test=20.88  on 1 df, p=4.888e-06
n= 7525, number of events= 357 
   (2250 observations deleted due to missingness)
      Wald df            p
1 22.20574  1 2.449402e-06

14.2 tx.type + ?

old.vars <- c("tx.type")

test.new.var(old.vars, "age.rec", 2)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.693775  2.001255  0.096157  7.215 5.39e-13
age.rec       -0.049081  0.952104  0.008536 -5.750 8.92e-09

Likelihood ratio test=78.72  on 2 df, p=< 2.2e-16
n= 9766, number of events= 464 
   (9 observations deleted due to missingness)
      Wald df            p
1 33.06396  1 8.917646e-09
test.new.var(old.vars, "age.donor", 2)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.478191  1.613154  0.106660  4.483 7.35e-06
age.donor     -0.013523  0.986568  0.003745 -3.611 0.000305

Likelihood ratio test=59.05  on 2 df, p=1.506e-13
n= 9662, number of events= 464 
   (113 observations deleted due to missingness)
     Wald df            p
1 13.0412  1 0.0003047131
test.new.var(old.vars, "year", 2)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                  coef exp(coef) se(coef)      z        p
tx.typeLiving  0.63806   1.89281  0.09563  6.672 2.52e-11
year          -0.03310   0.96744  0.01548 -2.138   0.0325

Likelihood ratio test=51.69  on 2 df, p=5.967e-12
n= 9775, number of events= 465 
      Wald df         p
1 4.573044  1 0.0324788
test.new.var(old.vars, "hla.match", 2:7)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                  coef exp(coef) se(coef)      z       p
tx.typeLiving  0.39047   1.47768  0.12688  3.078 0.00209
hla.match1    -0.08836   0.91543  0.17308 -0.510 0.60970
hla.match2    -0.36329   0.69539  0.17919 -2.027 0.04263
hla.match3    -0.50800   0.60170  0.18299 -2.776 0.00550
hla.match4    -0.65400   0.51996  0.22221 -2.943 0.00325
hla.match5    -0.39435   0.67412  0.29410 -1.341 0.17997
hla.match6    -0.51481   0.59761  0.31489 -1.635 0.10208

Likelihood ratio test=56.78  on 7 df, p=6.605e-10
n= 9541, number of events= 451 
   (234 observations deleted due to missingness)
     Wald df          p
1 14.7018  6 0.02270728
test.new.var(old.vars, "sex", 2)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                  coef exp(coef) se(coef)      z       p
tx.typeLiving  0.64499   1.90597  0.09558  6.748 1.5e-11
sexMale       -0.08657   0.91707  0.09374 -0.924   0.356

Likelihood ratio test=47.95  on 2 df, p=3.87e-11
n= 9775, number of events= 465 
       Wald df         p
1 0.8528929  1 0.3557352
test.new.var(old.vars, "cold.isc", 2)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                  coef exp(coef) se(coef)     z       p
tx.typeLiving 0.477550  1.612119 0.171044 2.792 0.00524
cold.isc      0.004924  1.004937 0.006728 0.732 0.46420

Likelihood ratio test=28.72  on 2 df, p=5.811e-07
n= 7525, number of events= 357 
   (2250 observations deleted due to missingness)
       Wald df         p
1 0.5357515  1 0.4641988

age.rec has the smallest \(p\)-value

14.3 tx.type + age.rec + ?

old.vars <- c("tx.type", "age.rec")

test.new.var(old.vars, "age.donor", 3)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.571325  1.770611  0.107377  5.321 1.03e-07
age.rec       -0.044085  0.956872  0.008718 -5.057 4.26e-07
age.donor     -0.009688  0.990359  0.003797 -2.551   0.0107

Likelihood ratio test=83.3  on 3 df, p=< 2.2e-16
n= 9655, number of events= 463 
   (120 observations deleted due to missingness)
      Wald df          p
1 6.508773  1 0.01073435
test.new.var(old.vars, "year", 3)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.687661  1.989059  0.096215  7.147 8.86e-13
age.rec       -0.049029  0.952153  0.008537 -5.743 9.30e-09
year          -0.033478  0.967076  0.015475 -2.163   0.0305

Likelihood ratio test=83.42  on 3 df, p=< 2.2e-16
n= 9766, number of events= 464 
   (9 observations deleted due to missingness)
      Wald df          p
1 4.680122  1 0.03051359
test.new.var(old.vars, "hla.match", 3:8)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.439788  1.552378  0.129107  3.406 0.000658
age.rec       -0.048395  0.952758  0.008687 -5.571 2.53e-08
hla.match1    -0.065986  0.936144  0.173137 -0.381 0.703116
hla.match2    -0.339580  0.712069  0.179741 -1.889 0.058856
hla.match3    -0.479802  0.618906  0.184469 -2.601 0.009295
hla.match4    -0.617490  0.539296  0.223835 -2.759 0.005803
hla.match5    -0.362744  0.695764  0.294632 -1.231 0.218257
hla.match6    -0.410614  0.663243  0.315392 -1.302 0.192946

Likelihood ratio test=86.59  on 8 df, p=2.288e-15
n= 9535, number of events= 450 
   (240 observations deleted due to missingness)
     Wald df          p
1 13.1233  6 0.04111916
test.new.var(old.vars, "sex", 3)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.695122  2.003953  0.096164  7.229 4.88e-13
age.rec       -0.050004  0.951226  0.008569 -5.835 5.37e-09
sexMale       -0.130416  0.877730  0.094113 -1.386    0.166

Likelihood ratio test=80.63  on 3 df, p=< 2.2e-16
n= 9766, number of events= 464 
   (9 observations deleted due to missingness)
      Wald df         p
1 1.920263  1 0.1658277
test.new.var(old.vars, "cold.isc", 3)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z       p
tx.typeLiving  0.489852  1.632075  0.170731  2.869 0.00412
age.rec       -0.025545  0.974779  0.010019 -2.550 0.01078
cold.isc       0.005637  1.005653  0.006709  0.840 0.40085

Likelihood ratio test=35.04  on 3 df, p=1.194e-07
n= 7519, number of events= 357 
   (2256 observations deleted due to missingness)
      Wald df         p
1 0.705761  1 0.4008547

age.donor has the smallest \(p\)-value

14.4 tx.type + age.rec + age.donor + ?

old.vars <- c("tx.type", "age.rec", "age.donor")

test.new.var(old.vars, "year", 4)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.571096  1.770207  0.107278  5.324 1.02e-07
age.rec       -0.044243  0.956721  0.008718 -5.075 3.87e-07
age.donor     -0.009313  0.990730  0.003793 -2.456   0.0141
year          -0.031516  0.968975  0.015475 -2.037   0.0417

Likelihood ratio test=87.47  on 4 df, p=< 2.2e-16
n= 9655, number of events= 463 
   (120 observations deleted due to missingness)
     Wald df          p
1 4.14746  1 0.04169701
test.new.var(old.vars, "hla.match", 4:9)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z       p
tx.typeLiving  0.343744  1.410218  0.135594  2.535 0.01124
age.rec       -0.044106  0.956853  0.008869 -4.973 6.6e-07
age.donor     -0.008401  0.991634  0.003842 -2.187 0.02878
hla.match1    -0.060302  0.941480  0.173155 -0.348 0.72765
hla.match2    -0.319994  0.726153  0.179955 -1.778 0.07537
hla.match3    -0.457366  0.632949  0.185204 -2.470 0.01353
hla.match4    -0.580080  0.559853  0.224649 -2.582 0.00982
hla.match5    -0.327698  0.720580  0.295711 -1.108 0.26779
hla.match6    -0.399931  0.670366  0.316127 -1.265 0.20584

Likelihood ratio test=89.74  on 9 df, p=1.834e-15
n= 9433, number of events= 449 
   (342 observations deleted due to missingness)
      Wald df          p
1 11.68364  6 0.06941019
test.new.var(old.vars, "sex", 4)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.574554  1.776338  0.107419  5.349 8.86e-08
age.rec       -0.045101  0.955901  0.008757 -5.150 2.60e-07
age.donor     -0.009501  0.990544  0.003799 -2.501   0.0124
sexMale       -0.127413  0.880370  0.094265 -1.352   0.1765

Likelihood ratio test=85.12  on 4 df, p=< 2.2e-16
n= 9655, number of events= 463 
   (120 observations deleted due to missingness)
      Wald df         p
1 1.826933  1 0.1764903
test.new.var(old.vars, "cold.isc", 4)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z       p
tx.typeLiving  0.475677  1.609104  0.178023  2.672 0.00754
age.rec       -0.023171  0.977095  0.010194 -2.273 0.02303
age.donor     -0.004841  0.995171  0.004205 -1.151 0.24970
cold.isc       0.003780  1.003787  0.006755  0.559 0.57583

Likelihood ratio test=36.13  on 4 df, p=2.722e-07
n= 7480, number of events= 356 
   (2295 observations deleted due to missingness)
       Wald df        p
1 0.3130214  1 0.575832

year has the smallest \(p\)-value

14.5 tx.type + age.rec + age.donor + year + ?

old.vars <- c("tx.type", "age.rec", "age.donor", "year")

test.new.var(old.vars, "hla.match", 5:10)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.330259  1.391328  0.135752  2.433  0.01498
age.rec       -0.044176  0.956785  0.008869 -4.981 6.32e-07
age.donor     -0.007886  0.992145  0.003836 -2.056  0.03978
year          -0.034415  0.966170  0.015880 -2.167  0.03022
hla.match1    -0.087933  0.915822  0.173602 -0.507  0.61249
hla.match2    -0.352526  0.702910  0.180569 -1.952  0.05090
hla.match3    -0.504964  0.603527  0.186678 -2.705  0.00683
hla.match4    -0.625722  0.534875  0.225828 -2.771  0.00559
hla.match5    -0.364687  0.694414  0.296524 -1.230  0.21874
hla.match6    -0.456586  0.633442  0.317208 -1.439  0.15004

Likelihood ratio test=94.45  on 10 df, p=6.975e-16
n= 9433, number of events= 449 
   (342 observations deleted due to missingness)
      Wald df         p
1 13.08326  6 0.0417326
test.new.var(old.vars, "sex", 5)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.574624  1.776462  0.107327  5.354 8.60e-08
age.rec       -0.045294  0.955716  0.008759 -5.171 2.33e-07
age.donor     -0.009119  0.990922  0.003795 -2.403   0.0163
year          -0.031699  0.968798  0.015475 -2.048   0.0405
sexMale       -0.129147  0.878844  0.094284 -1.370   0.1708

Likelihood ratio test=89.33  on 5 df, p=< 2.2e-16
n= 9655, number of events= 463 
   (120 observations deleted due to missingness)
      Wald df         p
1 1.876286  1 0.1707569
test.new.var(old.vars, "cold.isc", 5)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z      p
tx.typeLiving  0.509289  1.664108  0.179269  2.841 0.0045
age.rec       -0.023037  0.977226  0.010191 -2.261 0.0238
age.donor     -0.004381  0.995629  0.004202 -1.043 0.2971
year          -0.036400  0.964254  0.018995 -1.916 0.0553
cold.isc       0.002027  1.002029  0.006812  0.298 0.7660

Likelihood ratio test=39.84  on 5 df, p=1.608e-07
n= 7480, number of events= 356 
   (2295 observations deleted due to missingness)
       Wald df         p
1 0.0885476  1 0.7660318

hla.match has the smallest \(p\)-value

14.6 tx.type + age.rec + age.donor + year + hla.match + ?

old.vars <- c("tx.type", "age.rec", "age.donor", "year", "hla.match")

test.new.var(old.vars, "sex", 11)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.334671  1.397480  0.135776  2.465  0.01371
age.rec       -0.044917  0.956077  0.008908 -5.043 4.59e-07
age.donor     -0.007753  0.992277  0.003838 -2.020  0.04341
year          -0.034523  0.966066  0.015880 -2.174  0.02970
hla.match1    -0.088750  0.915074  0.173601 -0.511  0.60919
hla.match2    -0.350775  0.704142  0.180587 -1.942  0.05209
hla.match3    -0.501788  0.605447  0.186640 -2.689  0.00718
hla.match4    -0.624023  0.535784  0.225726 -2.765  0.00570
hla.match5    -0.361475  0.696648  0.296530 -1.219  0.22284
hla.match6    -0.450811  0.637111  0.317311 -1.421  0.15540
sexMale       -0.092818  0.911359  0.095967 -0.967  0.33345

Likelihood ratio test=95.39  on 11 df, p=1.457e-15
n= 9433, number of events= 449 
   (342 observations deleted due to missingness)
       Wald df         p
1 0.9354639  1 0.3334471
test.new.var(old.vars, "cold.isc", 11)
Call:
coxph(formula = new.surv, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z      p
tx.typeLiving  0.310337  1.363884  0.201059  1.544 0.1227
age.rec       -0.021521  0.978709  0.010287 -2.092 0.0364
age.donor     -0.002701  0.997303  0.004215 -0.641 0.5216
year          -0.038176  0.962544  0.019265 -1.982 0.0475
hla.match1     0.070810  1.073377  0.218390  0.324 0.7458
hla.match2    -0.100219  0.904639  0.221242 -0.453 0.6506
hla.match3    -0.285575  0.751582  0.227967 -1.253 0.2103
hla.match4    -0.314582  0.730094  0.262605 -1.198 0.2309
hla.match5    -0.132791  0.875648  0.351300 -0.378 0.7054
hla.match6    -0.279719  0.755996  0.359291 -0.779 0.4363
cold.isc       0.002472  1.002475  0.006832  0.362 0.7175

Likelihood ratio test=40.14  on 11 df, p=3.39e-05
n= 7347, number of events= 351 
   (2428 observations deleted due to missingness)
       Wald df         p
1 0.1308801  1 0.7175212

Neither has \(p\)-value less than 0.05. Stop.

15 Full Model

Call:
coxph(formula = surv.full, data = dat, method = "breslow")

  n= 9433, number of events= 449 
   (342 observations deleted due to missingness)

                   coef exp(coef)  se(coef)      z Pr(>|z|)    
tx.typeLiving  0.330259  1.391328  0.135752  2.433  0.01498 *  
age.rec       -0.044176  0.956785  0.008869 -4.981 6.32e-07 ***
age.donor     -0.007886  0.992145  0.003836 -2.056  0.03978 *  
year          -0.034415  0.966170  0.015880 -2.167  0.03022 *  
hla.match1    -0.087933  0.915822  0.173602 -0.507  0.61249    
hla.match2    -0.352526  0.702910  0.180569 -1.952  0.05090 .  
hla.match3    -0.504964  0.603527  0.186678 -2.705  0.00683 ** 
hla.match4    -0.625722  0.534875  0.225828 -2.771  0.00559 ** 
hla.match5    -0.364687  0.694414  0.296524 -1.230  0.21874    
hla.match6    -0.456586  0.633442  0.317208 -1.439  0.15004    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

              exp(coef) exp(-coef) lower .95 upper .95
tx.typeLiving    1.3913     0.7187    1.0663    1.8154
age.rec          0.9568     1.0452    0.9403    0.9736
age.donor        0.9921     1.0079    0.9847    0.9996
year             0.9662     1.0350    0.9366    0.9967
hla.match1       0.9158     1.0919    0.6517    1.2870
hla.match2       0.7029     1.4227    0.4934    1.0014
hla.match3       0.6035     1.6569    0.4186    0.8702
hla.match4       0.5349     1.8696    0.3436    0.8327
hla.match5       0.6944     1.4401    0.3883    1.2417
hla.match6       0.6334     1.5787    0.3402    1.1795

Concordance= 0.644  (se = 0.015 )
Likelihood ratio test= 94.45  on 10 df,   p=7e-16
Wald test            = 96.48  on 10 df,   p=3e-16
Score (logrank) test = 99.11  on 10 df,   p=<2e-16
[1] 1

16 Proportional hazards assumption

Call:
coxph(formula = surv.full, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z        p
tx.typeLiving  0.330259  1.391328  0.135752  2.433  0.01498
age.rec       -0.044176  0.956785  0.008869 -4.981 6.32e-07
age.donor     -0.007886  0.992145  0.003836 -2.056  0.03978
year          -0.034415  0.966170  0.015880 -2.167  0.03022
hla.match1    -0.087933  0.915822  0.173602 -0.507  0.61249
hla.match2    -0.352526  0.702910  0.180569 -1.952  0.05090
hla.match3    -0.504964  0.603527  0.186678 -2.705  0.00683
hla.match4    -0.625722  0.534875  0.225828 -2.771  0.00559
hla.match5    -0.364687  0.694414  0.296524 -1.230  0.21874
hla.match6    -0.456586  0.633442  0.317208 -1.439  0.15004

Likelihood ratio test=94.45  on 10 df, p=6.975e-16
n= 9433, number of events= 449 
   (342 observations deleted due to missingness)
          chisq df       p
tx.type    2.46  1 0.11651
age.rec   36.40  1 1.6e-09
age.donor 10.84  1 0.00099
year       4.00  1 0.04537
hla.match 12.87  6 0.04507
GLOBAL    56.91 10 1.4e-08

16.1 What happened to year?

Probabily want to omit it

16.2 Without year

cox.full.1
Call:
coxph(formula = surv.full.1, data = dat, method = "breslow")

                   coef exp(coef)  se(coef)      z       p
tx.typeLiving  0.343744  1.410218  0.135594  2.535 0.01124
age.rec       -0.044106  0.956853  0.008869 -4.973 6.6e-07
hla.match1    -0.060302  0.941480  0.173155 -0.348 0.72765
hla.match2    -0.319994  0.726153  0.179955 -1.778 0.07537
hla.match3    -0.457366  0.632949  0.185204 -2.470 0.01353
hla.match4    -0.580080  0.559853  0.224649 -2.582 0.00982
hla.match5    -0.327698  0.720580  0.295711 -1.108 0.26779
hla.match6    -0.399931  0.670366  0.316127 -1.265 0.20584
age.donor     -0.008401  0.991634  0.003842 -2.187 0.02878

Likelihood ratio test=89.74  on 9 df, p=1.834e-15
n= 9433, number of events= 449 
   (342 observations deleted due to missingness)

# A tibble: 19 × 8
   term            estimate std.error statistic p.value conf.low conf.high model
   <chr>              <dbl>     <dbl>     <dbl>   <dbl>    <dbl>     <dbl> <chr>
 1 Living donor       1.39    0.136       2.43  1.50e-2    1.07      1.82  Full…
 2 Recipient age      0.957   0.00887    -4.98  6.32e-7    0.940     0.974 Full…
 3 Donor age          0.992   0.00384    -2.06  3.98e-2    0.985     1.000 Full…
 4 Transplant year    0.966   0.0159     -2.17  3.02e-2    0.937     0.997 Full…
 5 hla.match1         0.916   0.174      -0.507 6.12e-1    0.652     1.29  Full…
 6 hla.match2         0.703   0.181      -1.95  5.09e-2    0.493     1.00  Full…
 7 hla.match3         0.604   0.187      -2.71  6.83e-3    0.419     0.870 Full…
 8 hla.match4         0.535   0.226      -2.77  5.59e-3    0.344     0.833 Full…
 9 hla.match5         0.694   0.297      -1.23  2.19e-1    0.388     1.24  Full…
10 hla.match6         0.633   0.317      -1.44  1.50e-1    0.340     1.18  Full…
11 Living donor       1.41    0.136       2.54  1.12e-2    1.08      1.84  Mode…
12 Recipient age      0.957   0.00887    -4.97  6.60e-7    0.940     0.974 Mode…
13 hla.match1         0.941   0.173      -0.348 7.28e-1    0.671     1.32  Mode…
14 hla.match2         0.726   0.180      -1.78  7.54e-2    0.510     1.03  Mode…
15 hla.match3         0.633   0.185      -2.47  1.35e-2    0.440     0.910 Mode…
16 hla.match4         0.560   0.225      -2.58  9.82e-3    0.360     0.870 Mode…
17 hla.match5         0.721   0.296      -1.11  2.68e-1    0.404     1.29  Mode…
18 hla.match6         0.670   0.316      -1.27  2.06e-1    0.361     1.25  Mode…
19 Donor age          0.992   0.00384    -2.19  2.88e-2    0.984     0.999 Mode…


TODO: write a more generic function (UPDATE: FAILED)


17 Old

17.1 Death & Censored

dat |>
  group_by(death) |>
  summarise(
    n = n(),
    percentage = n() / nrow(dat) * 100
  )
# A tibble: 2 × 3
  death     n percentage
  <int> <int>      <dbl>
1     0  9310      95.2 
2     1   465       4.76

Most of the patients (95.24%) were censored.

   hla.match age.donor age.rec cold.isc death year    sex   tx.type follow.up
1          2        25      15        6     0 2002 Female    Living         0
2          1        42      10       11     1 1999 Female    Living         0
3          1         9      14        8     0 2002   Male    Living         0
4          0        35      12       26     0 2002   Male    Living         0
5          2        17      12       28     1 1997   Male    Living         0
6          3        44      13        1     0 2002   Male Cadaveric         0
7          1        34      12        1     0 2002   Male Cadaveric         0
8          4        38      11        2     0 2002 Female Cadaveric         0
9          0        23      10        6     0 2002 Female    Living         0
10         3        26       1        1     0 2002   Male Cadaveric         0
11      <NA>        42      18       NA     0 2002   Male Cadaveric         0
12         4        39       9       NA     0 2002 Female Cadaveric         0
13         3        34      13       NA     0 2002   Male Cadaveric         0
14         3        NA      14        2     0 2002 Female Cadaveric         0
15         3        40      17        1     0 2002 Female Cadaveric         0
16         3        22      14        2     0 2002 Female Cadaveric         0
17         0        17      17       12     0 2002   Male    Living         0
18         3        NA       7       NA     0 2002   Male Cadaveric         0
19         0         4       0       NA     1 2001 Female    Living         0
20         4        NA      NA        1     0 2002 Female Cadaveric         0
21         3        42      18        1     0 2002   Male Cadaveric         0
22         1        19      15       21     1 1994   Male    Living         0
23         3        44      10       NA     0 2002   Male Cadaveric         0
24         0        13      14       NA     0 2001   Male    Living         0
25         1        NA       6        1     0 2002   Male Cadaveric         0
  hla.match age.donor age.rec cold.isc death year    sex   tx.type follow.up
1         2        25      15        6     0 2002 Female    Living         0
2         1        42      10       11     1 1999 Female    Living         0
3         1         9      14        8     0 2002   Male    Living         0
4         0        35      12       26     0 2002   Male    Living         0
5         2        17      12       28     1 1997   Male    Living         0
6         3        44      13        1     0 2002   Male Cadaveric         0

17.2 Cox Model - Age as a Continuous Variable

cox.age.rec <- coxph(Surv(follow.up, death) ~ age.rec, data = dat)
cox.age.rec |> summary()
Call:
coxph(formula = Surv(follow.up, death) ~ age.rec, data = dat)

  n= 9766, number of events= 464 
   (9 observations deleted due to missingness)

             coef exp(coef)  se(coef)      z Pr(>|z|)    
age.rec -0.042550  0.958342  0.008434 -5.045 4.53e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

        exp(coef) exp(-coef) lower .95 upper .95
age.rec    0.9583      1.043    0.9426    0.9743

Concordance= 0.586  (se = 0.016 )
Likelihood ratio test= 24.81  on 1 df,   p=6e-07
Wald test            = 25.45  on 1 df,   p=5e-07
Score (logrank) test = 25.75  on 1 df,   p=4e-07

17.3 Cox Model - Age as a Categorical Variable

          chisq df       p
tx.type    2.46  1 0.11643
age.rec   36.41  1 1.6e-09
hla.match 12.88  6 0.04498
age.donor 10.85  1 0.00099
year       4.01  1 0.04535
GLOBAL    56.93 10 1.4e-08

17.4 Table 1 (L)

17.4.1 HLA match hla.match


   0    1    2    3    4    5    6 <NA> 
 784 1504 1553 3778 1278  365  279  234 

Warning

TODO: change to percentage within each tx.type

Note

Living donors have less hla.match then cadaveric donors

17.4.2 Donor age age.donor

mean(dat$age.donor, na.rm = TRUE)
[1] 31.29952
median(dat$age.donor, na.rm = TRUE)
[1] 33

Note

There is age difference between different tx.type

17.4.3 Recipient Age age.rec

mean(dat$age.rec, na.rm = TRUE)
[1] 11.64653
median(dat$age.rec, na.rm = TRUE)
[1] 13

17.4.4 Cold Ischemia Time cold.isc

mean(dat$cold.isc, na.rm = TRUE)
[1] 10.85967
median(dat$cold.isc, na.rm = TRUE)
[1] 7

17.4.5 Transplant Type tx.type


Cadaveric    Living      <NA> 
     5148      4627         0 
dat$tx.type |> table()

Cadaveric    Living 
     5148      4627 

17.4.6 Year year


1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 
 728  734  666  736  787  813  789  745  740  842  706  834  655 

17.5 Kaplan-Meier

17.5.1 Overall (L)

Call: survfit(formula = Surv(follow.up, death) ~ 1, data = dat)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    4   4150     359    0.953 0.00252        0.948        0.958
    8   1197      86    0.919 0.00449        0.910        0.928
   12     48      20    0.888 0.00867        0.871        0.905

17.5.2 tx.type (M)

17.6 Cox Model

17.6.1 death Distribution (?)

17.6.2 Overall (L)

Note

skip overall, jump directly to tx.type

# A tibble: 7 × 5
  fu.interval n.censored n.event n.at.risk hazard.rate
        <dbl>      <int>   <int>     <dbl>       <dbl>
1       0.333        830     152      9775     0.0155 
2       0.667        491      37      8793     0.00421
3       1            613      27      8265     0.00327
4       2           1164      62      7625     0.00813
5       3           1143      41      6399     0.00641
6       4           1053      40      5215     0.00767
7       5            919      31      4122     0.00752

17.6.3 tx.type (M)

17.6.4 age (continuous) (L)

17.6.5 age (categorical) (M)

17.6.6 Full model (L)

Call:
coxph(formula = Surv(follow.up, death) ~ hla.match + tx.type, 
    data = dat)

  n= 9541, number of events= 451 
   (234 observations deleted due to missingness)

                  coef exp(coef) se(coef)      z Pr(>|z|)   
hla.match1    -0.08845   0.91535  0.17308 -0.511  0.60933   
hla.match2    -0.36340   0.69531  0.17919 -2.028  0.04256 * 
hla.match3    -0.50810   0.60164  0.18298 -2.777  0.00549 **
hla.match4    -0.65410   0.51991  0.22221 -2.944  0.00324 **
hla.match5    -0.39445   0.67405  0.29410 -1.341  0.17985   
hla.match6    -0.51491   0.59755  0.31489 -1.635  0.10201   
tx.typeLiving  0.39049   1.47771  0.12688  3.078  0.00209 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

              exp(coef) exp(-coef) lower .95 upper .95
hla.match1       0.9153     1.0925    0.6520    1.2850
hla.match2       0.6953     1.4382    0.4894    0.9879
hla.match3       0.6016     1.6621    0.4203    0.8612
hla.match4       0.5199     1.9234    0.3363    0.8037
hla.match5       0.6740     1.4836    0.3787    1.1996
hla.match6       0.5976     1.6735    0.3224    1.1077
tx.typeLiving    1.4777     0.6767    1.1524    1.8949

Concordance= 0.613  (se = 0.014 )
Likelihood ratio test= 56.79  on 7 df,   p=7e-10
Wald test            = 57.08  on 7 df,   p=6e-10
Score (logrank) test = 59.51  on 7 df,   p=2e-10
Call:
coxph(formula = Surv(follow.up, death) ~ hla.match * tx.type, 
    data = dat)

  n= 9541, number of events= 451 
   (234 observations deleted due to missingness)

                            coef exp(coef) se(coef)      z Pr(>|z|)  
hla.match1                0.8094    2.2467   0.8165  0.991   0.3215  
hla.match2                1.1371    3.1176   0.7530  1.510   0.1311  
hla.match3                0.4217    1.5245   0.7140  0.591   0.5548  
hla.match4                0.1094    1.1156   0.7341  0.149   0.8816  
hla.match5                0.4754    1.6087   0.7820  0.608   0.5432  
hla.match6                0.5836    1.7925   0.8021  0.728   0.4669  
tx.typeLiving             1.3801    3.9752   0.7218  1.912   0.0559 .
hla.match1:tx.typeLiving -0.9614    0.3823   0.8355 -1.151   0.2498  
hla.match2:tx.typeLiving -1.6578    0.1905   0.7762 -2.136   0.0327 *
hla.match3:tx.typeLiving -1.0096    0.3644   0.7461 -1.353   0.1760  
hla.match4:tx.typeLiving -0.5175    0.5960   0.7863 -0.658   0.5105  
hla.match5:tx.typeLiving -0.8601    0.4231   0.8805 -0.977   0.3286  
hla.match6:tx.typeLiving -1.3342    0.2634   0.9113 -1.464   0.1432  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

                         exp(coef) exp(-coef) lower .95 upper .95
hla.match1                  2.2467     0.4451   0.45341   11.1322
hla.match2                  3.1176     0.3208   0.71257   13.6400
hla.match3                  1.5245     0.6559   0.37617    6.1787
hla.match4                  1.1156     0.8964   0.26460    4.7032
hla.match5                  1.6087     0.6216   0.34737    7.4498
hla.match6                  1.7925     0.5579   0.37212    8.6342
tx.typeLiving               3.9752     0.2516   0.96600   16.3580
hla.match1:tx.typeLiving    0.3823     2.6155   0.07435    1.9662
hla.match2:tx.typeLiving    0.1905     5.2480   0.04162    0.8723
hla.match3:tx.typeLiving    0.3644     2.7444   0.08443    1.5726
hla.match4:tx.typeLiving    0.5960     1.6778   0.12763    2.7836
hla.match5:tx.typeLiving    0.4231     2.3635   0.07533    2.3763
hla.match6:tx.typeLiving    0.2634     3.7971   0.04414    1.5712

Concordance= 0.615  (se = 0.014 )
Likelihood ratio test= 66.78  on 13 df,   p=3e-09
Wald test            = 65.9  on 13 df,   p=5e-09
Score (logrank) test = 69.92  on 13 df,   p=8e-10
Analysis of Deviance Table
 Cox model: response is  Surv(follow.up, death)
 Model 1: ~ hla.match + tx.type
 Model 2: ~ hla.match * tx.type
   loglik  Chisq Df Pr(>|Chi|)
1 -3848.5                     
2 -3843.5 9.9891  6     0.1251

17.6.7 Discussion: include year or not?

17.7 Assumption Testing

## Why Survival Analysis (L)

Motivation: study the distribution of time to event \(T\).

Example: time of death after kidney transplant.

ID Transplant Death
1 2000 2005
2 2000 2009
3 2001 2005
4 2003 2004
5 2004 2016


We then calculate time to death for each respondents.

With this, all we need is to fit a linear model t ~ X or log(t) ~ X

ID Transplant Death Time to death
1 2000 2005 5
2 2000 2009 9
3 2001 2005 4
4 2003 2004 1
5 2004 2016 12


What if we do not know when exactly some respondents die?

Scenario 1: the study ends at the year 2008?

ID Transplant Death Time to death
1 2000 2005 5
2 2000 > 2008 > 8
3 2001 2005 4
4 2003 2004 1
5 2004 > 2008 > 4

Right Censoring: only observe the event (death) if it occurs before a certain time (2008).


Scenario 2: respondent 3 move away; loss follow up

ID Transplant Death Time to death
1 2000 2005 5
2 2000 > 2008 > 8
3 2001 > 2005 > 4
4 2003 2004 1
5 2004 > 2008 > 4


How many patients are right censored?

17.8 Challenges in Survival Analysis (L)

  • Right Censoring: only observe the event if it occurs before a certain time.
  • Left Censoring: event has occurred prior to the start of a research
    • Follow up every 3 years.
    • Event has occurred -> event happened sometime before follow up.
  • Left Truncation: delayed entry; respondents are included only if they survived long enough.
    • Start follow up with patients 100 days after the transplant
    • Patients dies within 100 day wouldn’t be included in the dataset
  • Right Truncation: respondents are included only if they have already experienced the event.
    • Retrospective analysis from deceased patients between 1990 and 2000.
    • Patients not dead before 2000 are not included in the dataset.