De la manière habituelle:
p <- predict(mod, newdata, type = "link", se.fit = TRUE)
Notez ensuite que p
contient un composant $se.fit
avec des erreurs standard des prédictions pour les observations dansnewdata
. Vous pouvez ensuite former CI en multipliant le SE par une valeur appropriée au niveau souhaité. Par exemple, un intervalle de confiance d'environ 95% est formé comme suit:
upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)
Vous remplacez par une valeur appropriée à partir d'un t distribution ou gaussienne l'intervalle dont vous avez besoin.
Notez que j'utilise type = "link"
comme vous ne dites pas si vous avez un GAM ou juste un AM. Dans le GAM, vous devez former l'intervalle de confiance à l'échelle du prédicteur linéaire, puis le transformer à l'échelle de la réponse en appliquant l'inverse de la fonction de liaison:
upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)
Notez maintenant que ce sont des intervalles très approximatifs. De plus, ces intervalles sont ponctuels sur les valeurs prédites et ils ne prennent pas en compte le fait que la sélection de lissage a été effectuée.
Un intervalle de confiance simultané peut être calculé par simulation à partir de la distribution postérieure des paramètres. J'en ai un exemple sur ma blog .
Si vous voulez un intervalle de confiance qui ne soit pas subordonné aux paramètres de lissage (c'est-à-dire qui prend en compte que nous ne connaissons pas, mais estimez plutôt les valeurs des paramètres de lissage), alors ajoutez unconditional = TRUE
à l' predict()
appel.
De plus, si vous ne voulez pas le faire vous-même, notez que les nouvelles versions de mgcv ont une plot.gam()
fonction qui renvoie un objet avec toutes les données utilisées pour créer les tracés des lissages et leurs intervalles de confiance. Vous pouvez simplement enregistrer la sortie plot.gam()
dans un obj
obj <- plot(model, ....)
puis inspecter obj
, qui est une liste avec un composant par lisse. Ajoutez seWithMean = TRUE
à l' plot()
appel pour obtenir des intervalles de confiance qui ne sont pas conditionnels au paramètre de lissage.
Si vous voulez simplement les tracer, la
plot.gam
fonction a un ombrage qui par défaut est des intervalles de confiance en utilisant l'argument de l'ombre. Voir aussigam.vcomp
pour obtenir les intervalles.la source
Le package
mgcv
(plus récent que gam) trace facilement des intervalles crédibles. Cette approche bayésienne est différente des intervalles de confiance, mais les résultats sont presque les mêmes, comme l'ont montré les simulations numériques (voir l' article de Marra et Wood lié en mgcv).la source