Table 1

Table 1: Demographic characteristics
BA (n=2341)
WA (n=1697)
Mean SD Mean SD
Age 68.2 3.5 69.7 4.2
% male 94.3
95.9
SVM risk score -0.56 0.41 -0.49 0.38
% dementia incidence 4.9
2.9
% censored and alive 78.3
77.2
% censored and dead 16.8
20.0




## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.




6-month outcome summaries


## # A tibble: 2 × 2
##   Race  overall
##   <chr>   <int>
## 1 AA       1300
## 2 EA        876
## # A tibble: 6 × 5
## # Groups:   Race [2]
##   Race  event_status2 total overall proportion
##   <chr> <fct>         <int>   <int>      <dbl>
## 1 AA    censored       1038    1300      79.8 
## 2 AA    dementia         64    1300       4.92
## 3 AA    death           198    1300      15.2 
## 4 EA    censored        678     876      77.4 
## 5 EA    dementia         28     876       3.20
## 6 EA    death           170     876      19.4




1-year outcome summaries


## # A tibble: 2 × 2
##   Race  overall
##   <chr>   <int>
## 1 AA       2341
## 2 EA       1697
## # A tibble: 6 × 5
## # Groups:   Race [2]
##   Race  event_status2 total overall proportion
##   <chr> <fct>         <int>   <int>      <dbl>
## 1 AA    censored       1834    2341      78.3 
## 2 AA    dementia        114    2341       4.87
## 3 AA    death           393    2341      16.8 
## 4 EA    censored       1310    1697      77.2 
## 5 EA    dementia         50    1697       2.95
## 6 EA    death           337    1697      19.9






Competing risks analysis (score quintiles)


6-month data


## Call:
## coxph(formula = Surv(time_to_event, event_status2) ~ score_group, 
##     data = surv_6m, id = X)
## 
##   n= 2176, number of events= 460 
## 
##                    coef exp(coef) se(coef) robust se     z Pr(>|z|)    
## score_group2_1:2 0.4779    1.6126   0.3852    0.3841 1.244  0.21346    
## score_group3_1:2 0.1258    1.1340   0.4629    0.4624 0.272  0.78562    
## score_group4_1:2 1.3188    3.7390   0.3485    0.3479 3.791  0.00015 ***
## score_group5_1:2 1.9354    6.9271   0.3128    0.3113 6.218 5.03e-10 ***
## score_group2_1:3 0.2641    1.3023   0.1752    0.1744 1.515  0.12981    
## score_group3_1:3 0.7533    2.1241   0.1645    0.1648 4.571 4.85e-06 ***
## score_group4_1:3 0.6941    2.0020   0.1735    0.1734 4.003 6.25e-05 ***
## score_group5_1:3 1.2235    3.3990   0.1510    0.1505 8.128 4.36e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                  exp(coef) exp(-coef) lower .95 upper .95
## score_group2_1:2     1.613     0.6201    0.7596     3.424
## score_group3_1:2     1.134     0.8818    0.4582     2.807
## score_group4_1:2     3.739     0.2675    1.8907     7.394
## score_group5_1:2     6.927     0.1444    3.7637    12.750
## score_group2_1:3     1.302     0.7679    0.9253     1.833
## score_group3_1:3     2.124     0.4708    1.5378     2.934
## score_group4_1:3     2.002     0.4995    1.4252     2.812
## score_group5_1:3     3.399     0.2942    2.5306     4.565
## 
## Concordance= 0.64  (se = 0.013 )
## Likelihood ratio test= 131.3  on 8 df,   p=<2e-16
## Wald test            = 132.5  on 8 df,   p=<2e-16
## Score (logrank) test = 151.4  on 8 df,   p=<2e-16,   Robust = 102.5  p=<2e-16
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).
## Warning: Removed 40 rows containing missing values (`geom_line()`).
## Warning: Removed 368 rows containing missing values (`geom_point()`).
## Warning: Removed 40 rows containing missing values (`geom_line()`).
## Removed 40 rows containing missing values (`geom_line()`).
## Removed 40 rows containing missing values (`geom_line()`).
## Warning: Removed 92 rows containing missing values (`geom_point()`).
## Warning: Removed 40 rows containing missing values (`geom_line()`).
## Removed 40 rows containing missing values (`geom_line()`).



1-year data


