Ich bin daran interessiert, den gesamten Fischfang mit gam in mgcv zu modellieren, um einfache zufällige Effekte für einzelne Schiffe zu modellieren (die im Laufe der Zeit wiederholte Fahrten in der Fischerei unternehmen). Ich habe 98 Probanden, also dachte ich, ich würde Gam anstelle von Gamm verwenden, um die zufälligen Effekte zu modellieren. Mein Modell ist:
modelGOM <- gam(TotalFish ~ factor(SetYear) + factor(SetMonth) + factor(TimePeriod) +
s(SST) + s(VesselID, bs = "re", by = dum) + s(Distance, by = TimePeriod) +
offset(log(HooksSet)), data = GOM, family = tw(), method = "REML")
Ich habe den Zufallseffekt mit bs = "re" und by = dum codiert (ich habe gelesen, dass ich damit die Gefäßeffekte bei ihren vorhergesagten Werten oder Null vorhersagen kann). "dum" ist ein Vektor von 1.
Das Modell läuft, aber ich habe Probleme bei der Vorhersage. Ich habe eines der Schiffe für die Vorhersagen (Schiff 21) und Durchschnittswerte für alles andere außer dem für Vorhersagen interessanten Prädiktor (Entfernung) ausgewählt.
data.frame("Distance"=seq(min(GOM$Distance),max(GOM$Distance),length = 100),
"SetYear" = '2006',
"SetMonth" = '6',
"TimePeriod" = 'A',
"SST" = mean(GOM$SST),
"VesselID" = 'Vessel21',
"dum" = '0', #to predict without vessel effect
"HooksSet" = mean(GOM$HooksSet))
pred_GOM_A_Swordfish <- predict(modelGOM, grid.bin.GOM_A_Swordfish, type = "response",
se = T)
Der Fehler, den ich bekomme, ist:
Error in Predict.matrix.tprs.smooth(object, dk$data) :
NA/NaN/Inf in foreign function call (arg 1)
In addition: Warning message:
In Ops.factor(xx, object$shift[i]) : - not meaningful for factors
Ich denke, das wird aufgerufen, weil VesselID ein Faktor ist, aber ich benutze es glatt für die zufälligen Effekte.
Ich konnte die Verwendung von Gam ohne die einfachen zufälligen Effekte (bs = "re") erfolgreich vorhersagen.
Können Sie Ratschläge geben, wie Sie dieses Modell ohne den VesselID-Begriff vorhersagen können (und es dennoch in die Anpassung einbeziehen)?
Vielen Dank!