# 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)