Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在mgcv中指定可变系数和因子水平_R_Mgcv - Fatal编程技术网

R 在mgcv中指定可变系数和因子水平

R 在mgcv中指定可变系数和因子水平,r,mgcv,R,Mgcv,我正在使用R中的mgcv包来安装平滑。我对拟合变系数模型感兴趣,其中变系数平滑也会根据因子变量而变化 根据mgcv文档,当使用s()指定平滑时,by参数可以采用数值变量,在这种情况下,可变系数模型是合适的,或者采用因子变量,在这种情况下,为每个因子级别生成平滑的副本。然而,文档中没有说明如何指定具有可变系数效应的模型,以及如何使该效应在多个因子水平上有所不同。我看不出有任何理由不可能做到这一点,所以这两种不同的效果是由同一个参数指定的,这有点奇怪。我向mgcv软件包的创建者提出了这个问题,下面是

我正在使用R中的
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)