我正在尝试对“gam”包中的gam函数使用predict命令。我发现当我有两个或更多样条线时,我无法预测新样本,即使新样本是原始数据或原始数据的子集。下面代码中的最后两行给出了错误。
编辑:gam.data是gam包附带的数据集,在gam和predict.gam的示例中使用。它是一个带有列的data.frame:x,y,z,f,probf,ybin和ybin 2 - 全数字。 -
require(gam)
data(gam.data)
Gam.object <- gam(y ~ s(x,z,df=6)+s(f,probf,df=6),data=gam.data)
summary(Gam.object)
predict(Gam.object)
predict(Gam.object,newdata=gam.data)
predict(Gam.object,newdata=gam.data[1:20,])
预测(Gam.object,newdata = gam.data)
gam.s中的错误(数据[[“s(f,probf,df = 6)”]],z,w,spar = probf,df = 6,: 对象'probf'未找到
预测(Gam.object,newdata = gam.data [1:20,])
gam.s中的错误(数据[[“s(f,probf,df = 6)”]],z,w,spar = probf,df = 6,: 对象'probf'未找到
答案 0 :(得分:0)
答案似乎是缺少对条款的调用=&#34;响应&#34; (或其他一些术语调用)在预测命令中。
以下运行:
data(gam.data)
Gam.object <- gam(y ~ s(x,z,df=6)+s(f,probf,df=6),data=gam.data)
summary(Gam.object)
predict(Gam.object)
predict(Gam.object,newdata=gam.data,terms="response")
predict(Gam.object,newdata=gam.data[1:20,],terms="response")