比较样条和多项式

时间:2017-03-19 16:47:40

标签: r function regression formula

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

  

Error in mod$formula + df_work_final$Apps :
  non-numeric argument to binary operator

如何将我的模型公式用于函数?

谢谢

完整示例:

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)

1 个答案:

答案 0 :(得分:1)

将我以前的评论移到答案中:

  • 无论如何,在模型公式中使用$禁止;改为使用模型拟合函数的data参数;

  • 我在初始gam中看不到任何平滑功能,例如los。你真的只是拟合线性模型Grad.Rate ~ Private。那么,为什么不使用

    mod <- lm(Grad.Rate ~ Private, data = College)
    
  • +对于公式的连接无效。您想使用update.formula(请阅读?update.formula了解更多信息),例如,

    update.formula(formula(mod), . ~ . + poly(Apps, 2))
    
相关问题