tutorial

package preparation

library(rms)
library(base.rms)
library(survival)

1. transform between linear regressions

base to rms

fit <- lm(mpg~cyl+vs,data=mtcars)
lm2ols(fit)
## Linear Regression Model
## 
## ols(formula = mpg ~ cyl + vs, data = mtcars, model = TRUE, x = TRUE, 
##     y = TRUE)
## 
##                 Model Likelihood    Discrimination    
##                       Ratio Test           Indexes    
## Obs      32    LR chi2     41.70    R2       0.728    
## sigma3.2481    d.f.            2    R2 adj   0.710    
## d.f.     29    Pr(> chi2) 0.0000    g        5.641    
## 
## Residuals
## 
##      Min       1Q   Median       3Q      Max 
## -4.92324 -1.95291 -0.08097  1.31867  7.57676 
## 
## 
##           Coef    S.E.   t     Pr(>|t|)
## Intercept 39.6250 4.2246  9.38 <0.0001 
## cyl       -3.0907 0.5581 -5.54 <0.0001 
## vs        -0.9391 1.9775 -0.47 0.6384

rms to base

fit <- ols(mpg~cyl+vs,data=mtcars)
ols2lm(fit)
## 
## Call:
## lm(formula = mpg ~ cyl + vs, data = mtcars, model = TRUE, x = TRUE, 
##     y = TRUE)
## 
## Coefficients:
## (Intercept)          cyl           vs  
##     39.6250      -3.0907      -0.9391

2. transform between logistic regressions

base to rms

fit <- glm(vs~mpg,data=mtcars,family = binomial(link='logit'))
logit2lrm(fit)
## Logistic Regression Model
## 
## lrm(formula = vs ~ mpg, data = mtcars, model = TRUE, x = TRUE, 
##     y = TRUE)
## 
##                        Model Likelihood     Discrimination    Rank Discrim.    
##                              Ratio Test            Indexes          Indexes    
## Obs            32    LR chi2      18.33     R2       0.584    C       0.911    
##  0             18    d.f.             1     R2(1,32) 0.418    Dxy     0.821    
##  1             14    Pr(> chi2) <0.0001    R2(1,23.6)0.520    gamma   0.825    
## max |deriv| 2e-05                           Brier    0.130    tau-a   0.417    
## 
##           Coef    S.E.   Wald Z Pr(>|Z|)
## Intercept -8.8331 3.1623 -2.79  0.0052  
## mpg        0.4304 0.1584  2.72  0.0066

rms to base

fit <- lrm(vs~mpg,data=mtcars)
lrm2logit(fit)
## 
## Call:  glm(formula = vs ~ mpg, family = binomial(link = "logit"), data = mtcars, 
##     model = TRUE, x = TRUE, y = TRUE)
## 
## Coefficients:
## (Intercept)          mpg  
##     -8.8331       0.4304  
## 
## Degrees of Freedom: 31 Total (i.e. Null);  30 Residual
## Null Deviance:       43.86 
## Residual Deviance: 25.53     AIC: 29.53

3. transform between cox regressions

base to rms

fit <- coxph(Surv(mpg,vs)~am+gear,data=mtcars)
coxph2cph(fit)
## Cox Proportional Hazards Model
## 
## cph(formula = Surv(mpg, vs) ~ am + gear, data = mtcars, model = TRUE, 
##     x = TRUE, y = TRUE)
## 
##                         Model Tests    Discrimination    
##                                               Indexes    
## Obs         32    LR chi2      9.35    R2       0.311    
## Events      14    d.f.            2    R2(2,32) 0.205    
## Center -2.0911    Pr(> chi2) 0.0093    R2(2,14) 0.408    
##                   Score chi2  10.16    Dxy      0.514    
##                   Pr(> chi2) 0.0062                      
## 
##      Coef    S.E.   Wald Z Pr(>|Z|)
## am   -2.0159 0.9041 -2.23  0.0258  
## gear -0.3450 0.6999 -0.49  0.6221

rms to base

fit <- cph(Surv(mpg,vs)~am+gear,data=mtcars)
cph2coxph(fit)
## Call:
## coxph(formula = Surv(mpg, vs) ~ am + gear, data = mtcars, model = TRUE, 
##     x = TRUE, y = TRUE)
## 
##         coef exp(coef) se(coef)      z      p
## am   -2.0159    0.1332   0.9041 -2.230 0.0258
## gear -0.3450    0.7082   0.6999 -0.493 0.6221
## 
## Likelihood ratio test=9.35  on 2 df, p=0.009328
## n= 32, number of events= 14