#  Important packages to load in
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 ──
## ✓ ggplot2 3.3.3     ✓ purrr   0.3.4
## ✓ tibble  3.0.3     ✓ stringr 1.4.0
## ✓ tidyr   1.1.1     ✓ forcats 0.5.0
## ✓ readr   1.3.1
## ── 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(VIM)
## Loading required package: colorspace
## 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
load("NSQIPFinal.RData")

##subset surgspec patients only general surgery patients NSQIPGENSURG <- subset(NSQIPALLYEARS, SURGSPEC == “General Surgery”)

###Subset patients as inpatient, elective, independent status, NSQIPInpatient <- subset(NSQIPGENSURG, INOUT == “Inpatient”)

NSQIPElective <- subset(NSQIPInpatient, ELECTSURG == “Yes”)

NSQIPFinal <- subset(NSQIPElective, FNSTATUS2 == “Independent”)

##Recoding Procedures into Hep
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST INTRAHEPATC DUCTS & GI TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST ROUX-EN-Y INTRAHEPATC BILIARY DUCTS & GI"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST ROUX-EN-Y XTRHEPATC BILIARY DUCTS & GI"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST XTRHEPATC BILIARY DUCTS & GI TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLECYSTOENTEROSTOMY DIRECT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLECYSTOENTEROSTOMY ROUX-EN-Y"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLEDOCHOT/OST W/O SPHNCTROTOMY/SPHNCTROP"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLEDOCHOT/OST W/SPHNCTROTOMY/SPHNCTROP"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC BILE DUX TUM W/WO PRIM RPR XTRHEPATC"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC BILE DUX TUM W/WO PRIM RPR INTRAHEPATC"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION CHOLEDOCHAL CYST"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ PARTIAL LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TOTAL LEFT LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TOTAL RIGHT LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TRISEGMENTECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATOTOMY OPEN DRAINAGE ABSCESS/CYST 1/2 STAGES"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="SUTURE EXTRAHEPATIC BILE DUCT PRE-EXIST INJURY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="TRANSDUOL SPHINCTEROT/PLASTY W/WO RMVL CALCULUS"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLIS LAPAROSCOPIC PROCEDURE LIVER"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPY PROCEDURE BILIARY TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXPL CONGENITAL ATRESIA BILE DUCTS"] <- "Hep"






##Recoding Procedures into PanNSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX ==""] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION LESION PANCREAS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATECTOMY TOTAL"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATECTOMY W/TRNSPLJ PANCREAS/ISLET CELLS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATICOJEJUNOSTOMY SIDE-TO-SIDE ANAST"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PELVIC EXENTERATION COLORECTAL MALIGNANCY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PELVIC EXENTERATION COMPLETE MALIGNANCY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT W/PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT WHIPPLE W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PROCTOPEXY W/SIGMOID RESCJ ABDL APPR"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="RESECJ/DBRDMT PANCREAS NECROTIZING PANCREATITIS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION AMPULLA VATER"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="INT ANAST PANCREATIC CYST GI TRACT DIRECT"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="INT ANAST PANCREATIC CYST GI TRACT ROUX-EN-Y"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS SURG ABLTJ 1/> LVR TUM RF"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL NR-TOT W/PRSRV DUO CHLD-TYP PX"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL STOT W/O PNCRTCOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL STOT W/PNCRTCOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Pan"





