如何在 R 中使用带 gam 的样条曲线拟合所有变量而不键入每个变量?
How can I fit all variables using splines with gam in R without typing each one?
假设我有一个包含 y
和 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)
也许这对你有帮助:
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)
假设我有一个包含 y
和 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)
也许这对你有帮助:
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)