## Call:
## coxph(formula = Surv(time_to_event, event_status2) ~ score_group, 
##     data = surv_1y, id = X)
## 
##   n= 4038, number of events= 894 
## 
##                      coef exp(coef) se(coef) robust se      z Pr(>|z|)    
## score_group2_1:2  0.30579   1.35770  0.29518   0.29493  1.037   0.2998    
## score_group3_1:2 -0.09707   0.90749  0.36411   0.36363 -0.267   0.7895    
## score_group4_1:2  1.19695   3.31002  0.26505   0.26402  4.534 5.80e-06 ***
## score_group5_1:2  1.99864   7.37903  0.23584   0.23496  8.506  < 2e-16 ***
## score_group2_1:3  0.25681   1.29280  0.12759   0.12696  2.023   0.0431 *  
## score_group3_1:3  0.63809   1.89287  0.12433   0.12440  5.129 2.91e-07 ***
## score_group4_1:3  0.92488   2.52157  0.11958   0.11914  7.763 8.29e-15 ***
## score_group5_1:3  1.32238   3.75235  0.11161   0.11142 11.869  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                  exp(coef) exp(-coef) lower .95 upper .95
## score_group2_1:2    1.3577     0.7365    0.7617     2.420
## score_group3_1:2    0.9075     1.1019    0.4450     1.851
## score_group4_1:2    3.3100     0.3021    1.9729     5.553
## score_group5_1:2    7.3790     0.1355    4.6558    11.695
## score_group2_1:3    1.2928     0.7735    1.0080     1.658
## score_group3_1:3    1.8929     0.5283    1.4833     2.416
## score_group4_1:3    2.5216     0.3966    1.9965     3.185
## score_group5_1:3    3.7524     0.2665    3.0162     4.668
## 
## Concordance= 0.649  (se = 0.009 )
## Likelihood ratio test= 289.2  on 8 df,   p=<2e-16
## Wald test            = 290.4  on 8 df,   p=<2e-16
## Score (logrank) test = 341.8  on 8 df,   p=<2e-16,   Robust = 220.1  p=<2e-16
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).




Competing risks analysis (continuous risk scores)


6-month data


## Call:
## coxph(formula = Surv(time_to_event, event_status2) ~ Score, data = surv_6m, 
##     id = X)
## 
##   n= 2176, number of events= 460 
## 
##             coef exp(coef) se(coef) robust se     z Pr(>|z|)    
## Score_1:2 1.6831    5.3823   0.1953    0.1867 9.017   <2e-16 ***
## Score_1:3 0.9965    2.7088   0.1100    0.1051 9.481   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##           exp(coef) exp(-coef) lower .95 upper .95
## Score_1:2     5.382     0.1858     3.733     7.760
## Score_1:3     2.709     0.3692     2.205     3.328
## 
## Concordance= 0.645  (se = 0.013 )
## Likelihood ratio test= 132.7  on 2 df,   p=<2e-16
## Wald test            = 164.7  on 2 df,   p=<2e-16
## Score (logrank) test = 161.8  on 2 df,   p=<2e-16,   Robust = 93.36  p=<2e-16
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).
## Warning: Removed 40 rows containing missing values (`geom_line()`).
## Warning: Removed 368 rows containing missing values (`geom_point()`).
## Warning: Removed 40 rows containing missing values (`geom_line()`).
## Removed 40 rows containing missing values (`geom_line()`).
## Removed 40 rows containing missing values (`geom_line()`).
## Warning: Removed 92 rows containing missing values (`geom_point()`).
## Warning: Removed 40 rows containing missing values (`geom_line()`).
## Removed 40 rows containing missing values (`geom_line()`).



1-year data


## Call:
## coxph(formula = Surv(time_to_event, event_status2) ~ Score, data = surv_1y, 
##     id = X)
## 
##   n= 4038, number of events= 894 
## 
##              coef exp(coef) se(coef) robust se     z Pr(>|z|)    
## Score_1:2 1.74250   5.71161  0.14606   0.14178 12.29   <2e-16 ***
## Score_1:3 1.07789   2.93848  0.07768   0.07562 14.25   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##           exp(coef) exp(-coef) lower .95 upper .95
## Score_1:2     5.712     0.1751     4.326     7.541
## Score_1:3     2.938     0.3403     2.534     3.408
## 
## Concordance= 0.651  (se = 0.01 )
## Likelihood ratio test= 281.8  on 2 df,   p=<2e-16
## Wald test            = 337.2  on 2 df,   p=<2e-16
## Score (logrank) test = 347.5  on 2 df,   p=<2e-16,   Robust = 188.4  p=<2e-16
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).





