2

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

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

我还为正态分布的数据运行了 glmulti(将家庭指定为高斯,将链接指定为身份),这确实有效,但如果我违反了任何主要规则,请告诉我。

4

2 回答 2

2

建议的另一个答案的问题是“ 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 函数的色散参数中,您还可以放置包含所有变量的完整准泊松 GLM 的估计色散系数(我见过的一些统计数据推荐这个),即使用

disp <<- summary(fullmodel)$dispersion
qaicmod = function (fit) qAIC(fit, dispersion=disp) 
于 2017-04-13T15:30:54.853 回答
1

glmulti 确实允许误差分布中的准族。

在您的情况下,您应该简单地使用附加参数 family=quasipoisson 调用 glmulti (它将传递给拟合函数 glm)。

请注意,对于这种类型的模型,您使用的是准似然,因此不推荐使用 AIC 或 BIC。您应该使用后者的准等效项(QAIC 或 QBIC)。这是通过将参数 crit 设置为“qaic”(例如)来实现的。您必须提供过度分散因子的估计值,通常来自饱和模型(有关更多信息,请参阅文档;或向软件包作者寻求帮助)。

否则,对于使用多模型比较与这种类型的模型没有具体的反指示。

最好的

于 2012-07-23T17:06:17.160 回答