R 在mgcv中指定可变系数和因子水平
我正在使用R中的R 在mgcv中指定可变系数和因子水平,r,mgcv,R,Mgcv,我正在使用R中的mgcv包来安装平滑。我对拟合变系数模型感兴趣,其中变系数平滑也会根据因子变量而变化 根据mgcv文档,当使用s()指定平滑时,by参数可以采用数值变量,在这种情况下,可变系数模型是合适的,或者采用因子变量,在这种情况下,为每个因子级别生成平滑的副本。然而,文档中没有说明如何指定具有可变系数效应的模型,以及如何使该效应在多个因子水平上有所不同。我看不出有任何理由不可能做到这一点,所以这两种不同的效果是由同一个参数指定的,这有点奇怪。我向mgcv软件包的创建者提出了这个问题,下面是
mgcv
包来安装平滑。我对拟合变系数模型感兴趣,其中变系数平滑也会根据因子变量而变化
根据
mgcv
文档,当使用s()
指定平滑时,by
参数可以采用数值变量,在这种情况下,可变系数模型是合适的,或者采用因子变量,在这种情况下,为每个因子级别生成平滑的副本。然而,文档中没有说明如何指定具有可变系数效应的模型,以及如何使该效应在多个因子水平上有所不同。我看不出有任何理由不可能做到这一点,所以这两种不同的效果是由同一个参数指定的,这有点奇怪。我向mgcv
软件包的创建者提出了这个问题,下面是我得到的回答:
这应该是可能的,但可能存在可识别性问题。
假设f是一个级别为“a”、“b”、“c”的因子,x是平滑度
变量和你感兴趣的协变量,你想要一个类似的模型
y=z s_f(x)+噪声
然后
da我向mgcv
软件包的创建者提出了这个问题,下面是我得到的答复:
这应该是可能的,但可能存在可识别性问题。
假设f是一个级别为“a”、“b”、“c”的因子,x是平滑度
变量和你感兴趣的协变量,你想要一个类似的模型
y=z s_f(x)+噪声
然后
da
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)