Dementia only analysis


6-month data


## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ score_group, 
##     data = surv_6m_demonly, id = X)
## 
##   n= 2176, number of events= 92 
## 
##                coef exp(coef) se(coef)     z Pr(>|z|)    
## score_group2 0.4779    1.6126   0.3852 1.241 0.214733    
## score_group3 0.1258    1.1340   0.4629 0.272 0.785867    
## score_group4 1.3188    3.7390   0.3485 3.784 0.000154 ***
## score_group5 1.9354    6.9271   0.3128 6.187 6.12e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## score_group2     1.613     0.6201    0.7580     3.431
## score_group3     1.134     0.8818    0.4577     2.810
## score_group4     3.739     0.2675    1.8885     7.403
## score_group5     6.927     0.1444    3.7522    12.789
## 
## Concordance= 0.707  (se = 0.028 )
## Likelihood ratio test= 56.37  on 4 df,   p=2e-11
## Wald test            = 55.64  on 4 df,   p=2e-11
## Score (logrank) test = 69.6  on 4 df,   p=3e-14



1-year data


## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ score_group, 
##     data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##                  coef exp(coef) se(coef)      z Pr(>|z|)    
## score_group2  0.32537   1.38455  0.29517  1.102    0.270    
## score_group3 -0.09433   0.90999  0.36412 -0.259    0.796    
## score_group4  1.20397   3.33333  0.26505  4.542 5.56e-06 ***
## score_group5  1.98396   7.27150  0.23623  8.398  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## score_group2     1.385     0.7223    0.7764     2.469
## score_group3     0.910     1.0989    0.4458     1.858
## score_group4     3.333     0.3000    1.9827     5.604
## score_group5     7.272     0.1375    4.5766    11.553
## 
## Concordance= 0.718  (se = 0.021 )
## Likelihood ratio test= 112.8  on 4 df,   p=<2e-16
## Wald test            = 113  on 4 df,   p=<2e-16
## Score (logrank) test = 145.7  on 4 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ ScoreIQR + 
##     Race, data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##              coef exp(coef) se(coef)      z Pr(>|z|)    
## ScoreIQR  0.78917   2.20156  0.06643 11.880  < 2e-16 ***
## RaceEA   -0.55743   0.57268  0.16990 -3.281  0.00103 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##          exp(coef) exp(-coef) lower .95 upper .95
## ScoreIQR    2.2016     0.4542    1.9328     2.508
## RaceEA      0.5727     1.7462    0.4105     0.799
## 
## Concordance= 0.733  (se = 0.021 )
## Likelihood ratio test= 122.9  on 2 df,   p=<2e-16
## Wald test            = 150.3  on 2 df,   p=<2e-16
## Score (logrank) test = 161.8  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ ScoreIQR + 
##     Race_flipped, data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##                   coef exp(coef) se(coef)      z Pr(>|z|)    
## ScoreIQR       0.78917   2.20156  0.06643 11.880  < 2e-16 ***
## Race_flippedAA 0.55743   1.74618  0.16990  3.281  0.00103 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                exp(coef) exp(-coef) lower .95 upper .95
## ScoreIQR           2.202     0.4542     1.933     2.508
## Race_flippedAA     1.746     0.5727     1.252     2.436
## 
## Concordance= 0.733  (se = 0.021 )
## Likelihood ratio test= 122.9  on 2 df,   p=<2e-16
## Wald test            = 150.3  on 2 df,   p=<2e-16
## Score (logrank) test = 161.8  on 2 df,   p=<2e-16
##          chisq df    p
## ScoreIQR 2.454  1 0.12
## Race     0.654  1 0.42
## GLOBAL   3.072  2 0.22






Death and dementia as the same outcome analysis


6-month data


## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ score_group, 
##     data = surv_6m_both, id = X)
## 
##   n= 2161, number of events= 454 
## 
##                coef exp(coef) se(coef)     z Pr(>|z|)    
## score_group2 0.2873    1.3328   0.1600 1.796   0.0726 .  
## score_group3 0.6500    1.9156   0.1552 4.187 2.83e-05 ***
## score_group4 0.8312    2.2961   0.1542 5.391 7.02e-08 ***
## score_group5 1.3500    3.8576   0.1354 9.970  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## score_group2     1.333     0.7503     0.974     1.824
## score_group3     1.916     0.5220     1.413     2.597
## score_group4     2.296     0.4355     1.697     3.106
## score_group5     3.858     0.2592     2.958     5.030
## 
## Concordance= 0.636  (se = 0.013 )
## Likelihood ratio test= 113.2  on 4 df,   p=<2e-16
## Wald test            = 115.8  on 4 df,   p=<2e-16
## Score (logrank) test = 127.8  on 4 df,   p=<2e-16



1-year data


## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ score_group, 
##     data = surv_1y_both, id = X)
## 
##   n= 4038, number of events= 893 
## 
##                coef exp(coef) se(coef)      z Pr(>|z|)    
## score_group2 0.2646    1.3029   0.1171  2.260   0.0238 *  
## score_group3 0.5553    1.7425   0.1169  4.751 2.02e-06 ***
## score_group4 0.9718    2.6428   0.1089  8.926  < 2e-16 ***
## score_group5 1.4556    4.2871   0.1002 14.527  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## score_group2     1.303     0.7675     1.036     1.639
## score_group3     1.743     0.5739     1.386     2.191
## score_group4     2.643     0.3784     2.135     3.271
## score_group5     4.287     0.2333     3.523     5.217
## 
## Concordance= 0.647  (se = 0.009 )
## Likelihood ratio test= 263.5  on 4 df,   p=<2e-16
## Wald test            = 270.8  on 4 df,   p=<2e-16
## Score (logrank) test = 303.4  on 4 df,   p=<2e-16
##             chisq df    p
## score_group  7.29  4 0.12
## GLOBAL       7.29  4 0.12





Setting all those who died to the maximum censoring time


6-month data


## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ score_group, 
##     data = surv_6m_deathmax, id = X)
## 
##   n= 2161, number of events= 92 
## 
##                 coef exp(coef) se(coef)     z Pr(>|z|)    
## score_group2 0.47204   1.60326  0.38517 1.226 0.220370    
## score_group3 0.03814   1.03887  0.46292 0.082 0.934344    
## score_group4 1.24946   3.48847  0.34847 3.586 0.000336 ***
## score_group5 1.77152   5.87978  0.31266 5.666 1.46e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## score_group2     1.603     0.6237    0.7536     3.411
## score_group3     1.039     0.9626    0.4193     2.574
## score_group4     3.488     0.2867    1.7620     6.906
## score_group5     5.880     0.1701    3.1858    10.852
## 
## Concordance= 0.696  (se = 0.028 )
## Likelihood ratio test= 48.89  on 4 df,   p=6e-10
## Wald test            = 47.47  on 4 df,   p=1e-09
## Score (logrank) test = 57.58  on 4 df,   p=9e-12



1-year data


## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ score_group, 
##     data = surv_1y_deathmax, id = X)
## 
##   n= 4038, number of events= 164 
## 
##                 coef exp(coef) se(coef)      z Pr(>|z|)    
## score_group2  0.3039    1.3552   0.2952  1.030    0.303    
## score_group3 -0.1637    0.8490   0.3641 -0.450    0.653    
## score_group4  1.0981    2.9986   0.2650  4.143 3.42e-05 ***
## score_group5  1.7979    6.0368   0.2357  7.627 2.40e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## score_group2     1.355     0.7379    0.7599     2.417
## score_group3     0.849     1.1779    0.4159     1.733
## score_group4     2.999     0.3335    1.7837     5.041
## score_group5     6.037     0.1657    3.8033     9.582
## 
## Concordance= 0.705  (se = 0.021 )
## Likelihood ratio test= 96.64  on 4 df,   p=<2e-16
## Wald test            = 95.25  on 4 df,   p=<2e-16
## Score (logrank) test = 118.2  on 4 df,   p=<2e-16

Summarizing



Censoring date = most recent visit before 09/12/23


##          Analysis Data Estimate Lower.CI Upper.CI Estimate.2        Lower.CI2
## 1 Competing risks   6m    5.263    3.658    7.573      2.672 2.17568336809375
## 2 Competing risks   1y    5.602    4.247    7.390      2.901 2.50215717257962
## 3   Dementia only   6m    5.382    3.671    7.892          -                -
## 4   Dementia only   1y    5.627    4.220    7.503          -                -
## 5  Dementia/death   6m    3.120    2.583    3.770          -                -
## 6  Dementia/death   1y    3.345    2.925    3.826          -                -
## 7   Deaths as max   6m    4.433    3.063    6.415          -                -
## 8   Deaths as max   1y    4.440    3.374    5.843          -                -
##   Upper.CI2
## 1      3.28
## 2     3.364
## 3         -
## 4         -
## 5         -
## 6         -
## 7         -
## 8         -




