predic.glm () con tres nuevas categorías en los datos de prueba (r) (error)

Tengo un conjunto de datos llamadodata que tiene 481 092 filas.

Me separédata en dos mitades iguales:

La primera mitad (fila 1: 240 546) se llamatrain y fue utilizado para elglm();la segunda mitad (fila 240 547: 481 092) se llamatest y debe usarse para validar el modelo;

Entonces comencé la regresión:

testreg <- glm(train$returnShipment ~ train$size + train$color + train$price + 
               train$manufacturerID + train$salutation + train$state +
               train$age + train$deliverytime, 
               family=binomial(link="logit"), data=train)

Ahora la predicción:

prediction <- predict.glm(testreg, newdata=test, type="response")

me da un error:

Error in model.frame.default(Terms, newdata, na.action=na.action, xlev=object$xlevels):
Factor 'train$manufacturerID' has new levels 125, 136, 137

Ahora sé que estos niveles se omitieron en la regresión porque no muestra ningún coeficiente para estos niveles.

He intentado esto:predic.lm () con un nivel de factor desconocido en los datos de prueba . Pero de alguna manera no funciona para mí o tal vez simplemente no entiendo cómo implementarlo. Quiero predecir la variable binaria dependiente pero, por supuesto, solo con los coeficientes existentes. El enlace anterior sugiere decirle a R que las filas con nuevos niveles deberían llamarse / o tratarse como NA.

¿Cómo puedo proceder?

Enfoque sugerido por Z. Li

Tengo un problema en el primer paso:

xlevels <- testreg$xlevels$manufacturerID
mID125 <- xlevels[1]

peromID125 esNULL! ¿Qué he hecho mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta