以下程序与R \ 2.15.3完美配合使用mgcv包:
foo<-c(0.08901294, 0.04221170, 0.01608613, 0.04389676, 0.04102295, 0.03552413, 0.06571099, 0.11004966, 0.08380553, 0.09181121, 0.07422538,
0.11494897, 0.18523257, 0.13809043, 0.13569868, 0.13433534, 0.16056145, 0.15559133, 0.22381149, 0.13998797, 0.02831030)
infant.gamfit<-gam(foo~s(c(1:21)), family=gaussian(link = "logit"))
但是对于R \ 3.1.1和3.1.2,它会产生以下错误:
重新制定(pav)时出错:'termlabels'必须是字符向量 长度至少为一个
这是我不明白的错误。 当然foo中的值是一个例子,但我对其他值有同样的问题。在样条曲线中固定k不会改变任何内容。
如果我不需要在超级计算机上大规模使用它,R的所有版本都会产生相同的错误,那就不会有问题...... (为了讨论起见,我在超级计算机上测试的R版本是:
所以这不是一个超级计算机问题,但更多的问题与在不同版本的R中使用mgcv有关。
我在互联网上找不到任何答案
提前感谢您的帮助。
纪尧姆
答案 0 :(得分:1)
当预测变量是表达式而不是命名变量时,看起来mgcv::gam
的最新版本可能有点脆弱。这有效:
x <- 1:21
gam(foo~s(x), family=gaussian(link = "logit"))
就像这样:
x <- 1:21
gam(foo~s(x + 0), ...)
但这并不是:
x <- rep(0, 21)
gam(foo~s(x + 1:21), ...)
一般情况下,我建议您在使用gam
时预先计算预测变量。
PS。具有logit链接的高斯族并不是很明智,但这是另一个问题。