##Recoding Procedures into Colorectal (col+pro)
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TOT ABDL W/O PRCTECT W/CONTINENT ILEOST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TOT ABDL W/O PRCTECT W/ILEOST/ILEOPXTS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TTL ABD W/PRCTECT ILEOANAL ANAST & RSVR"] <-"CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PARTIAL W/ANASTOMOSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL ABDOMINAL & TRANSANAL APPROACH"] <-"CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOPROCTOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOPROCTOSTOMY & COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOST/ILEOST & MUCOFISTULA"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/END COLOSTOMY & CLSR DSTL SGMT"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/RMVL TERMINAL ILEUM & ILEOCOLOS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/SKIN LEVEL CECOST/COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABD W/PROCTECTOMY ILEOANAL ANAST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABDL W/PROCTECTOMY W/CONTNT ILEOST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABDL W/PROCTECTOMY W/ILEOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLOSTOMY/SKIN LEVEL CECOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC RCT TUM PROCTOTOMY TRANSSAC/TRANSCOCCYGEAL"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPAROSCOPY COLECTOMY PARTIAL W/ANASTOMOSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPAROSCOPY SURG COLOSTOMY/SKN LVL CECOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLCT TTL ABD W/PRCTECT ILEOANAL ANASTOMSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTMY PRTL W/COLOPXTSTMY LW ANAST W/CLST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY ABDL W/PROCTECTOMY W/ILEOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/COLOPXTSTMY LW ANAST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/END CLST & CLSR DSTL SGM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/RMVL TERMINAL ILEUM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY TOT W/O PRCTECT W/ILEOST/ILEOPXTS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS MOBLJ SPLENIC FLXR PFRMD W/PRTL COLECTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS PROCTECTOMY ABDOMINOPERINEAL W/COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS PROCTECTOMY COMBINED PULL-THRU W/RESERVOIR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="SUTR LG INTESTINE 1/MULT PERFORAT W/O COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPY PX INTESTINE XCP RECTUM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLOSTOMY/SKN LVL CECOSTOMY W/MULT BXS SPX"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT CMBN ABDOMINOPRNL PULL-THRU PX"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT CMBN PULL-THRU W/RSVR W/NTRSTM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT COMPL CMBN ABDOMINOPRNL W/CLST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL RESCJ RECTUM TABDL APPR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/O ANAST PRNL APPR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/ANAST ABDL & TRANSSAC APPROACH"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/ANAST TRANSSAC APPR ONLY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/MUCOSEC ILEOANAL ANAST RSVR"] <- "CRC"



##Recoding Procedures into Gastric
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC LOCAL MALIGNANT TUMOR STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC LOCAL ULCER/BENIGN TUMOR STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRIC RSTCV W/PRTL GASTRECTOMY 50-100 CM"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRODUODENOSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROJEJUNOSTOMY W/O VAGOTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROJEJUNOSTOMY W/VAGOTOMY ANY TYPE"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRORRHAPHY SUTR PRF8 DUOL/GSTR ULCER WND/INJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROTOMY W/SUTURE REPAIR BLEEDING ULCER"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/ROUX-EN-Y RCNSTJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/ESOPHAGOENTEROSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/FRMJ INTSTINAL POUCH ANY TYPE"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/ROUX-EN-Y RCNSTJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/GASTRODUODENOSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPIC PROCEDURE STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/FRMJ INTSTINAL POUCH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/FRMJ INTSTINAL POUCH"] <- "Gastric"
### Recoding mortality


NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == -99] <- "No"

NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 0] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 1] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 2] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 3] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 4] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 5] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 6] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 7] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 8] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 9] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 10] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 11] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 12] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 13] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 14] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 15] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 16] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 17] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 18] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 19] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 20] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 21] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 22] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 23] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 24] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 25] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 26] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 27] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 28] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 29] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 30] <- "Yes"
### Remove patients who died
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == "Yes"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "Sepsis"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "Septic Shock"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "SIRS"] <- NA

NSQIPFinal$SEPSISPATOS[NSQIPFinal$SEPSISPATOS == "Yes"] <- NA


NSQIPFinal$OTHSYSEP[NSQIPFinal$OTHSYSEP == "Sepsis"] <- NA
###remove patients who are on a ventilator
NSQIPFinal$VENTILAT[NSQIPFinal$VENTILAT == "Yes"] <- NA
###remove patients who are on a Emergency
NSQIPFinal$EMERGNCY[NSQIPFinal$EMERGNCY == "Yes"] <- NA
NSQIPFinal$Age[NSQIPFinal$Age == "90+"] <- 90

NSQIPFinal$Age <- as.numeric(NSQIPFinal$Age)
NSQIPFinal <- 
  NSQIPFinal %>%
  mutate(NSQIPFinal, AgeB = ifelse(Age >= 85, "85+", 
                                               ifelse(Age >= 75, "75-84", 
                                                      ifelse(Age >= 65, "65-74", 
                                                             ifelse(Age >=0, "0-65", NA)))))
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "American Indian or Alaska Native"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Asian"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Native Hawaiian or Pacific Islander"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Black or African American"] <- "Black"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Unknown/Not Reported"] <- NA
NSQIPFinal$ASACLAS[NSQIPFinal$ASACLAS == "5-Moribund"] <- NA

