我正在尝试使用R中的'插入符'包对通用加性模型(GAM)进行交叉验证。我可以使它适用于GLM,并且认为对于ALM运行相同的操作应该很简单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()。在详尽搜索网络之后,我还没有找到任何可行的示例。任何帮助,将不胜感激!
缺口
最佳答案
经过进一步审查,似乎在插入符号中使用任何基于GAM的模型类型都不明确支持泊松结果。我在Github上的插入符号代码库中flagged this as an issue(至少在文档中,如果没有明确支持这些类型的模型,则至少在文档中)。
关于r - 用插入符号验证Poisson GAM模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29079519/