Chciałbym dowiedzieć się o wartościach (x, y)
używanych podczas kreślenia plot(b, seWithMean=TRUE)
w pakiecie mgcv . Czy ktoś wie, jak mogę wyodrębnić lub obliczyć te wartości?
Oto przykład:
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 - Przywróć Monikę
źródło
źródło
gam
modeli, ale czy badałeś różne atrybuty tego obiektu? Możesz patrzeć na nazwy obiektów za pomocąnames(b)
. Zgaduję, że wszelkie szczegóły, które szukasz, zostaną gdzieś w tym obiekcie.Odpowiedzi:
Począwszy od
mgcv
1.8-6,plot.gam
niewidocznie zwraca dane, których używa do generowania wykresów, tzn. Robipd <- plot(<some gam() model>)
daje listę z danymi kreślenia w
pd
.ODPOWIEDŹ PONIŻEJ DLA
mgcv
<= 1,8-5:Wielokrotnie przeklinałem fakt, że funkcje fabuły
mgcv
nie zwracają rzeczy, które kreślą - to, co następuje, jest brzydkie, ale działa:źródło
plotData <<- c(plotData, pd[[i]])}))
, pojawia się następujący komunikatError in fBody[[i]] : no such index at level 3
. Wszelkie pomysły, dlaczego to nie działa?Pakiet
visreg
może sprawić, że wykresy efektów będą podobne do GAM (ale być może nie identyczne?) I poda również elementy wykresu jako dane wyjściowe, sformatowane jako lista. Za pomocą plyr można utworzyć ramkę danych wyjściowych. Przykład:źródło
To nie będzie pełna odpowiedź. Całe wykreślanie
gam
obiektów odbywa się za pomocą funkcjiplot.gam
. Możesz spojrzeć na jego kod po prostu wpisującw konsoli R. Jak zobaczysz, kod jest ogromny. Z tego, co wyciągnąłem z tego, że cała fabuła odbywa się poprzez zebranie odpowiednich informacji w
pd
obiekcie, który jest listą. Tak więc jednym z możliwych rozwiązań byłoby edytowanieplot.gam
,edit
na przykład za pomocą , aby zwracał ten obiekt. Wystarczy dodaćpd
przedostatnie}
. Radzę dodaćinvisible(pd)
, aby ten obiekt był zwracany tylko wtedy, gdy o to poprosisz:Następnie sprawdź ten obiekt i wyszukaj w kodzie
plot.gam
wierszy za pomocąplot
ilines
. Następnie zobaczysz, które z istotnychx
iy
wartości pojawiają się na wykresie.źródło
źródło