我使用glmulti
包中的glmulti
函数来获得泊松误差分布式数据的最佳glm模型。没有问题。一旦我获得了最佳模型,我就使用卡方检验来获得输入到模型中的每个变量的p值和检验统计量。我遇到的唯一问题是数据过度分散,Zuur书和Crawley都建议使用准家族函数来纠正过度离散。除了glmulti函数不允许拟合准函数之外,这本身不是问题。
我的问题是,使用具有泊松误差分布的glmulti获得我的最佳模型,然后将最佳模型输出拟合到准函数是不正确的做事方式,如果有任何其他建议,任何人都可以提供。
我还为正常分布的数据运行glmulti(指定系列为高斯和链接作为标识),这确实有效,但如果我违反任何主要规则,请告诉我。
答案 0 :(得分:1)
glmulti允许在错误分布中使用准系列。
在你的情况下,你应该简单地用附加参数family = quasipoisson调用glmulti(它将被传递给拟合函数glm)。
请注意,对于此类型号,您使用的是准可能性,因此不建议使用AIC或BIC。你应该使用后者的准等价物(QAIC或QBIC)。这是通过将参数crit设置为“qaic”(例如)来实现的。您必须提供过度离散因子的估计值,通常来自饱和模型(有关更多信息,请参阅文档;或向程序包作者寻求帮助)。
否则,对于使用与此类模型进行多模式比较,没有特定的反指示。
最佳
答案 1 :(得分:1)
建议的其他答案的问题是" qaic
"似乎无法在glmulti
中工作。
对我来说,这虽然有效:
library(bbmle)
qaicmod = function (fit) qAIC(fit, dispersion=with(fit,sum((weights * residuals^2)[weights > 0])/df.residual) )
glmulti.out <- glmulti(XXX model formula XXX,
data = mydata,crit = "qaicmod",
confsetsize = 5, fitfunction = "glm",
family = poisson)
这使用常规泊松GLM,但是根据估计的色散系数计算QAIC。 在qaicmod函数的色散参数中,您还可以将包含所有变量的全quasipoisson GLM的估计色散系数(我已经看到的一些统计推荐),即改为使用
disp <<- summary(fullmodel)$dispersion
qaicmod = function (fit) qAIC(fit, dispersion=disp)