NSQIPFinal$ASACLAS[NSQIPFinal$ASACLAS == "None assigned"] <- NA
NSQIPFinal$DIABETES[NSQIPFinal$DIABETES == "INSULIN"] <- "Yes"

NSQIPFinal$DIABETES[NSQIPFinal$DIABETES == "NON-INSULIN"] <- "Yes"
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
##Diabeties recoded for MFI
NSQIPFinal1 <-
  NSQIPFinal %>%
  mutate(NSQIPFinal, DiabetesMFI = ifelse(DIABETES == "INSULIN", "1",
                                          ifelse(DIABETES == "NON-INSULIN", "1",
                                                 ifelse(DIABETES == "NO", "0", "NA"))))
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2 
###CHF recoded for MFI

NSQIPFinal2 <-
  NSQIPFinal1 %>%
  mutate(NSQIPFinal1, CHFMFI = ifelse(HXCHF == "Yes", "1",
                                          ifelse(HXCHF == "No", "0", "NA")))

table(NSQIPFinal2$CHFMFI)
## 
##      0      1 
## 537763   3075
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### COPD recoded for MFI

NSQIPFinal3 <-
  NSQIPFinal2 %>%
  mutate(NSQIPFinal2, COPDMFI = ifelse(HXCOPD == "Yes", "1",
                                          ifelse(HXCOPD == "No", "0", "NA")))

table(NSQIPFinal3$ASA)
## 
##     1-No Disturb   2-Mild Disturb 3-Severe Disturb    4-Life Threat 
##            14545           211757           292752            20752
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### Hypertension with medications recoded for MFI
NSQIPFinal4 <-
  NSQIPFinal3 %>%
  mutate(NSQIPFinal3, HYPERMEDMFI = ifelse(HYPERMED == "Yes", "1",
                                          ifelse(HYPERMED == "No", "0", "NA")))
##making the columns numeric to add them properly
NSQIPFinal4$HYPERMEDMFI <- as.numeric(NSQIPFinal4$HYPERMEDMFI)
NSQIPFinal4$COPDMFI <- as.numeric(NSQIPFinal4$COPDMFI)
NSQIPFinal4$CHFMFI <- as.numeric(NSQIPFinal4$CHFMFI) 
NSQIPFinal4$DiabetesMFI <- as.numeric(NSQIPFinal4$DiabetesMFI)
## Warning: NAs introduced by coercion
###Creating MFI column

NSQIPFinal4$MFI5 <- (NSQIPFinal4$HYPERMEDMFI + NSQIPFinal4$COPDMFI + NSQIPFinal4$CHFMFI + NSQIPFinal4$DiabetesMFI)
NSQIPFinal4$WEIGHT[NSQIPFinal4$WEIGHT ==-99] <- NA
NSQIPFinal4$HEIGHT[NSQIPFinal4$HEIGHT ==-99] <- NA
NSQIPFinal4$BMI <- (NSQIPFinal4$WEIGHT / NSQIPFinal4$HEIGHT / NSQIPFinal4$HEIGHT) *703
NSQIPFinalBMI <- 
  NSQIPFinal4 %>%
  mutate(NSQIPFinal4, BMILabled = ifelse(BMI >= 40, "Morbidly Obese", 
                                               ifelse(BMI >= 30, "Obese", 
                                                      ifelse(BMI >= 25, "Overweight", 
                                                             ifelse(BMI >=18.5, "Normal Weight", 
                                                                    ifelse(BMI <= 18.49, "Underweight", NA))))))
NSQIPFinal5 <- 
  NSQIPFinalBMI %>%
  mutate(NSQIPFinalBMI, LossofIndependence = ifelse(DISCHDEST == "Skilled Care, Not Home", "Yes",
                                           ifelse(DISCHDEST == "Rehab", "Yes", 
                                                  ifelse(DISCHDEST == "Unskilled Facility Not Home", "Yes",
                                                         ifelse(DISCHDEST == "Separate Acute Care", "Yes", 
                                                                ifelse(DISCHDEST == "Expired", "NA",
                                                                       ifelse(DISCHDEST == "Unknown", "NA", "No")))))))
