Comenzando con mgcv1.8-6, plot.gaminvisiblemente devuelve los datos que usa para generar los gráficos, es decir
pd <- plot(<some gam() model>)
le da una lista con los datos de trazado en pd.
RESPUESTA A CONTINUACIÓN PARA mgcv<= 1.8-5:
Repetidamente he maldecido el hecho de que las funciones de trazado mgcvno devuelven lo que están tramando; lo que sigue es feo pero funciona:
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)
}
gammodelos, pero ¿ha examinado los diferentes atributos de ese objeto? Puedes mirar los nombres de los objetos connames(b). Supongo que los detalles que buscas se conservarán dentro de ese objeto en alguna parte.