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:
train
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?