我在 plot.gam 函数中观察到关于地毯位置的行为,这对我来说似乎很奇怪:当用变量绘制一个平滑项时,据我所知,地毯不是它们应该在的位置。我使用 R 版本 3.2.0 和 mgcv 1.8-6。那么我是不是弄错了,plot.gam 的行为方式应该如此,我只是不明白它在做什么?或者 plot.gam 中是否有错误?
感谢您花时间看一看!
这是一个示例(我期望它们出现的地毯将绘制为红色):
# produce a gam to work with
gamSim(4,n=400)->dat
gam(y~s(x0) + s(x1) + s(x2, by=fac),data=dat) -> b
x11();par(mfrow=c(2,2))
# correct work for smooth terms without by variable
plot(b,select=1,main="x0 without by-variable")
rug(dat$x0,col="red")
# plot the three smooths for x2 - here the rugs differ from what I'd expect
for(i in 1:3){
which(dat$fac == i) -> f
plot(b,select=i+2,main=sprintf("x2; by=fac(%i)",i))
rug(dat$x2[f],col="red")
}