如何在GAM模型中添加单调约束

问题描述 投票:0回答:1

我在 R 上使用 mgcv 包,并且我有一个像这样的模型:

gamm_model <- gam(Y ~ s(X, bs = "ps") + B + C +  s(D, bs = 're') + s(E, bs = 're'),  data = df)
summary(gamm_model)

我想在 X 上添加一个正单调约束。这可能吗?如果可以,怎么做?

我看到有一个 mono.con() 函数,但我不明白如何使用它。

谢谢

r constraints gam
1个回答
0
投票

使用

scam
包可能更容易,尽管它没有
mgcv
那么多的下游支持:但是例如
gratia::draw()
看起来确实可以正常工作...

data("sleepstudy", package = "lme4")
library(scam)
model <- scam(Reaction ~ s(Days, bs = "mpi") + s(Subject, bs = "re"),
   data = sleepstudy)

(不是很合适,但它表明它可以做到......)

来自

?smooth.construct.mpi.smooth.spec

这是一个特殊的方法函数,用于创建受以下条件影响的平滑 由“mgcv”构建的单调递增约束 平滑项的构造函数“smooth.construct”。 这是 使用单调 P 样条构造。

© www.soinside.com 2019 - 2024. All rights reserved.