一些论点在绘制mgcv中的因子 - 平滑相互作用时没有按预期工作

时间:2014-12-01 21:08:10

标签: r plot mgcv

我制作了一个通过s(... bs = "fs")包中的mgcv构建的因子平滑交互的图。但是,似乎xlim的{​​{1}}和main参数(以及一些其他参数)不能正常工作,尽管用于绘制其他类型光滑的相同参数也起作用。 / p>

以下是一个例子。

更新:我修改了示例以更好地反映我的问题(2014年12月2日)。

plot.gam()

以下代码生成对应于上述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) 项的图,限制x轴并按标题放置标题。

s(x)

但是,以下代码生成与上述plot(model, select = 1, xlim = c(0.4, 0.6), main = "Title") 项对应的绘图,不会限制x轴或生成标题。

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(),但未能弄清楚它为何会发生以及如何修复它。我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

我承认这有点蛮力的方法,基本上没有“修复mgcv”,但我认为修复mgcv高于我的能力。

with(d, plot(X=           seq(0,1,length=100), 
             gamPred.x2 = predict(model, 
                     newdata=data.frame(x1=mean(x1),
                                        x2=seq(0,1,length=100),
                                        f="f5")
        )))