3

我正在尝试使用 R 中的“caret”包对广义加法模型 (GAM) 运行交叉验证。我可以让它为 GLM 工作,并认为运行相同的东西应该很简单GAM,但无法使其正常工作,请参见下文:

dat <- data.frame(label=round(rpois(100,20)),v1=rnorm(100),v2=rnorm(100))
tc <- trainControl("cv",10,savePred=T)
(fit <- train(label~.,data=dat,method="glm",trControl=tc,family=poisson(link = "log")))

(fit1 <- train(label~.,data=dat,method="gam",trControl=tc,family=poisson(link = "log")))

运行最后一行时抛出的关键警告是:

20: In eval(expr, envir, enclos) :
  model fit failed for Fold10: select=FALSE, method=GCV.Cp Error in mgcv:::gam(modForm, data = dat, family = dist, select = param$select,  : 
  formal argument "family" matched by multiple actual arguments

似乎以某种方式将家庭参数传递给 gam() 的方式与在 glm() 中的方式相同。在彻底搜索网络后,我没有找到任何工作示例。任何帮助,将不胜感激!

缺口

4

1 回答 1

1

经过进一步审查,似乎在插入符号中使用任何基于 GAM 的模型类型都明确不支持泊松结果。我在 Github 上的插入符号代码库中将此标记为一个问题(至少在文档中,如果没有明确支持这些类型的模型)。

于 2015-03-17T00:59:05.580 回答