R中的gam函数问题

dsa*_*ton 2 r gam logistic-regression

我正在尝试拟合广义加性逻辑回归模型,但出现了一个奇怪的错误:

gam_object = gam(event ~ s(time) + ., data = lapse_train, family = "binomial") 

Error in terms.formula(gf, specials = c("s", "te", "ti", "t2")) : '.' in formula and no 'data' argument
Run Code Online (Sandbox Code Playgroud)

为什么它会告诉我这里没有数据参数,而显然有数据参数?

MrF*_*ick 5

请注意,错误消息来自terms.formula()在函数内部调用的调用。此函数看不到data=您传递给的参数gam()

如果您查看?formula.gam帮助页面,您会看到

提供给 gam 的公式与提供给 glm 的公式完全相同,除了平滑项 s、te、ti 和 t2 可以添加到右侧(并且 . 在 gam 公式中不受支持)。

您可以在通过gam标准terms()函数将其传递给之前扩展公式。例如

gam_object <- gam(terms(event ~ s(time) + ., data=lapse_train), 
    data = lapse_train, family = "binomial") 
Run Code Online (Sandbox Code Playgroud)

您没有提供任何类型的可重现示例,因此无法验证这是否适合您。