NSQIPFinal5$LossofIndependence[NSQIPFinal5$LossofIndependence == "NA"] <- NA
NSQIPFinal5$DISCHDEST[NSQIPFinal5$DISCHDEST == "NA"] <- NA
NSQIPFinal6 <- 
  NSQIPFinal5 %>%
  mutate(NSQIPFinal5, ProcedureGroup = ifelse(PRNCPTX == "Hep", "Liver",
                                           ifelse(PRNCPTX == "Pan", "Pancreas", 
                                                  ifelse(PRNCPTX == "CRC", "Colorectal",
                                                         ifelse(PRNCPTX == "Gastric", "Gastric", "NA")))))
NSQIPFinal6$ProcedureGroup[NSQIPFinal6$ProcedureGroup =="NA"] <- NA
LossofIndependenceDF <- subset(NSQIPFinal6 , ProcedureGroup == "Liver" | ProcedureGroup == "Pancreas" | ProcedureGroup == "Colorectal" | ProcedureGroup == "Gastric")
LossofIndependenceDT <- 
  LossofIndependenceDF %>%
  mutate(LossofIndependenceDF, ModifiedFrailtyIndex5 = ifelse(MFI5 == 0, "0", 
                                               ifelse(MFI5 == 1, "1", 
                                                      ifelse(MFI5 > 2, ">2", NA))))
LossofIndependenceDT1 <- 
  LossofIndependenceDT %>%
  select(LossofIndependence, AgeB, SEX, BMILabled, RACE_NEW, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, DISCANCR, ModifiedFrailtyIndex5, ProcedureGroup)
