我知道可以使用sp参数在mgcv :: gam()中指定平滑参数。是否可以在同一模型中指定参数系数?
例如,如果我有
model1 <-gam(y~s(x1) + s(x2) + x3 + x4)
我想删除参数项,但保留model1的平滑参数,我会:
model2<-gam(y~s(x1) + s(x2), sp = model1$sp)
如何设置model3,以便在model3中使用来自model1的参数系数?
model3<-gam(y~s(x1) + s(x2) + x3, sp = model1$sp, ......)
的最终目标是能够确定每个变量所解释的偏差百分比。因此,要找到x1解释的偏差,计划是这样做的:
model_minusx1<-gam(y~s(x2) + x3 + x4, sp=model1$sp[2])
因此,由x1解释的百分比差异为
(summary(model1)$dev.expl - summary(model_minusx1)$dev.expl)/summary(model1)$dev.expl
但是,删除x1可能会导致参数项的系数发生变化,尤其是如果x1和参数项之间存在任何相关性/一致性。因此,理想情况下,我也希望保持参数系数不变。