Я сделал график фактор-гладкого взаимодействия, построенный по s(... bs = "fs")
в пакете mgcv
. Однако представляется, что аргументы xlim
и main
(и несколько других аргументов) plot.gam()
работают некорректно, хотя те же аргументы для построения других видов сглаживания работают.Некоторые аргументы, не предназначенные для построения фактор-гладкого взаимодействия в mgcv
Вот пример.
Обновление: Я изменил пример, чтобы лучше отразить проблему, которая у меня есть (2 декабря 2014 г.).
library(mgcv)
# create toy data
set.seed(1)
d <- data.frame(
x = runif(10 * 100),
f = rep(paste0("f", 1:10), each = 100)
)
d$y <- 2 * d$x + 10 + rnorm(10 * 100)
# build a model
model <- gam(y ~ s(x) + s(x, f, bs = "fs"), data = d)
Следующий код, который производит участок, соответствующий s(x)
перспективе выше, ограничивает ось х и помещает название, как и предполагалось.
plot(model, select = 1, xlim = c(0.4, 0.6), main = "Title")
Однако следующий код, который генерирует участок, соответствующий s(x, f, bs = "fs")
срока выше, не ограничивает ось й или производить заголовок.
plot(model, select = 2, xlim = c(0.4, 0.6), main = "Title")
Я подозреваю, mgcv::plot.gam()
не проходит (некоторые) аргументы mgcv:::plot.fs.interaction()
или mgcv:::plot.mgcv.smooth()
в некоторых случаях, но не в состоянии понять, почему это происходит и как это исправить. Буду признателен за любую помощь.
Благодарим за отзыв. Это действительно похоже на то, что я делаю сейчас. Проблема заключается в том, что этот подход показывает предсказанные значения, но не сам по себе. Проблема (и часть, которую я должен был сделать лучше на рисунке выше), состоит в том, что x2 фактически участвует в других гладких терминах. Поэтому, если я вычисляю предсказанные значения, они отражают все термины, которые включают x2. Это также полезно делать, но я также ищу способы изолировать эффекты, которые могут быть связаны только с фактором-гладким взаимодействием. –
Примеры, представленные с недостаточной сложностью для иллюстрации реальной проблемы, заслуживают недостаточно сложных ответов. –
Справа. Извините за упрощение. Я только что обновил вопрос. –