LossofIndependenceDT1 %>%
  tbl_summary(
    by = LossofIndependence,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Loss of Independence*") %>%
  bold_labels() 
## 1481 observations missing `LossofIndependence` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `LossofIndependence` column before passing to `tbl_summary()`.
Variable Overall, N = 229,5731 *Loss of Independence p-value2
No, N = 217,3281 Yes, N = 12,2451
AgeB <0.001
0-65 130,729 (57%) 128,325 (59%) 2,404 (20%)
65-74 61,028 (27%) 57,303 (26%) 3,725 (30%)
75-84 31,227 (14%) 26,859 (12%) 4,368 (36%)
85+ 6,589 (2.9%) 4,841 (2.2%) 1,748 (14%)
SEX <0.001
female 117,287 (51%) 110,407 (51%) 6,880 (56%)
male 112,286 (49%) 106,921 (49%) 5,365 (44%)
BMILabled <0.001
Morbidly Obese 13,842 (6.1%) 12,954 (6.0%) 888 (7.3%)
Normal Weight 65,380 (29%) 61,555 (28%) 3,825 (31%)
Obese 67,695 (30%) 64,316 (30%) 3,379 (28%)
Overweight 76,690 (34%) 73,066 (34%) 3,624 (30%)
Underweight 5,039 (2.2%) 4,572 (2.1%) 467 (3.8%)
Unknown 927 865 62
RACE_NEW <0.001
Black 19,608 (9.9%) 18,385 (9.9%) 1,223 (11%)
Other 9,724 (4.9%) 9,355 (5.0%) 369 (3.3%)
White 168,369 (85%) 158,784 (85%) 9,585 (86%)
Unknown 31,872 30,804 1,068
STEROID 15,044 (6.6%) 14,296 (6.6%) 748 (6.1%) 0.043
DIABETES <0.001
NO 190,478 (83%) 181,601 (84%) 8,877 (72%)
Yes 39,095 (17%) 35,727 (16%) 3,368 (28%)
HYPERMED 107,624 (47%) 99,295 (46%) 8,329 (68%) <0.001
ASACLAS <0.001
1-No Disturb 4,098 (1.8%) 4,078 (1.9%) 20 (0.2%)
2-Mild Disturb 93,130 (41%) 91,301 (42%) 1,829 (15%)
3-Severe Disturb 123,023 (54%) 113,962 (52%) 9,061 (74%)
4-Life Threat 9,057 (3.9%) 7,735 (3.6%) 1,322 (11%)
Unknown 265 252 13
ASCITES 490 (0.2%) 424 (0.2%) 66 (0.5%) <0.001
HXCHF 1,105 (0.5%) 891 (0.4%) 214 (1.7%) <0.001
DYSPNEA <0.001
AT REST 578 (0.3%) 472 (0.2%) 106 (0.9%)
MODERATE EXERTION 12,678 (5.5%) 11,209 (5.2%) 1,469 (12%)
No 216,317 (94%) 205,647 (95%) 10,670 (87%)
SMOKE 37,727 (16%) 35,990 (17%) 1,737 (14%) <0.001
HXCOPD 9,395 (4.1%) 8,109 (3.7%) 1,286 (11%) <0.001
DIALYSIS 851 (0.4%) 721 (0.3%) 130 (1.1%) <0.001
OPRENAFL <0.001
Acute Renal Failure 636 (0.3%) 421 (0.2%) 215 (1.8%)
No Complication 228,937 (100%) 216,907 (100%) 12,030 (98%)
DISCANCR 20,548 (9.0%) 19,397 (8.9%) 1,151 (9.4%) 0.076
ModifiedFrailtyIndex5 <0.001
>2 125 (<0.1%) 97 (<0.1%) 28 (0.3%)
0 110,583 (60%) 107,504 (61%) 3,079 (38%)
1 75,000 (40%) 69,923 (39%) 5,077 (62%)
Unknown 43,865 39,804 4,061
ProcedureGroup <0.001
Colorectal 169,031 (74%) 161,034 (74%) 7,997 (65%)
Gastric 7,530 (3.3%) 7,159 (3.3%) 371 (3.0%)
Liver 22,153 (9.6%) 21,148 (9.7%) 1,005 (8.2%)
Pancreas 30,859 (13%) 27,987 (13%) 2,872 (23%)

1 Statistics presented: n (%)

2 Statistical tests performed: chi-square test of independence

LOIOddsRatio <- 
  LossofIndependenceDT1 %>%
  select(LossofIndependence, AgeB, SEX, BMILabled, RACE_NEW, STEROID, ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup)
LOIOddsRatio1 <- LOIOddsRatio %>%
  mutate(LOIOddsRatio, LOIOR = ifelse(LossofIndependence =="Yes", "1",
                                                  ifelse(LossofIndependence =="No", "0", "NA")))

LOIOddsRatio1$LOIOR <- as.numeric(LOIOddsRatio1$LOIOR)
###changling the referent level

LOIOddsRatio1$SEX <- as.factor(LOIOddsRatio1$SEX)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$DYSPNEA <- as.factor(LOIOddsRatio1$DYSPNEA)
LOIOddsRatio1$OPRENAFL <- as.factor(LOIOddsRatio1$OPRENAFL)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)


