我想在R中的gam
包中使用mgcv
函数拟合三次样条曲线。此外,我想将训练集之外的值(超出外部结)限制为等于最接近的结值。也就是说,不应在训练数据范围之外进行模型预测。我知道我可以通过消除predict
调用中的那些点然后将它们设置为训练数据的最小值和最大值来做到这一点。但是,gam
中是否有内置方法来执行此操作(只是因为它更清洁一点?)
示例代码:
require(mgcv)
x = 10:90
y = x^2
mdl = gam(y ~ s(x, bs="cr"))
needed_x = 1:100
p = predict(mdl, newdata = list(x = needed_x)) #this returns model values form 1:9 and 91:100