Я заметил, что у вас есть все ваши переменные в среде, например, вот так, и ниже я ввожу 3NA для секса и 2 NA для ИМТ,
CD3LR = as.numeric(runif(100)>0.5)
alb = rnorm(100)
surg = sample(1:3,100,replace=TRUE)
ASA_opt = rpois(100,50)
BMI = c(NA,NA,rpois(98,100))
bil = rnorm(100)
Hb_cat = sample(1:3,100,replace=TRUE)
MDRD = runif(100)
sex = c(sample(c("M","F"),98,replace=TRUE),NA,NA)
DM = rnorm(100)
age = sample(20:60,100,replace=TRUE)
Path = rnorm(100)
Smoking = sample(c("Yes","NI"),100,replace=TRUE)
Так что лучше всего поместить их все в data.frame, подгонка, а затем кривая ro c:
DataFrame = data.frame(
CD3LR,alb,surg,ASA_opt,BMI,bil,Hb_cat,
MDRD,sex,DM,age,Path,Smoking)
step_1<-glm(CD3LR~alb+surg+ASA_opt+BMI+bil+Hb_cat+MDRD+sex+DM+age+Path+Smoking,
data=DataFrame,na.action=na.exclude,family=binomial)
Благодаря @Calimo за указание, вы также можете добавить:
step_1<-glm(CD3LR~.,
data=DataFrame,na.action=na.exclude,family=binomial)
Это дает вам ошибку:
roc(DataFrame$CD3LR,step_1$fitted.values,plot=FALSE)
Мы можем сделать:
roc(step_1$y,step_1$fitted.values,plot=FALSE)
Или:
roc(DataFrame[complete.cases(DataFrame),"CD3LR"],step_1$fitted.values,plot=FALSE)
Причиной наличия фрейма данных является то, что вы можете немедленно увидеть полный набор данных, который не является NA для всех. Если в предикторе или ответе есть какие-либо NA, они не будут использоваться в регрессии.