标签: pcls

强制 GAM 模型拟合为单调并通过 R mgcv 的固定点 (x0, y0)

我想在两个约束,以适应GAM模型数据simultatenously:(1)拟合单调(增加),(2)配合经过一个固定的点,比如说,(x0,y0)

到目前为止,我设法让这两个约束分开工作:

  • 对于 (1),基于mgcv::pcls() 文档示例,通过使用mgcv::mono.con()来获得足以满足单调性的线性约束,并通过mgcv::pcls()使用约束来估计模型系数。

  • 对于(2),基于这篇文章,通过使用模型公式中的偏移项将节点位置 x0 处的样条值设置为 0 +。

但是,我很难同时结合这两个约束。一种方法是mgcv::pcls(),但我既不能解决 (a) 使用偏移将节点位置 x0 处的样条值设置为 0 + 的类似技巧,也不能 (b) 设置相等约束(我认为)可以产生我的(2)约束设置)。

我还注意到,对于我的约束条件 (2),将结点位置 x0 处的样条值设置为 0 的方法产生了奇怪的摆动结果(与不受约束的 GAM 拟合相比)——如下所示。

到目前为止的尝试:分别为两个约束下的数据拟合平滑函数

模拟一些数据

library(mgcv)
set.seed(1)
x <- sort(runif(100) * 4 - 1)
f <- exp(4*x)/(1+exp(4*x))
y <- f + rnorm(100) * 0.1
dat <- data.frame(x=x, y=y)
Run Code Online (Sandbox Code Playgroud)

GAM 无约束(用于比较)

k <- 13
fit0 …
Run Code Online (Sandbox Code Playgroud)

r gam mgcv pcls

8
推荐指数
1
解决办法
544
查看次数

标签 统计

gam ×1

mgcv ×1

pcls ×1

r ×1