Me gustaría conocer los valores (x, y)
utilizados en el trazado plot(b, seWithMean=TRUE)
en el paquete mgcv . ¿Alguien sabe cómo puedo extraer o calcular estos valores?
Aquí hay un ejemplo:
library(mgcv)
set.seed(0)
dat <- gamSim(1, n=400, dist="normal", scale=2)
b <- gam(y~s(x0), data=dat)
plot(b, seWithMean=TRUE)
r
time-series
smoothing
mgcv
gung - Restablece a Monica
fuente
fuente
gam
modelos, 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.Respuestas:
Comenzando con
mgcv
1.8-6,plot.gam
invisiblemente devuelve los datos que usa para generar los gráficos, es decirpd <- 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
mgcv
no devuelven lo que están tramando; lo que sigue es feo pero funciona:fuente
plotData <<- c(plotData, pd[[i]])}))
, aparece el siguiente mensajeError in fBody[[i]] : no such index at level 3
. ¿Alguna idea de por qué no funciona?El paquete
visreg
puede hacer gráficos de efectos similares a GAM (¿pero quizás no idénticos?) Y también proporciona los componentes de gráficos como salida, formateados como una lista. El uso de plyr one puede hacer un marco de datos de la salida. Ejemplo:fuente
Esta no será una respuesta completa. Todo el trazado de los
gam
objetos se realiza con funciónplot.gam
. Puede ver su código simplemente escribiendoen la consola R. Como verás, el código es enorme. Lo que deduje de esto es que todo el trazado se realiza mediante la recopilación de información relevante en el
pd
objeto, que es una lista. Entonces, una de las posibles soluciones sería editarplot.gam
, usando,edit
por ejemplo, para que devuelva ese objeto. Agregarpd
antes del último}
será suficiente. Aconsejaría agregarinvisible(pd)
, para que este objeto se devuelva solo si lo solicita:Luego inspeccione este objeto y busque en el código de
plot.gam
las líneas conplot
ylines
. Luego verá cuáles de los valores relevantesx
yy
aparecen en la gráfica.fuente
fuente