【问题标题】:mgcv error: "x has insufficient unique values to support 3 knots: reduce k"mgcv 错误:“x 的唯一值不足以支持 3 个结:减少 k”
【发布时间】:2018-03-26 13:51:02
【问题描述】:

我正在尝试拟合以下 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 个结吗?我该如何解决这个问题?

谢谢。

【问题讨论】:

    标签: r regression spline gam mgcv


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-08
      • 2019-11-10
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多