Gostaria de descobrir os valores (x, y)
usados na plotagem plot(b, seWithMean=TRUE)
no pacote mgcv . Alguém sabe como posso extrair ou calcular esses valores?
Aqui está um exemplo:
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
- Reinstate Monica
fonte
fonte
gam
modelos, mas você examinou os diferentes atributos desse objeto? Você pode ver os nomes dos objetos comnames(b)
. Suponho que os detalhes que você procura serão retidos nesse objeto em algum lugar.Respostas:
Começando com
mgcv
1.8-6,plot.gam
retorna invisivelmente os dados que usa para gerar os gráficos, ou seja,pd <- plot(<some gam() model>)
fornece uma lista com os dados da plotagem
pd
.RESPOSTA ABAIXO PARA
mgcv
<= 1.8-5:Eu amaldiçoei repetidamente o fato de que as funções de plotagem para
mgcv
não retornam as coisas que estão plotando - o que se segue é feio, mas funciona:fonte
plotData <<- c(plotData, pd[[i]])}))
, ocorre a seguinte mensagemError in fBody[[i]] : no such index at level 3
. Alguma idéia de por que não funciona?O pacote
visreg
pode fazer plotagens de efeito semelhantes ao GAM (mas talvez não sejam idênticas?) E fornece os componentes da plotagem como saída também, formatados como uma lista. Usando o plyr, é possível criar um quadro de dados da saída. Exemplo:fonte
Esta não será uma resposta completa. Toda a plotagem de
gam
objetos está sendo feita com funçãoplot.gam
. Você pode ver seu código simplesmente digitandono console R. Como você verá, o código é enorme. O que eu deduzi é que toda a plotagem é feita reunindo informações relevantes no
pd
objeto que é uma lista. Portanto, uma das soluções possíveis seria editarplot.gam
, usando,edit
por exemplo, para que ele retorne esse objeto. Adicionarpd
antes do último}
será suficiente. Eu recomendaria adicionarinvisible(pd)
, para que este objeto seja retornado apenas se você solicitar:Em seguida, inspecione esse objeto e pesquise no código
plot.gam
as linhas complot
elines
. Então você verá quais dos valoresx
e relevantesy
aparecem no gráfico.fonte
fonte