You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言mgcv包gam函数Duchon样条k=3拟合失败咨询

R中GAM模型Duchon样条k=3报错的原因解析

你在R中使用广义可加模型(GAM),指定Duchon样条(bs='ds')时,遇到了k=3拟合失败、k≥4正常的问题,报错信息如下:

> fit <- gam(Load ~ s(Date, k=3, bs='ds'), data=data0)
Error in qr.qty(qru, t(qr.qty(qru, D)[-ind, ])) : 
  'qr' and 'y' must have the same number of rows

核心原因

Duchon样条(bs='ds')的构造对基函数数量k有最低阈值要求:单变量场景下,k的最小值为4。

具体逻辑:

  • Duchon样条的基函数由常数项、线性项,加上k-2个非线性样条项组成。当k=3时,仅能生成1个非线性项,这会导致样条构造过程中,平滑性约束的维度与响应变量(Load)的行数无法匹配,进而触发QR分解时的维度不兼容报错。
  • 当k≥4时,非线性项数量足够,约束条件的维度与数据行数(3028行)对齐,模型可以正常完成拟合。

替代方案

如果需要使用较小的k值,可以换用其他支持低维度的样条类型:

  • bs='cr':立方回归样条,支持k=3及以上设置
  • bs='tp':薄板回归样条,同样兼容更小的k值

内容的提问来源于stack exchange,提问作者Zilou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:30:05