我想评估GAM在使用五重交叉验证预测新数据时的表现。模型训练基于80%数据的随机子集,测试设置剩余的20%。我可以计算训练和测试数据之间的均方预测误差,但不确定如何跨k-fold实现这个。 我有以下用于训练和测试数据集的代码以及计算MSPE。我没有包含样本数据,但可以这样做。
indexes<-sample(1:nrow(data),size=0.2*nrow(data))
testP<-data[indexes,] #20%
trainP<-data[-indexes,]#80%
gam0<-gam(x~ NULL,family=quasibinomial(link='logit'),data=data,gamma=1.4)
pv<-predict(gam0,newdata=testP,type="response")
diff<-pv-testP$x #(predicted - observed)
diff2<-diff^2 #(predicted - observed)^2
mspegam0<-mean(diff2)