À partir de mgcv1.8-6, plot.gamretourne de manière invisible les données qu'il utilise pour générer les tracés, c'est-à-dire faire
pd <- plot(<some gam() model>)
vous donne une liste avec les données de traçage dans pd.
RÉPONSE CI-DESSOUS POUR mgcv<= 1,8-5:
J'ai maudit à plusieurs reprises le fait que les fonctions de tracé mgcvne renvoient pas les éléments qu'ils tracent - ce qui suit est laid mais cela fonctionne:
library(mgcv)
set.seed(0)
dat <- gamSim(1, n = 400, dist = "normal", scale = 2)
b <- gam(y ~ s(x0) + s(x1) + s(x2) + s(x3), data = dat)
plotData <- list()
trace(mgcv:::plot.gam, at = list(c(27, 1)),
## tested for mgcv_1.8-4. other versions may need different at-argument.
quote({
message("ooh, so dirty -- assigning into globalenv()'s plotData...")
plotData <<- pd
}))
mgcv::plot.gam(b, seWithMean = TRUE, pages = 1)
par(mfrow = c(2, 2))
for (i in 1:4) {
plot(plotData[[i]]$x, plotData[[i]]$fit, type = "l", xlim = plotData[[i]]$xlim,
ylim = range(plotData[[i]]$fit + plotData[[i]]$se, plotData[[i]]$fit -
plotData[[i]]$se))
matlines(plotData[[i]]$x, cbind(plotData[[i]]$fit + plotData[[i]]$se,
plotData[[i]]$fit - plotData[[i]]$se), lty = 2, col = 1)
rug(plotData[[i]]$raw)
}
gammodèles, mais avez-vous examiné les différents attributs de cet objet? Vous pouvez regarder les noms des objets avecnames(b). Je suppose que tous les détails que vous recherchez seront conservés quelque part dans cet objet.