我在 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() 函数,但我不明白如何使用它。
谢谢
使用
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 样条构造。