我想在使用张量积的gam函数中手动设置一些 node 位置.

例如:

set.seed(0)
n <- 500
x <- runif(n)
z <- runif(n)
y <- runif(n)
gam(y ~ te(x, z), knots = list(x = c(0.2, 0.5, 0.8), y=c(0.2, 0.5, 0.8)))

但我有一个错误:

Error in smooth.construct.cr.smooth.spec(object$margin[[i]], dat, knt) : 
  number of supplied knots != k for a cr smooth

我试着在张量中增加一个k值,但误差还是一样 我该怎么解决这个问题?感谢你的帮助.

推荐答案

您通过knots指定的结点位置和基函数k的数量必须兼容.在您的示例中,默认值用于k,其中IIRC将k = c(5,5)用于2D张量积.

如果要使用指定的结位置,则需要将k设置为小于以下值:

knots <- list(x = c(0.2, 0.5, 0.8), z = c(0.2, 0.5, 0.8))
gam(y ~ te(x, z, k = c(3,3)), method = "REML", knots = knots)

R相关问答推荐

以R为基数排列奇数个图

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

编码变量a、b、c以匹配来自另一个数据点的变量x

名称输出pmap on tible

在for循环中转换rabrame

为什么我的基准测试会随着样本量的增加而出现一些波动?

根据另一列中的值和条件查找新列的值

从R中发出的咕噜声中的BUG?

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何对r中包含特定(未知)文本的行求和?

有没有办法将不等长的列表转换为R中的数据帧

基于R中的辅助向量中的值有条件地连接向量中的字符串

随机将数据帧中特定列上的某些行设置为NA

基于R中的引用将向量值替换为数据框列的值

从矩阵创建系数图

是什么打破了此Quarto仪表板中的工具提示?

组合名称具有模式的列表的元素

具有由向量定义的可变步长的序列

图中显示错误 colored颜色 的图例geom_sf

从字符串01JAN2021创建日期