mgcv error: "x has insufficient unique values to support 3 knots: reduce k"

mgcv error: "x has insufficient unique values to support 3 knots: reduce k"

我正在尝试拟合以下 GAM 模型

mod <- gam(y ~ s(x, bs = "cr", k = 2), family = betar(link = "logit"), data = d)

其中 x 只能取两个唯一值。

但是,当我 运行 模型时,出现以下错误

Error in smooth.construct.cr.smooth.spec(object, dk$data, dk$knots) : 
  x has insufficient unique values to support 3 knots: reduce k.
In addition: Warning message:
In smooth.construct.cr.smooth.spec(object, dk$data, dk$knots) :
  basis dimension, k, increased to minimum possible

如错误消息所示,结数自动设置为 3(即使我在 gam 调用中指定了 k = 2)。

为什么我不能只有 2 节?我该如何解决这个问题?

谢谢。

如何仅在两个点上(唯一地)定义三次多项式?三次多项式 s(x) 需要 4 个系数,即至少 4 个唯一的 x 值。 mgcvs(x) 应用居中约束,因此需要的系数少了一个,但你仍然需要 3.

如果你的协变量只有两个唯一值,你最多可以用一条直线来拟合它:

gam(y ~ x, family = betar(link = "logit"), data = d)