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

R 广义线性模型与广义加性模型,r,glm,gam,R,Glm,Gam,我试着遵循这篇论文:他们使用glm,gam和贝克库存萧条。所以我找到了一个类似的数据集来测试这些模型。然而,我对这两种型号都很难接受。例如,我有两个变量d64a和d64b,它们用1,2,3,4编码,这意味着它们是有序的。此外,在本文中,y2只是1的值,但我还有一个变量,它可以依赖于消费的比例 对于GAM模型,我有: b<-gam(y2~s(d64a)+s(d64b),data=DATOS2) 同时,对于glm,我有以下几点: d<-glm(y2~d64a+d64b,data=DAT

我试着遵循这篇论文:他们使用glm,gam和贝克库存萧条。所以我找到了一个类似的数据集来测试这些模型。然而,我对这两种型号都很难接受。例如,我有两个变量d64a和d64b,它们用1,2,3,4编码,这意味着它们是有序的。此外,在本文中,y2只是1的值,但我还有一个变量,它可以依赖于消费的比例

对于GAM模型,我有:

b<-gam(y2~s(d64a)+s(d64b),data=DATOS2)
同时,对于glm,我有以下几点:

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

我不知道,因为d64a和d64b是顺序的,我必须使用因子?

错误消息告诉您,d64a和d64b中的一个或两个没有9个唯一值

默认情况下,s。。。将创建一个包含九个功能的基础。如果协变量中的唯一值少于九个,则会出现此错误

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

length(unique(d64a))
length(unique(d64b))
并查看您希望包含的每个协变量的唯一值的数量。然后,如果k参数小于9,则将其设置为上面返回的数字。例如,假设上述检查返回5个和7个唯一的协变量,那么您可以通过如下设置k来表示:

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