3

假设我有一个带有yand x1, x2,xp变量的数据集。我想用样条曲线拟合我的所有预测变量。

例如 :

gam_object = gam(y ~ s(x1) + s(x2) + s(xp), data)

在不输入每个变量的情况下如何做到这一点?如果我想在不使用样条的情况下安装没有前两个的模块。我怎样才能做到这一点?

gam_object2 =  gam(y ~ x1 + x2 + s(x1) + s(x2), data)
4

1 回答 1

4

也许这可以帮助你:

p<-10
as.formula(paste0("y~",paste0("s(x",1:p,")",collapse="+")))

如果您不想使用前两个或更多个通常不要在某些特定变量上使用样条线,请使用:

data<- #yours data
use<-c(3:6,9:10)
dontuse<-c(1:2,7:8)
form<-as.formula(
 paste0("y~",paste0("s(x",use,")",collapse="+"),"+",paste0("x",dontuse,collapse="+"),collapse=""))

然后运行模型:

gam(data=data,formula=form,family=gaussian)
于 2015-12-03T14:47:57.580 回答