2014-03-02 76 views
1

我需要使用QAIC標準對候選模型進行排名。這是我已經試過:使用MuMIn的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以上車型?

回答

3

您需要提供您的rank.argslist(見?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.. 
+0

Henrik:你使用的是什麼版本的MuMIn?我使用1.9.13。當我運行你的代碼時,我在模型選擇表中得到的唯一變量是'(Intrc)''disp''mpg''wt''df'。我沒有得到其他4. – luciano

+0

@luciano,我使用1.9.13。我很高興你問,因爲在某一時刻,我實際上得到了你描述的「部分」輸出,原因不明。我不能說我是否做了一些特別的事情讓它再次運轉 - 它「突然」成功了。也許'MuMin'有點不穩定,或者與其他裝載的包裹發生衝突。您可以嘗試舊的經典:重新啓動R,並在新的會話中運行腳本。 – Henrik

+0

完全一樣的發生在我身上。最初我得到了部分輸出,然後幾次嘗試後,我突然得到完整的輸出。也許是一個錯誤? – luciano

3

這是真的手冊中所有,所以請先(?model.sel?QAIC)閱讀。注意在你的代碼的兩個問題:

  • 參數QAICmodel.sel傳遞在rank.args說法,不直接。
  • 模型家庭不報告可能性,需要計算QAIC。請參閱注意?QAICexample(QAIC)爲黑客繞過此。