Worse case sensitivity analyses



## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.



Race as an effect modifier or confounder


## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ Score + 
##     Race + Score:Race, data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##                 coef exp(coef) se(coef)      z Pr(>|z|)    
## Score         1.6170    5.0380   0.1734  9.324  < 2e-16 ***
## RaceEA       -0.4961    0.6089   0.1777 -2.792  0.00524 ** 
## Score:RaceEA  0.3501    1.4192   0.3137  1.116  0.26440    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##              exp(coef) exp(-coef) lower .95 upper .95
## Score           5.0380     0.1985    3.5862    7.0776
## RaceEA          0.6089     1.6423    0.4298    0.8626
## Score:RaceEA    1.4192     0.7046    0.7674    2.6248
## 
## Concordance= 0.735  (se = 0.02 )
## Likelihood ratio test= 124.1  on 3 df,   p=<2e-16
## Wald test            = 147.1  on 3 df,   p=<2e-16
## Score (logrank) test = 163.1  on 3 df,   p=<2e-16
## Analysis of Deviance Table
##  Cox model: response is Surv(time_to_event2, event_status2)
## Terms added sequentially (first to last)
## 
##             loglik    Chisq Df Pr(>|Chi|)    
## NULL       -1316.5                           
## Score      -1260.8 111.4418  1  < 2.2e-16 ***
## Race       -1255.1  11.4423  1  0.0007179 ***
## Score:Race -1254.5   1.2278  1  0.2678312    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ Score + 
##     Race, data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.7197    5.5828   0.1448 11.880  < 2e-16 ***
## RaceEA -0.5574    0.5727   0.1699 -3.281  0.00103 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     5.5828     0.1791    4.2037     7.414
## RaceEA    0.5727     1.7462    0.4105     0.799
## 
## Concordance= 0.733  (se = 0.021 )
## Likelihood ratio test= 122.9  on 2 df,   p=<2e-16
## Wald test            = 150.3  on 2 df,   p=<2e-16
## Score (logrank) test = 161.8  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ quintile_new + 
##     Race + quintile_new:Race, data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##                         coef exp(coef) se(coef)      z Pr(>|z|)    
## quintile_new2         0.2060    1.2287   0.3780  0.545  0.58575    
## quintile_new3         0.1459    1.1570   0.3934  0.371  0.71079    
## quintile_new4         0.9139    2.4940   0.3390  2.696  0.00702 ** 
## quintile_new5         1.7535    5.7747   0.3025  5.797 6.74e-09 ***
## RaceEA               -1.0204    0.3604   0.7559 -1.350  0.17705    
## quintile_new2:RaceEA -0.1745    0.8398   0.9880 -0.177  0.85978    
## quintile_new3:RaceEA  0.6701    1.9544   0.8931  0.750  0.45309    
## quintile_new4:RaceEA  0.0298    1.0303   0.8602  0.035  0.97236    
## quintile_new5:RaceEA  0.7240    2.0627   0.7904  0.916  0.35967    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                      exp(coef) exp(-coef) lower .95 upper .95
## quintile_new2           1.2287     0.8138   0.58578     2.577
## quintile_new3           1.1571     0.8643   0.53516     2.502
## quintile_new4           2.4940     0.4010   1.28335     4.847
## quintile_new5           5.7747     0.1732   3.19206    10.447
## RaceEA                  0.3604     2.7744   0.08192     1.586
## quintile_new2:RaceEA    0.8398     1.1907   0.12111     5.824
## quintile_new3:RaceEA    1.9544     0.5117   0.33947    11.252
## quintile_new4:RaceEA    1.0303     0.9706   0.19088     5.561
## quintile_new5:RaceEA    2.0627     0.4848   0.43815     9.711
## 
## Concordance= 0.723  (se = 0.02 )
## Likelihood ratio test= 111.5  on 9 df,   p=<2e-16
## Wald test            = 104.7  on 9 df,   p=<2e-16
## Score (logrank) test = 137  on 9 df,   p=<2e-16
## Analysis of Deviance Table
##  Cox model: response is Surv(time_to_event2, event_status2)
## Terms added sequentially (first to last)
## 
##                    loglik   Chisq Df Pr(>|Chi|)    
## NULL              -1316.5                          
## quintile_new      -1268.6 95.9265  4  < 2.2e-16 ***
## Race              -1262.8 11.4329  1  0.0007216 ***
## quintile_new:Race -1260.8  4.1854  4  0.3814943    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1









## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ quintile_new, 
##     data = surv_1y_demonly[surv_1y_demonly$Race == "AA", ], id = X)
## 
##   n= 2341, number of events= 113 
## 
##                 coef exp(coef) se(coef)     z Pr(>|z|)    
## quintile_new2 0.2068    1.2297   0.3780 0.547  0.58430    
## quintile_new3 0.1465    1.1578   0.3934 0.373  0.70952    
## quintile_new4 0.9146    2.4958   0.3390 2.698  0.00697 ** 
## quintile_new5 1.7572    5.7964   0.3025 5.809 6.28e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##               exp(coef) exp(-coef) lower .95 upper .95
## quintile_new2     1.230     0.8132    0.5862     2.580
## quintile_new3     1.158     0.8637    0.5355     2.503
## quintile_new4     2.496     0.4007    1.2843     4.850
## quintile_new5     5.796     0.1725    3.2038    10.487
## 
## Concordance= 0.688  (se = 0.026 )
## Likelihood ratio test= 58.44  on 4 df,   p=6e-12
## Wald test            = 60.3  on 4 df,   p=3e-12
## Score (logrank) test = 72.91  on 4 df,   p=6e-15
## Call:
## coxph(formula = Surv(time_to_event2, event_status2) ~ quintile_new, 
##     data = surv_1y_demonly[surv_1y_demonly$Race == "EA", ], id = X)
## 
##   n= 1697, number of events= 50 
## 
##                   coef exp(coef) se(coef)     z Pr(>|z|)    
## quintile_new2  0.03149   1.03199  0.91288 0.034 0.972485    
## quintile_new3  0.81552   2.26035  0.80179 1.017 0.309091    
## quintile_new4  0.94234   2.56599  0.79059 1.192 0.233280    
## quintile_new5  2.46875  11.80768  0.73041 3.380 0.000725 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##               exp(coef) exp(-coef) lower .95 upper .95
## quintile_new2     1.032    0.96900    0.1724     6.176
## quintile_new3     2.260    0.44241    0.4696    10.881
## quintile_new4     2.566    0.38971    0.5449    12.084
## quintile_new5    11.808    0.08469    2.8212    49.418
## 
## Concordance= 0.743  (se = 0.034 )
## Likelihood ratio test= 45.01  on 4 df,   p=4e-09
## Wald test            = 41.75  on 4 df,   p=2e-08
## Score (logrank) test = 57.95  on 4 df,   p=8e-12




Grace period analysis


6-month data


## Call:
## coxph(formula = Surv(time_to_event_grace, event_status) ~ Score, 
##     data = surv_6m_demonly_grace, id = X)
## 
##   n= 2164, number of events= 92 
## 
##         coef exp(coef) se(coef)     z Pr(>|z|)    
## Score 1.6809    5.3702   0.1951 8.617   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##       exp(coef) exp(-coef) lower .95 upper .95
## Score      5.37     0.1862     3.664     7.871
## 
## Concordance= 0.713  (se = 0.029 )
## Likelihood ratio test= 60.94  on 1 df,   p=6e-15
## Wald test            = 74.26  on 1 df,   p=<2e-16
## Score (logrank) test = 78.71  on 1 df,   p=<2e-16



1-year data


## Call:
## coxph(formula = Surv(time_to_event_grace, event_status) ~ Score, 
##     data = surv_1y_demonly_grace, id = X)
## 
##   n= 3981, number of events= 163 
## 
##        coef exp(coef) se(coef)    z Pr(>|z|)    
## Score 1.735     5.669    0.147 11.8   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##       exp(coef) exp(-coef) lower .95 upper .95
## Score     5.669     0.1764      4.25     7.562
## 
## Concordance= 0.715  (se = 0.022 )
## Likelihood ratio test= 113.6  on 1 df,   p=<2e-16
## Wald test            = 139.3  on 1 df,   p=<2e-16
## Score (logrank) test = 148.7  on 1 df,   p=<2e-16




