我在R中使用mgcv包来拟合平滑度。我对拟合变系数模型很感兴趣,其中变系数平滑也根据因子变量而变化。
根据mgcv文档,当使用s()指定平滑时,by参数可以采用数字变量或因子变量,在这种情况下,适合可变系数模型;在这种情况下,会为每个因子级别生成平滑的副本。我看不出为什么这是不可能的,所以这两个不同的效果是由同一个参数指定的,这有点奇怪。
发布于 2020-03-16 04:34:31
我通过这个问题联系了 mgcv 包的创建者,下面是我得到的的响应
这应该是可能的,但可能存在可识别性问题。
Y=z s_f(x) +噪声
然后
da <- as.numeric(f="a")*z
db <- as.numeric(f="b")*z
dc <- as.numeric(f="c")*z
gam(y ~ s(x,by=da) + s(x,by=db) + s(x,by=dc) - 1)符合模型。唯一的问题是-1。我们需要它,因为否则平滑的截距会与整体截距混淆。-1在这个简单的情况下处理可识别性,但在其他一些情况下不会-例如,如果您在模型中以参数方式包括一个因子变量,或者以这种方式有第二组平滑条件的因子水平。
在这些情况下,一种可能性是对gam使用select=TRUE参数,这将正式消除可识别性问题。
https://stackoverflow.com/questions/58401273
复制相似问题