I running into this error while doing linear regression. I have tried to drop the new level on testing data but when I run a MAPE on testing set the value is NA.
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
factor Certification has new levels DOW
This is my original code
set.seed(123)
train_index <- sample(2, 440, prob = c(0.7,0.3), replace = T)
train <- data[train_index == 1, ]
test <- data[train_index == 2, ]
linreg_model <- lm(formula = Price ~. ,
data = train)
#MAPE of training data
linreg_trainpreds <- linreg_model$fitted.values
err <- linreg_trainpreds - train$Price
abserr<- abs(err)
percabserr <- abserr / train$Price
mape <- mean(percabserr)
mape
#MAPE on testing data
linreg_testpreds <- predict(linreg_model, test)
err <- linreg_testpreds - test$Price
abserr<- abs(err)
percabserr <- abserr / test$Price
mape <- mean(percabserr)
mape
I expected to get value on MAPE testing set