LOIOddsRatio1$SEX = relevel(LOIOddsRatio1$SEX, ref="male")
LOIOddsRatio1$BMILabled = relevel(LOIOddsRatio1$BMILabled, ref="Normal Weight")
LOIOddsRatio1$RACE_NEW = relevel(LOIOddsRatio1$RACE_NEW, ref="White")
LOIOddsRatio1$DYSPNEA = relevel(LOIOddsRatio1$DYSPNEA, ref="No")
LOIOddsRatio1$OPRENAFL = relevel(LOIOddsRatio1$OPRENAFL, ref="No Complication")
LOIOddsRatio1$ModifiedFrailtyIndex5 = relevel(LOIOddsRatio1$ModifiedFrailtyIndex5, ref="0")
UV <- LOIOddsRatio1 %>%
  select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID, ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup) %>%
  tbl_uvregression(
    method = glm,
    y = LOIOR,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    pvalue_fun = ~style_pvalue(.x, digits = 2)
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
LOIOddsRatio1 %>%
  select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup) %>%
  tbl_uvregression(
    method = glm,
    y = LOIOR,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    pvalue_fun = ~style_pvalue(.x, digits = 2)
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic N OR1 95% CI1 p-value
AgeB 229,573
0-65
65-74 3.47 3.29, 3.66 <0.001
75-84 8.68 8.25, 9.14 <0.001
85+ 19.3 18.0, 20.6 <0.001
SEX 229,573
male
female 1.24 1.20, 1.29 <0.001
BMILabled 228,646
Normal Weight
Morbidly Obese 1.10 1.02, 1.19 0.011
Obese 0.85 0.81, 0.89 <0.001
Overweight 0.80 0.76, 0.84 <0.001
Underweight 1.64 1.48, 1.82 <0.001
RACE_NEW 197,701
White
Black 1.10 1.04, 1.17 0.002
Other 0.65 0.59, 0.73 <0.001
STEROID 229,573
No
Yes 0.92 0.86, 1.00 0.041
ASACLAS 229,308
1-No Disturb
2-Mild Disturb 4.08 2.70, 6.57 <0.001
3-Severe Disturb 16.2 10.8, 26.0 <0.001
4-Life Threat 34.8 23.0, 56.2 <0.001
ASCITES 229,573
No
Yes 2.77 2.12, 3.57 <0.001
DYSPNEA 229,573
No
AT REST 4.33 3.49, 5.32 <0.001
MODERATE EXERTION 2.53 2.38, 2.68 <0.001
SMOKE 229,573
No
Yes 0.83 0.79, 0.88 <0.001
DIALYSIS 229,573
No
Yes 3.22 2.66, 3.87 <0.001
OPRENAFL 229,573
No Complication
Acute Renal Failure 9.21 7.79, 10.8 <0.001
ModifiedFrailtyIndex5 185,708
0
>2 10.1 6.49, 15.1 <0.001
1 2.54 2.42, 2.65 <0.001
ProcedureGroup 229,573
Colorectal
Gastric 1.04 0.94, 1.16 0.43
Liver 0.96 0.89, 1.02 0.20
Pancreas 2.07 1.98, 2.16 <0.001

1 OR = Odds Ratio, CI = Confidence Interval

###changling the referent level

LOIOddsRatio1$SEX <- as.factor(LOIOddsRatio1$SEX)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$DYSPNEA <- as.factor(LOIOddsRatio1$DYSPNEA)
LOIOddsRatio1$OPRENAFL <- as.factor(LOIOddsRatio1$OPRENAFL)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)


