2015-07-03 60 views
2

下面的程序有R \ 2.15.3完美的作品與mgcv包:錯誤mgcv [R包,具體取決於中的R版本

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,它產生以下錯誤:

Error in reformulate(pav) : 'termlabels' must be a character vector of length at least one

這是我不明白的錯誤。 foo中的值當然是其中的一個例子,但我與其他值有相同的問題。修正樣條曲線中的k不會改變任何內容。

這不會是一個問題,如果我不需要用超級計算機大規模地使用它,所有版本的R創建相同的錯誤... (爲了討論,我在超級計算機測試的R版本中分別爲:

  • R/2.15.3-FOSS-2014A-默認;
  • R/2.15.3-FOSS-2014A-ST;
  • R/2.15.3 -intel-2014a-default;
  • R/3.0.2-foss-2014a-default)

所以這不是一臺超級計算機的問題,但更多的涉及到不同版本R.

的使用mgcv的我並沒有在互聯網上找到任何答案的一個問題。
預先感謝您的幫助。
Guillaume

+0

相關來源:https://svn.r-project.org/R/trunk/src/library/stats/R/models.R,Ctrl + F「重新配置」(可能有助於診斷問題) – tonytonov

+0

似乎它與R版本無關(我在2.15.3中看到沒有差異,最近在R側),所以主要的嫌疑人是'mgcv',請按照建議找出併發布它的版本。 – tonytonov

+0

@RHertel mgcv是基數R附帶的軟件包之一。 –

回答

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鏈接的高斯家庭不是很明智,但這是另一個問題。

+0

@ Hong Ooi你說得對!!!!!!它解決了我的問題!非常感謝 –