title: “Imputing Data/Predictive Modeling” author: “Abdimajid Mohamed” date: “2/28/2021” output: html_document —```

###install.packages("mice")
###install.packages("devtools")

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
## -- Attaching packages ------------------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.3     v stringr 1.4.0
## v tidyr   1.1.2     v forcats 0.5.0
## v readr   1.4.0
## Warning: package 'readr' was built under R version 4.0.3
## -- Conflicts ---------------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(broom)
library(ggplot2)
library(survminer)
## Loading required package: ggpubr
library(pROC)
## Warning: package 'pROC' was built under R version 4.0.3
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
library(rms)
## Warning: package 'rms' was built under R version 4.0.3
## Loading required package: Hmisc
## Warning: package 'Hmisc' was built under R version 4.0.3
## Loading required package: lattice
## Loading required package: Formula
## Warning: package 'Formula' was built under R version 4.0.3
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
## 
##     src, summarize
## The following objects are masked from 'package:base':
## 
##     format.pval, units
## Loading required package: SparseM
## 
## Attaching package: 'SparseM'
## The following object is masked from 'package:base':
## 
##     backsolve
library(mice)
## Warning: package 'mice' was built under R version 4.0.3
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
library(VIM)
## Warning: package 'VIM' was built under R version 4.0.3
## Loading required package: colorspace
## 
## Attaching package: 'colorspace'
## The following object is masked from 'package:pROC':
## 
##     coords
## Loading required package: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
## 
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
## 
##     sleep
library(nnet)
library(ROCR)
## Warning: package 'ROCR' was built under R version 4.0.3
library(devtools)
## Warning: package 'devtools' was built under R version 4.0.3
## Loading required package: usethis
## Error in get(genname, envir = envir) : object 'testthat_print' not found
library(mice, warn.conflicts = FALSE)

###Imputing the data md.pattern(LOIOddsRatio1)

LOIImputed <-mice(LOIOddsRatio1)

LOI1 = complete(LOIImputed,1) LOI2 = complete(LOIImputed,2) LOI3 = complete(LOIImputed,3) LOI4 = complete(LOIImputed,4) LOI5 = complete(LOIImputed,5)

load("ImputedDataComplete.RData")

NSQIPRiskCalculatorDF <- 
  LOI1 %>%
  select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL)

NSQIPRiskCalculatorDF <-
  NSQIPRiskCalculatorDF %>%
  remove_missing()

PortlandDF <- 
  LOI1 %>%
  select(LOIOR, AgeB, SEX, RACE_NEW, ModifiedFrailtyIndex5)

PortlandDF <-
  PortlandDF %>%
  remove_missing()
NSQIPRiskCalculatorModel <- 
  glm(LOIOR~AgeB+SEX+BMILabled+RACE_NEW+STEROID+ASACLAS+ASCITES+DYSPNEA+SMOKE+DIALYSIS+OPRENAFL, family = binomial(link = "logit"), data = NSQIPRiskCalculatorDF)
NSQIPPredict=predict(NSQIPRiskCalculatorModel)
NSQIPPredictModel1=prediction(NSQIPPredict, NSQIPRiskCalculatorDF$LOIOR)
plot(performance(NSQIPPredictModel1,"tpr","fpr")) %>%
  abline(a=0,b=1)

x=performance(NSQIPPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
## [1] 0.9460386
auc=performance(NSQIPPredictModel1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.7959264
ci.auc(NSQIPRiskCalculatorDF$LOIOR, NSQIPPredict)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.792-0.7998 (DeLong)
PortlandModel <- 
  glm(LOIOR~AgeB+SEX+ModifiedFrailtyIndex5, family = binomial(link = "logit"), data = PortlandDF)
PortlandPredict=predict(PortlandModel)
PortlandPredictModel1=prediction(PortlandPredict, PortlandDF$LOIOR)
plot(performance(PortlandPredictModel1,"tpr","fpr")) %>%
  abline(a=0,b=1)

x=performance(PortlandPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
## [1] 0.9460169
auc=performance(PortlandPredictModel1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.7633662
ci.auc(PortlandDF$LOIOR, PortlandPredict)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.759-0.7677 (DeLong)