用插入符号验证泊松GAM模型

时间:2015-03-16 14:36:39

标签: r r-caret gam mgcv

我尝试使用'插入符号对广义添加剂模型(GAM)进行交叉验证。在R中打包我可以让它适用于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

似乎家庭参数不会以与glm()相同的方式传递给gam()。在详尽地搜索网络后,我还没有找到任何有用的例子。任何帮助将不胜感激!

尼克

1 个答案:

答案 0 :(得分:1)

进一步审查后,似乎使用插入符号中的任何基于GAM的模型类型都明确不支持泊松结果。我在Github上的插入符号代码库中flagged this as an issue(至少在文档中,如果没有明确支持这些类型的模型)。