#r #plot #gam #mgcv
Вопрос:
Я выполнил GAM, который включает в себя как непрерывные гладкие термины, так и категориальную переменную. Я построил модель ( mod
), используя plot(mod,residuals=T,all.terms=T,pages=1)
. Это создает графики двух плавных параметров, а также параметрического параметра. Я хочу извлечь значения, используемые для создания этих графиков, чтобы я мог их переделать и сделать их более привлекательными. Если я сохраню график в объекте, это даст мне все необходимое для плавных условий, но не содержит никакой информации о параметрическом компоненте: plot.mod=plot(mod,residuals=T,all.terms=T,select=0)
. Но я не вижу, откуда берутся цифры для построения параметрического компонента по умолчанию. Есть ли способ извлечь их также?
Вот воспроизводимый пример того, что я сделал до сих пор
library(mgcv)
# create some data
data=data.frame(response=c(10,12,8,9,3,4,5,5,4,5,4,5,4,1),pred1=c(9,8,8,9,6,7,6,4,3,4,2,3,3,1),pred2=as.factor(c("A","C","B","B","A","A","C","B","C","A","C","B","A","B")),pred3=c(1,6,3,4,8,6,4,5,7,10,11,3,12,1))
# run the GAM
mod <- gam(response ~ s(pred1,k=8) pred2 s(pred3,k=5), data=data, family=gaussian(), method="REML")
# the default plot
plot(mod,residuals=T,all.terms=T,pages=1)
# save values in an object. But this only saves the smooth terms.
plot.mod=plot(mod,residuals=T,all.terms=T,select=0)
# How can I extract the values used to plot the parametric term?
Ответ №1:
Из plot.gam
документации, termplot
используется для параметрических терминов, поэтому
plot.para <- termplot(mod, se = TRUE, plot = FALSE)
сохраняет этот сюжет в списке.
Формат отличается от других, но данные есть.
Комментарии:
1. Отлично, это именно то, что я искал. Спасибо!