R 比较样条曲线和多项式

R 比较样条曲线和多项式,r,function,regression,formula,R,Function,Regression,Formula,我试图写一个函数来比较样条曲线和多项式回归之间的基本模型。 但当我使用模型中的model$formula选项,并将其用于带有下一个变量的gam函数时,我收到一个错误: mod$formula+df\u work\u final$Apps中的错误: 二进制运算符的非数值参数 如何在函数中使用我的模型公式 多谢各位 完整示例: library(gam) library(ISLR) data(College) mod = gam(College$Grad.Rate~College$Private)

我试图写一个函数来比较样条曲线和多项式回归之间的基本模型。 但当我使用模型中的
model$formula
选项,并将其用于带有下一个变量的
gam
函数时,我收到一个错误:

mod$formula+df\u work\u final$Apps中的
错误:

二进制运算符的非数值参数

如何在函数中使用我的模型公式

多谢各位

完整示例:

library(gam)
library(ISLR)
data(College)

mod = gam(College$Grad.Rate~College$Private)

# This, I want to use into a function
Poly = function(valores){
    poly.1= gam(mod$formula + valores,data=College)
    poly.2= gam(mod$formula + poly(valores,2) ,data=College)
    poly.3= gam(mod$formula + poly(valores,3) ,data=College)
    poly.4= gam(mod$formula + poly(valores,4) ,data=College)
    poly.5= gam(mod$formula + poly(valores,5) ,data=College)
}

Poly(df_work_final$Apps)

将我以前的评论转化为答案:

  • 在任何情况下,应禁止在模型公式中使用
    $
    ;改用模型拟合函数的
    数据
    参数

  • 我看不到您的初始
    gam
    中有任何平滑的函数,如
    lo
    s
    。您实际上只是在拟合一个线性模型
    Grad.Rate~Private
    。那么,为什么不使用

    mod <- lm(Grad.Rate ~ Private, data = College)
    
update.formula(formula(mod), . ~ . + poly(Apps, 2))