Read Data

  • Import data in R and create an R dataframe named newdata

Read GRAIL Model model as R object from a file

  • Print ANOVA Table (if desired)

Logistic (Proportional Odds) Ordinal Regression Model

orm(formula = MGFR ~ Age + Sex + rcs(logAlb, 3) + rcs(logCr, 
    3) + rcs(logBUN, 3), data = grail_data, x = TRUE, y = TRUE, 
    scale = TRUE)
Model Likelihood
Ratio Test
Discrimination
Indexes
Rank Discrim.
Indexes
Obs 1235 LR χ2 1278.13 R2 0.645 ρ 0.771
Distinct Y 151 d.f. 8 R21235 0.645
Y0.5 96 Pr(>χ2) <0.0001 R28,1235 0.642
max |∂log L/∂β| 0.0004 Score χ2 1561.71 R21234.3 0.645
Pr(>χ2) <0.0001 R28,1234.3 0.643
g 2.696
gr 14.825
|Pr(Y ≥ median)-½| 0.287
β S.E. Wald Z Pr(>|Z|)
Age  -0.0467  0.0057 -8.13 <0.0001
Sex=Male   1.3326  0.1121 11.88 <0.0001
logAlb   1.9265  0.4870 3.96 <0.0001
logAlb'  -0.8810  0.5481 -1.61 0.1080
logCr  -4.7246  0.4113 -11.49 <0.0001
logCr'  -0.2968  0.6386 -0.46 0.6421
logBUN  -0.4928  0.2665 -1.85 0.0644
logBUN'  -1.2407  0.3703 -3.35 0.0008

Calculate the Score from the Model

  • Applied to saved model to the Harmony_data to calculate the score

KM Curves by GRAIL and CKD-Epi Event: Kidney/Death

library(table1)
table1(~factor(kidney_death_event_90_status)|GRAIL_CKDEpi,Harmony_data)
GRAIL<30 CKD-Epi 30+
(N=376)
GRAIL<30 CKD-Epi<30
(N=848)
GRAIL30+ CKD-Epi 30+
(N=801)
Overall
(N=2025)
factor(kidney_death_event_90_status)
0 229 (60.9%) 488 (57.5%) 520 (64.9%) 1237 (61.1%)
1 147 (39.1%) 360 (42.5%) 281 (35.1%) 788 (38.9%)