Вопрос

I built a linear regression model as below:

 ApacheData$daily <- cut(ApacheData$daily, breaks=c(-1, 0, 1, 2, 3, 9,3000))
 ApacheData$age <- cut(ApacheData$age, breaks=c(0,44,65,150))

 fit <-lm(tomorrow_apache~ as.factor(state_today)
         +as.numeric(daily_creat) 
         + as.factor(daily)
         + as.factor(age)
         +as.numeric(apache3) 
         + as.factor(mv)  
         + as.numeric(min_GCS), ApacheData)

and I want to use this model to predict a new input value, so I built a data frame:

new <- data.frame(state_today=1, daily_creat=2.3, daily=2 , age=25, apache3=12, mv=1,     min_GCS=20)'

Then I call predict:

 predict(fit, new , se.fit=TRUE)

And I get the error: Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) : factor as.factor(daily) has new level 2

I also tried daily=as.factor(2) in data.frame() and I got the same error. Can anyone help me about this?

Thank you so much for your time!

Это было полезно?

Решение

Your original data does not have any cases where ApacheData$daily == 2. The lm object has no coefficient associated with it, so it throws an error.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top