使用glmulti拟合准家庭?

时间:2012-07-13 10:40:29

标签: r glm glmulti

我使用glmulti包中的glmulti函数来获得泊松误差分布式数据的最佳glm模型。没有问题。一旦我获得了最佳模型,我就使用卡方检验来获得输入到模型中的每个变量的p值和检验统计量。我遇到的唯一问题是数据过度分散,Zuur书和Crawley都建议使用准家族函数来纠正过度离散。除了glmulti函数不允许拟合准函数之外,这本身不是问题。

我的问题是,使用具有泊松误差分布的glmulti获得我的最佳模型,然后将最佳模型输出拟合到准函数是不正确的做事方式,如果有任何其他建议,任何人都可以提供。

我还为正常分布的数据运行glmulti(指定系列为高斯和链接作为标识),这确实有效,但如果我违反任何主要规则,请告诉我。

2 个答案:

答案 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)