1

我需要使用 QAIC 标准对候选模型进行排名。这是我尝试过的:

library(MuMIn)
model_global <-  glm(vs ~ mpg + disp + wt, family = quasibinomial, mtcars)
model_1 <-  glm(vs ~ mpg, family = quasibinomial, mtcars)
model_2 <-  glm(vs ~ disp, family = quasibinomial, mtcars)
model_3 <-  glm(vs ~ wt, family = quasibinomial, mtcars)
model_null <-  glm(vs ~ 1, family = quasibinomial, mtcars)

mod.sel(model_global, model_1, model_2, model_3, model_null, rank="QAIC", chat=deviance(model_global) / df.residual(model_global))

这将返回此错误:

Error in formula.default(x) : invalid formula

如何使用 QAIC 对上述模型进行排名?

4

2 回答 2

3

您需要提供您的rank.args作为list(请参阅?model.sel

library(MuMIn)
model.sel(model_global, model_1, model_2, model_3, model_null,
          rank = QAIC,
          rank.args = list(chat = deviance(model_global) / df.residual(model_global)))

在您提供的(不错的小)示例中,chat恰好是< 1,生成了一个警告,并chat设置为 1。

# Model selection table 
#              (Intrc)  disp    mpg    wt     df logLik  QAIC delta weight
# model_global -21.9000 -0.0403 0.6470  5.332 4   -8.844 25.7  0.00 0.569 
# model_2        4.1380 -0.0216               2  -11.348 26.7  1.01 0.344 
# model_1       -8.8330         0.4304        2  -12.767 29.5  3.85 0.083 
# model_3        5.7150                -1.911 2  -15.683 35.4  9.68 0.004 
# model_null    -0.2513                       1  -21.930 45.9 20.17 0.000 
# Warning messages:
#   1: In rank(x, chat = 0.631714762477434) :
#   'chat' given is < 1, increased to 1
# ..snip..
于 2014-03-02T11:54:59.623 回答
3

确实都在手册中,所以请先阅读(?model.sel?QAIC)。请注意代码中的两个问题:

  • in 的参数QAIC在参数model.sel中传递rank.args,而不是直接传递。
  • 家庭模型不报告计算 QAIC 所需的可能性。请参阅Note in?QAICexample(QAIC)了解如何解决此问题。
于 2014-03-02T13:01:25.767 回答