我想用gam函数拟合光滑样条。试图绘制拟合值会导致错误-object$nsdf?我想知道这是否是必需的输入,如果是的话,df指的是什么?如何修复这段代码。
gam.fit=gam(y~s(disp,6)+s(hp,5)+s(wt,5), data=train.dat)
mean((test.dat$y - gam.pred)^2) # 0.0002282536
plot(gam.fit, se=TRUE, col="blue",main="10.3f.gam")
# Error in 1:object$nsdf : argument of length 0谢谢。真诚的玛丽·A·马里恩
发布于 2016-07-19 07:30:38
您的gam()调用语法:
gam.fit=gam(y~s(disp,6)+s(hp,5)+s(wt,5), data=train.dat)建议您使用的是包gam而不是mgcv。但是,您所得到的错误(抱怨object$nsdf )是从mgcv包中产生的。不会同时将两个包加载到R会话中!!。
library(gam)
set.seed(0)
dat <- data.frame(x1 = rnorm(100), x2 = rnorm(100), x3 = rnorm(100),
y = rnorm(100))
fit <- gam(y ~ s(x1,6) + s(x2,5) + s(x3,5), data = dat)
par(mfrow = c(1,3)); plot.gam(fit)

https://stackoverflow.com/questions/38450396
复制相似问题