predict.glm () mit drei neuen Kategorien in den Testdaten (r) (Fehler)

Ich habe einen Datensatz mit dem Namendata mit 481 092 Zeilen.

Ich teiledata in zwei gleiche Hälften:

Die erste Hälfte (Reihe 1: 240 546) heißttrain und wurde für das @ verwendglm();die zweite Hälfte (Zeile 240 547: 481 092) heißttest und sollten verwendet werden, um das Modell zu validieren;

Dann habe ich die Regression gestartet:

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)

Jetzt die Vorhersage:

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

gibt mir einen Fehler:

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

etzt weiß ich, dass diese Ebenen in der Regression weggelassen wurden, da für diese Ebenen keine Koeffizienten angezeigt werde

Ich habe es versucht: predict.lm () mit unbekannter Faktorstufe in Testdaten. Aber irgendwie funktioniert es bei mir nicht oder ich verstehe einfach nicht, wie ich es implementieren soll. Ich möchte die abhängige binäre Variable vorhersagen, aber natürlich nur mit den vorhandenen Koeffizienten. Der obige Link schlägt vor, R mitzuteilen, dass Zeilen mit neuen Ebenen nur als NA bezeichnet / oder behandelt werden sollen.

Wie kann ich fortfahren?

Edit-Suggested Ansatz von Z. Li

Ich habe ein Problem im ersten Schritt:

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

abermID125 istNULL! Was habe ich falsch gemacht

Antworten auf die Frage(4)

Ihre Antwort auf die Frage