predict.glm () com três novas categorias nos dados de teste (r) (erro)

Eu tenho um conjunto de dados chamadodata que tem 481 092 linhas.

Eu dividodata em duas metades iguais:

A primeira metade (linha 1: 240 546) é chamadatrain e foi usado para oglm();a segunda metade (linha 240 547: 481 092) é chamadatest e deve ser usado para validar o modelo;

Então eu comecei a regressão:

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)

Agora a previsão:

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

me dá um erro:

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

Agora eu sei que esses níveis foram omitidos na regressão porque não mostra nenhum coeficiente para esses níveis.

Eu tentei isso:predict.lm () com um nível de fator desconhecido nos dados de teste . Mas de alguma forma isso não funciona para mim ou talvez eu simplesmente não entenda como implementá-lo. Eu quero prever a variável binária dependente, mas é claro, apenas com os coeficientes existentes. O link acima sugere informar ao R que as linhas com novos níveis devem ser apenas chamadas / ou tratadas como NA.

Como posso proceder?

Abordagem sugerida por edição por Z. Li

Eu tenho problema no primeiro passo:

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

masmID125 éNULL! O que eu fiz errado?

questionAnswers(2)

yourAnswerToTheQuestion