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