##        Analysis Data Estimate Lower.CI Upper.CI
## 1 Dementia only   6m    5.382    3.671    7.892
## 2 Dementia only   1y    5.627    4.220    7.503
## 3  Grace period   6m    5.370    3.664    7.871
## 4  Grace period   1y    5.669    4.250    7.562

Assessing nonlinearity


surv_1y_demonly$Score2 <- surv_1y_demonly$Score^2
surv_1y_demonly$Score3 <- surv_1y_demonly$Score^3
ggcoxfunctional(Surv(time_to_event2, event_status2) ~ Score + Score2 + Score3, id = X, data = surv_1y_demonly)
## Warning: arguments formula is deprecated; will be removed in the next version;
## please use fit instead.

summary(surv_1y_demonly$Score)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -1.5608 -0.8060 -0.6073 -0.5320 -0.3471  1.6023



## Call:
## coxph(formula = Surv(time_to_event2, event_status) ~ Score + 
##     Score2, data = surv_6m, id = X)
## 
##   n= 2176, number of events= 460 
## 
##               coef exp(coef) se(coef) robust se      z Pr(>|z|)    
## Score_1:2   1.6235    5.0707   0.2105    0.2038  7.966 1.64e-15 ***
## Score2_1:2 -0.2846    0.7523   0.3421    0.3497 -0.814   0.4158    
## Score_1:3   0.8145    2.2580   0.1458    0.1562  5.216 1.83e-07 ***
## Score2_1:3 -0.4319    0.6493   0.2005    0.2227 -1.939   0.0525 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##            exp(coef) exp(-coef) lower .95 upper .95
## Score_1:2     5.0707     0.1972    3.4009     7.560
## Score2_1:2    0.7523     1.3292    0.3791     1.493
## Score_1:3     2.2580     0.4429    1.6627     3.067
## Score2_1:3    0.6493     1.5402    0.4196     1.005
## 
## Concordance= 0.646  (se = 0.013 )
## Likelihood ratio test= 136.3  on 4 df,   p=<2e-16
## Wald test            = 143.3  on 4 df,   p=<2e-16
## Score (logrank) test = 174.1  on 4 df,   p=<2e-16,   Robust = 103.2  p=<2e-16
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).
## Call:
## coxph(formula = Surv(time_to_event2, event_status) ~ Score + 
##     Score2, data = surv_1y, id = X)
## 
##   n= 4038, number of events= 894 
## 
##                coef exp(coef) se(coef) robust se      z Pr(>|z|)    
## Score_1:2   1.69494   5.44634  0.15567   0.15340 11.049   <2e-16 ***
## Score2_1:2 -0.29406   0.74523  0.26266   0.27193 -1.081   0.2795    
## Score_1:3   0.97530   2.65196  0.09375   0.09671 10.085   <2e-16 ***
## Score2_1:3 -0.27995   0.75582  0.13588   0.15123 -1.851   0.0642 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##            exp(coef) exp(-coef) lower .95 upper .95
## Score_1:2     5.4463     0.1836    4.0321     7.357
## Score2_1:2    0.7452     1.3419    0.4373     1.270
## Score_1:3     2.6520     0.3771    2.1941     3.205
## Score2_1:3    0.7558     1.3231    0.5619     1.017
## 
## Concordance= 0.652  (se = 0.01 )
## Likelihood ratio test= 283.4  on 4 df,   p=<2e-16
## Wald test            = 293.8  on 4 df,   p=<2e-16
## Score (logrank) test = 379.4  on 4 df,   p=<2e-16,   Robust = 201.7  p=<2e-16
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_6m_demonly, id = X)
## 
##   n= 2176, number of events= 92 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.6495    5.2041   0.2105  7.837 4.62e-15 ***
## Score2 -0.2582    0.7724   0.3406 -0.758    0.448    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     5.2041     0.1922    3.4450     7.861
## Score2    0.7724     1.2947    0.3962     1.506
## 
## Concordance= 0.714  (se = 0.029 )
## Likelihood ratio test= 61.59  on 2 df,   p=4e-14
## Wald test            = 68.47  on 2 df,   p=1e-15
## Score (logrank) test = 95.42  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_1y_demonly, id = X)
## 
##   n= 4038, number of events= 163 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.6998    5.4728   0.1568 10.843   <2e-16 ***
## Score2 -0.2728    0.7612   0.2635 -1.035      0.3    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     5.4728     0.1827    4.0251     7.441
## Score2    0.7612     1.3137    0.4541     1.276
## 
## Concordance= 0.715  (se = 0.023 )
## Likelihood ratio test= 113.9  on 2 df,   p=<2e-16
## Wald test            = 127.6  on 2 df,   p=<2e-16
## Score (logrank) test = 180.4  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_6m_both, id = X)
## 
##   n= 2161, number of events= 454 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.0292    2.7989   0.1194  8.620   <2e-16 ***
## Score2 -0.3254    0.7222   0.1706 -1.908   0.0565 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     2.7989     0.3573    2.2149     3.537
## Score2    0.7222     1.3846    0.5169     1.009
## 
## Concordance= 0.644  (se = 0.013 )
## Likelihood ratio test= 123.6  on 2 df,   p=<2e-16
## Wald test            = 128.6  on 2 df,   p=<2e-16
## Score (logrank) test = 145.8  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_1y_both, id = X)
## 
##   n= 4038, number of events= 893 
## 
##            coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.14445   3.14070  0.07925 14.441   <2e-16 ***
## Score2 -0.23112   0.79364  0.11886 -1.944   0.0518 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     3.1407     0.3184    2.6889     3.668
## Score2    0.7936     1.2600    0.6287     1.002
## 
## Concordance= 0.651  (se = 0.01 )
## Likelihood ratio test= 268.1  on 2 df,   p=<2e-16
## Wald test            = 291.2  on 2 df,   p=<2e-16
## Score (logrank) test = 339.8  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_6m_deathmax, id = X)
## 
##   n= 2161, number of events= 92 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.4708    4.3528   0.2064  7.126 1.03e-12 ***
## Score2 -0.3356    0.7149   0.3081 -1.089    0.276    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     4.3528     0.2297    2.9046     6.523
## Score2    0.7149     1.3988    0.3909     1.308
## 
## Concordance= 0.701  (se = 0.029 )
## Likelihood ratio test= 51.87  on 2 df,   p=5e-12
## Wald test            = 55.36  on 2 df,   p=1e-12
## Score (logrank) test = 72.74  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_1y_deathmax, id = X)
## 
##   n= 4038, number of events= 164 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.4816    4.3998   0.1535  9.655   <2e-16 ***
## Score2 -0.3953    0.6735   0.2395 -1.651   0.0988 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     4.3998     0.2273    3.2570     5.944
## Score2    0.6735     1.4849    0.4212     1.077
## 
## Concordance= 0.7  (se = 0.023 )
## Likelihood ratio test= 94.56  on 2 df,   p=<2e-16
## Wald test            = 99.86  on 2 df,   p=<2e-16
## Score (logrank) test = 131.1  on 2 df,   p=<2e-16


## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_1y_demonly_ba, id = X)
## 
##   n= 2341, number of events= 113 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   1.6015    4.9603   0.1896  8.449   <2e-16 ***
## Score2 -0.2015    0.8175   0.3063 -0.658    0.511    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     4.9603     0.2016    3.4210     7.192
## Score2    0.8175     1.2232    0.4485     1.490
## 
## Concordance= 0.704  (se = 0.027 )
## Likelihood ratio test= 72.76  on 2 df,   p=<2e-16
## Wald test            = 82.66  on 2 df,   p=<2e-16
## Score (logrank) test = 113.9  on 2 df,   p=<2e-16
## Call:
## coxph(formula = Surv(time_to_event, event_status) ~ Score + Score2, 
##     data = surv_1y_demonly_wa, id = X)
## 
##   n= 1697, number of events= 50 
## 
##           coef exp(coef) se(coef)      z Pr(>|z|)    
## Score   2.0120    7.4781   0.3004  6.697 2.12e-11 ***
## Score2 -0.8579    0.4241   0.5560 -1.543    0.123    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##        exp(coef) exp(-coef) lower .95 upper .95
## Score     7.4781     0.1337    4.1503    13.474
## Score2    0.4241     2.3582    0.1426     1.261
## 
## Concordance= 0.763  (se = 0.036 )
## Likelihood ratio test= 47.96  on 2 df,   p=4e-11
## Wald test            = 46.98  on 2 df,   p=6e-11
## Score (logrank) test = 71.69  on 2 df,   p=3e-16