广义线性模型与广义加性模型

Generalized linear model vs Generalized additive model

我正在尝试关注这篇论文:Using a data science approach to predict cocaine use frequency from depressive symptoms 他们在其中使用 glm,gam 与 beck inventory depression。所以我确实找到了一个类似的数据集来测试这些模型。但是,我对这两种型号都很难。例如,我有两个变量 d64a 和 d64b,它们用 1,2,3,4 编码,这意味着它们是有序的。另外,在论文中y2只是1的值,但我还有一个额外的变量(可以依赖,消耗的比例)

对于我的GAM模型:

b<-gam(y2~s(d64a)+s(d64b),data=DATOS2)

但我有以下错误:

Error in smooth.construct.tp.smooth.spec(object, dk$data, dk$knots) : 
  A term has fewer unique covariate combinations than specified maximum degrees of freedom

同时对于 glm,我有以下内容:

d<-glm(y2~d64a+d64b,data=DATOS2)

我不知道,因为 d64a 和 d64b 是有序的,所以我必须使用 factor()?

错误消息告诉您 d64ad64b 之一或两者都没有 9(九个)唯一值。

默认情况下 s(...) 将创建一个具有九个函数的基础。如果协变量中的唯一值少于九个,则会出现此错误。

使用以下方法检查哪些协变量受到影响:

length(unique(d64a))
length(unique(d64b))

并查看您希望包括的每个协变量的唯一值的数量。如果小于 9,则将 k 参数设置为上面返回的数字。例如,假设上述检查返回 57 唯一协变量,那么您可以通过如下设置 k 来表明这一点:

b <- gam(y2 ~ s(d64a, k = 5) + s(d64b, k = 7), data = DATOS2)