MuMin与具有3级响应变量的multinom(nnet)对象的兼容性差?

时间:2013-10-19 11:38:18

标签: r statistics regression multinomial nnet

尝试在函数model.avg(包MuMin)生成的对象上使用multinom包的函数nnet时遇到问题。 虽然手动列表为multinom兼容,但model.avg函数不会像我预期的那样返回解释变量的模型平均系数。

我知道当multinom响应变量仅为2级时问题不存在,所以我猜这取决于生成的multinom对象的结构。但是,我不知道如何解决这个问题。

以下是函数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'函数按预期返回解释变量(即X1-X4)的Model-averaged coefficients(列Estimate)。

现在,如果我想将它应用于multinom对象(至少有3个级别的响应变量):

#### 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),而不是解释变量的模型平均系数。

如果可以,请告诉我如何从Model average coefficients个对象获取multinom解释变量?

非常感谢提前。

1 个答案:

答案 0 :(得分:3)

确实是一个从multinom对象中提取系数的错误。它现在已在MuMIn 1.9.13中修复。