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)