Я хотел бы узнать значения, (x, y)
используемые при построении графиков plot(b, seWithMean=TRUE)
в пакете mgcv . Кто-нибудь знает, как я могу извлечь или вычислить эти значения?
Вот пример:
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 - Восстановить Монику
источник
источник
gam
моделями, но вы изучили различные атрибуты этого объекта? Вы можете посмотреть на названия объектов сnames(b)
. Я предполагаю, что любые детали, которые вам нужны, будут где-то сохранены в этом объекте.Ответы:
Начиная с
mgcv
1.8-6,plot.gam
невидимо возвращает данные, которые он использует для создания графиков, т.е.pd <- plot(<some gam() model>)
дает вам список с данными построения в
pd
.ОТВЕТЬ НИЖЕ ЗА
mgcv
<= 1.8-5:Я неоднократно проклинал тот факт, что функции сюжета
mgcv
не возвращают материал, который они чертят - то, что следует, ужасно, но это работает:источник
plotData <<- c(plotData, pd[[i]])}))
, появляется следующее сообщениеError in fBody[[i]] : no such index at level 3
. Есть идеи, почему это не работает?Пакет
visreg
может создавать графики эффектов, аналогичные GAM (но, возможно, не идентичны?), И предоставляет компоненты графика в виде выходных данных, отформатированных в виде списка. Используя plyr, можно создать информационный кадр для вывода. Пример:источник
Это не будет полным ответом. Все построение
gam
объектов выполняется с помощью функцииplot.gam
. Вы можете посмотреть на его код, просто набравв консоли R Как вы увидите, код огромен. Что я почерпнул из этого, так это то, что все построение графиков выполняется путем сбора соответствующей информации в
pd
объекте, который представляет собой список. Таким образом, одним из возможных решений будет редактированиеplot.gam
,edit
например, так, чтобы оно возвращало этот объект. Добавлениеpd
до последнего}
будет достаточно. Я бы посоветовал добавитьinvisible(pd)
, чтобы этот объект возвращался, только если вы попросите его:Затем осмотрите этот объект и найдите в коде
plot.gam
строки сplot
иlines
. Затем вы увидите, какие из релевантныхx
иy
значений появятся на графике.источник
источник