Je voudrais connaître les valeurs (x, y)
utilisées dans le traçage plot(b, seWithMean=TRUE)
dans le package mgcv . Est-ce que quelqu'un sait comment extraire ou calculer ces valeurs?
Voici un exemple:
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 - Réintégrer Monica
la source
la source
gam
modè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.Réponses:
À partir de
mgcv
1.8-6,plot.gam
retourne de manière invisible les données qu'il utilise pour générer les tracés, c'est-à-dire fairepd <- 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é
mgcv
ne renvoient pas les éléments qu'ils tracent - ce qui suit est laid mais cela fonctionne:la source
plotData <<- c(plotData, pd[[i]])}))
, le message suivant se produitError in fBody[[i]] : no such index at level 3
. Des idées pourquoi cela ne fonctionne pas?Le package
visreg
peut créer des tracés d'effets similaires à GAM (mais peut-être pas identiques?) Et donne également les composants de tracé en sortie, formatés sous forme de liste. En utilisant plyr on peut créer une trame de données de la sortie. Exemple:la source
Ce ne sera pas une réponse complète. Tout le traçage des
gam
objets se fait avec la fonctionplot.gam
. Vous pouvez consulter son code en tapant simplementdans la console R. Comme vous le verrez, le code est énorme. Ce que j'en ai glané, c'est que tout le traçage se fait en rassemblant des informations pertinentes dans l'
pd
objet qui est une liste. Ainsi, l'une des solutions possibles serait de modifierplot.gam
, en utilisantedit
par exemple, pour qu'il renvoie cet objet. Ajouterpd
avant-dernier}
sera suffisant. Je conseillerais d'ajouterinvisible(pd)
, pour que cet objet ne soit retourné que si vous le demandez:Inspectez ensuite cet objet et recherchez dans le code de
plot.gam
les lignes avecplot
etlines
. Ensuite , vous verrez que des pertinentesx
et desy
valeurs apparaissent dans l'intrigue.la source
la source