在 R 中,我想用分类变量拟合 gam 模型。我想我可以这样做(cat 是分类变量)。
lm(data = df, formula = y ~ x1*cat + x2 + x3);
但我不能做这样的事情:
gam(data = df, formula = y ~ s(x1)*cat + s(x2) + x3)
但以下有效:
gam(data = df, formula = y ~ cat + s(x1) + s(x2) + x3)
如何将分类变量仅添加到其中一个样条线?
其中一条评论或多或少告诉了你如何做。使用by
多变的:
s(x1, by = cat)
这创建了“因子平滑”平滑类fs
,其中平滑函数x1
是为每个因子级别创建的。平滑参数也是重复的但没有链接,因此它们的估计不雅。您可以设置
s(x1, by = cat, id = 0)
对所有“子平滑”使用单个平滑参数。
另请注意,对比度不适用于因子,但平滑函数仍受居中约束。这意味着您还需要将因子变量指定为固定效应:
s(x1, by = cat) + cat
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)