2013-10-19 21 views
2

當試圖在函數multinom(包nnet)產生的對象上嘗試使用MuMin包的函數model.avg時,我遇到問題。 儘管手冊列表爲multinom兼容,但model.avg函數並不像我期望的那樣返回解釋變量的模型平均係數。MuMin與具有3個級別響應變量的multinom(nnet)對象的兼容性不佳?

我知道問題不存在,當multinom響應變量爲2級別,所以我想它取決於生成的多項式對象的結構。但是,我不知道如何解決這個問題。

下面是一個例子代碼,其中函數model.avg按預期方式工作:

#### MuMIn example 
library(MuMIn) 
data(Cement) 
fm1 <- lm(y ~ ., data = Cement) 
dd <- dredge(fm1) 
summary(model.avg(dd, subset = delta < 4))$coefmat 

結果:

   Estimate Std. Error Adjusted SE z value Pr(>|z|) 
(Intercept) 64.69312754 22.2354794 22.4624137 2.8800613 0.0039760 
X1   1.45579791 0.2036676 0.2193043 6.6382554 0.0000000 
X2   0.62502598 0.1202570 0.1291705 4.8387682 0.0000013 
X4   -0.47600710 0.2215167 0.2309395 2.0611767 0.0392862 
X3   -0.02153196 0.3767120 0.3924356 0.0548675 0.9562440 

在這種情況下, 'model.avg' 函數返回Model-averaged coefficients(列Estimate )如預期的解釋變量(即X1-X4)。現在

,如果我想這(至少有3個級別的響應變量)應用到multinom對象:

#### application to multinomial regression 
library(foreign) ; library(nnet) ; library(MuMIn) 
ml <- read.dta("http://www.ats.ucla.edu/stat/data/hsbdemo.dta") 
ml$prog2 <- relevel(ml$prog, ref = "academic") 
test <- multinom(prog2 ~ ses + write + schtyp, data = ml) 
# [...] verbosity not displayed here 
dd <- dredge(test) 
# [...] verbosity not displayed here 
summary(model.avg(dd, subset = delta < 4))$coefmat 

結果

  Estimate Std. Error z value Pr(>|z|) 
general 2.850316 1.169132 2.437977 0.014769732 
vocation 5.134921 1.173878 4.374322 0.000012181 

在這裏,該函數返回「模型平均係數「對於不同水平的反應變量(即generalvocation)而言,而不是解釋變量的模型平均係數。

如果這是可能的,你能告訴我請問如何從multinom對象得到Model average coefficients的解釋變量?

非常感謝提前。

回答

3

這確實是一個從多目標對象中提取係數的錯誤。它現在在MuMIn 1.9.13中被修復。

+0

感謝卡米爾,我最近回來了,但它仍然有用:) –