In gewohnter Weise:
p <- predict(mod, newdata, type = "link", se.fit = TRUE)
Beachten Sie dann, dass p
eine Komponente $se.fit
mit Standardfehlern der Vorhersagen für Beobachtungen in enthält newdata
. Sie können dann CI bilden, indem Sie die SE mit einem Wert multiplizieren, der Ihrem gewünschten Level entspricht. Beispielsweise wird ein ungefähres 95% -Konfidenzintervall wie folgt gebildet:
upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)
Sie ersetzen das benötigte Intervall durch einen geeigneten Wert aus einer oder Gaußschen Verteilung.t
Beachten Sie, dass ich benutze, type = "link"
wie Sie nicht sagen, wenn Sie ein GAM oder nur eine AM haben. Im GAM müssen Sie das Konfidenzintervall auf der Skala des linearen Prädiktors bilden und dieses dann in die Skala der Antwort umwandeln, indem Sie die Inverse der Verbindungsfunktion anwenden:
upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)
Beachten Sie nun, dass dies sehr ungefähre Intervalle sind. Außerdem beziehen sich diese Intervalle auf die vorhergesagten Werte und berücksichtigen nicht die Tatsache, dass die Glättungsauswahl durchgeführt wurde.
Aus der posterioren Verteilung der Parameter kann durch Simulation ein simultanes Konfidenzintervall berechnet werden. Ich habe ein Beispiel dafür auf meinem Blog .
Wenn Sie ein Konfidenzintervall wünschen, das nicht von den Glättungsparametern abhängig ist (dh eines, das die Werte der Glättungsparameter berücksichtigt, die wir nicht kennen, sondern stattdessen schätzen), fügen Sie unconditional = TRUE
dem predict()
Aufruf hinzu.
Wenn Sie dies nicht selbst tun möchten, beachten Sie, dass neuere Versionen von mgcv eine plot.gam()
Funktion haben, die ein Objekt mit allen Daten zurückgibt, die zum Erstellen der Plots der Glättungen und ihrer Konfidenzintervalle verwendet werden. Sie können die Ausgabe einfach plot.gam()
in einem Objekt speichern
obj <- plot(model, ....)
und dann inspizieren obj
, was eine Liste mit einer Komponente pro Glättung ist. In seWithMean = TRUE
auf den plot()
Anruf Konfidenzintervall zu erhalten , die auf Glätte Parameter nicht an Bedingungen geknüpft ist.
Wenn Sie sie nur zeichnen möchten,
plot.gam
verfügt die Funktion über eine Schattierung, die standardmäßig Konfidenzintervalle mit dem Argument shade verwendet. Siehe auchgam.vcomp
für die Intervalle zu bekommen.quelle
Das Paket
mgcv
(neuer als gam) zeichnet leicht glaubwürdige Intervalle auf. Dieser Bayes'sche Ansatz unterscheidet sich von den Konfidenzintervallen, aber die Ergebnisse sind fast gleich, wie numerische Simulationen gezeigt haben (siehe den Artikel von Marra und Wood in mgcv).quelle