LOIOddsRatio1$SEX = relevel(LOIOddsRatio1$SEX, ref="male")
LOIOddsRatio1$BMILabled = relevel(LOIOddsRatio1$BMILabled, ref="Normal Weight")
LOIOddsRatio1$RACE_NEW = relevel(LOIOddsRatio1$RACE_NEW, ref="White")
LOIOddsRatio1$DYSPNEA = relevel(LOIOddsRatio1$DYSPNEA, ref="No")
LOIOddsRatio1$OPRENAFL = relevel(LOIOddsRatio1$OPRENAFL, ref="No Complication")
LOIOddsRatio1$ModifiedFrailtyIndex5 = relevel(LOIOddsRatio1$ModifiedFrailtyIndex5, ref="0")
####Multivariant analysis serious complications
MVOR <- 
  glm(LOIOR ~ AgeB + SEX + BMILabled+ RACE_NEW + STEROID + ASACLAS + ASCITES + DYSPNEA + SMOKE + DIALYSIS + OPRENAFL + ModifiedFrailtyIndex5 + ProcedureGroup , 
      data = LOIOddsRatio1,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTable <-
  tbl_regression(MVOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UV, MVORTable),
  tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
AgeB 229,573
0-65
65-74 3.47 3.29, 3.66 <0.001 2.82 2.63, 3.02 <0.001
75-84 8.68 8.25, 9.14 <0.001 7.48 6.96, 8.05 <0.001
85+ 19.3 18.0, 20.6 <0.001 19.3 17.6, 21.2 <0.001
SEX 229,573
male
female 1.24 1.20, 1.29 <0.001 1.23 1.17, 1.29 <0.001
BMILabled 228,646
Normal Weight
Morbidly Obese 1.10 1.02, 1.19 0.011 1.31 1.16, 1.47 <0.001
Obese 0.85 0.81, 0.89 <0.001 0.95 0.89, 1.02 0.16
Overweight 0.80 0.76, 0.84 <0.001 0.82 0.77, 0.87 <0.001
Underweight 1.64 1.48, 1.82 <0.001 1.64 1.44, 1.86 <0.001
RACE_NEW 197,701
White
Black 1.10 1.04, 1.17 0.002 1.25 1.15, 1.36 <0.001
Other 0.65 0.59, 0.73 <0.001 0.75 0.65, 0.85 <0.001
STEROID 229,573
No
Yes 0.92 0.86, 1.00 0.041 1.12 1.01, 1.24 0.036
ASACLAS 229,308
1-No Disturb
2-Mild Disturb 4.08 2.70, 6.57 <0.001 1.95 1.24, 3.28 0.007
3-Severe Disturb 16.2 10.8, 26.0 <0.001 4.35 2.78, 7.32 <0.001
4-Life Threat 34.8 23.0, 56.2 <0.001 7.04 4.45, 11.9 <0.001
ASCITES 229,573
No
Yes 2.77 2.12, 3.57 <0.001 2.49 1.70, 3.56 <0.001
DYSPNEA 229,573
No
AT REST 4.33 3.49, 5.32 <0.001 2.22 1.51, 3.19 <0.001
MODERATE EXERTION 2.53 2.38, 2.68 <0.001 1.31 1.20, 1.44 <0.001
SMOKE 229,573
No
Yes 0.83 0.79, 0.88 <0.001 1.26 1.17, 1.36 <0.001
DIALYSIS 229,573
No
Yes 3.22 2.66, 3.87 <0.001 2.67 2.01, 3.51 <0.001
OPRENAFL 229,573
No Complication
Acute Renal Failure 9.21 7.79, 10.8 <0.001 8.23 6.30, 10.7 <0.001
ModifiedFrailtyIndex5 185,708
0
>2 10.1 6.49, 15.1 <0.001 1.94 1.14, 3.18 0.011
1 2.54 2.42, 2.65 <0.001 1.22 1.15, 1.28 <0.001
ProcedureGroup 229,573
Colorectal
Gastric 1.04 0.94, 1.16 0.43 1.07 0.93, 1.23 0.34
Liver 0.96 0.89, 1.02 0.20 1.03 0.94, 1.13 0.57
Pancreas 2.07 1.98, 2.16 <0.001 1.86 1.74, 1.98 <0.001

1 OR = Odds Ratio, CI = Confidence Interval


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

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


library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(pROC)
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following object is masked from 'package:colorspace':
## 
##     coords
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
library(rms)
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: Formula
## 
## 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)
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
library(VIM)
library(nnet)
library(ROCR)
library(devtools)
## Loading required package: usethis
## Error in get(genname, envir = envir) : object 'testthat_print' not found
library(mice, warn.conflicts = FALSE)
###Imputing the data

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

LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$ASACLAS <- as.factor(LOIOddsRatio1$ASACLAS)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)
LOIImputed <-mice(LOIOddsRatio1)
## 
##  iter imp variable
##   1   1  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   1   2  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   1   3  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   1   4  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   1   5  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   2   1  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   2   2  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   2   3  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   2   4  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   2   5  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   3   1  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   3   2  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   3   3  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   3   4  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   3   5  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   4   1  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   4   2  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   4   3  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   4   4  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   4   5  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   5   1  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   5   2  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   5   3  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   5   4  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
##   5   5  LOIOR  BMILabled  RACE_NEW  ASACLAS  ModifiedFrailtyIndex5
## Warning: Number of logged events: 5
LOI1 = complete(LOIImputed,1)
NSQIPRiskCalculatorDF <- 
  LOI1 %>%
  select(LOIOR, AgeB, SEX, BMILabled, 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+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.9462377
auc=performance(NSQIPPredictModel1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.7947278
ci.auc(NSQIPRiskCalculatorDF$LOIOR, NSQIPPredict)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.7908-0.7986 (DeLong)
PortlandModel <- 
  glm(LOIOR~AgeB+SEX+RACE_NEW+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.9462247
auc=performance(PortlandPredictModel1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.7660787
ci.auc(PortlandDF$LOIOR, PortlandPredict)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.7618-0.7704 (DeLong)