【问题标题】:How to extract deviance residuals for each observation for multinom() -objects?如何为 multinom() 对象的每个观察提取偏差残差?
【发布时间】:2018-05-10 00:05:51
【问题描述】:

在使用 multinom() 函数拟合多项式 logit 模型后,我想提取每个观测的偏差残差。

由于我通常使用二进制 logit 模型:

n = 1000
df1 = data.frame(x1=runif(n,0,100),x2=runif(n,0,100))
df1 = transform(df1,y=1+ifelse(100 - x1 - x2 + rnorm(n,sd=10) < 0, 0,                  ifelse(100 - 2*x2 + rnorm(n,sd=10) < 0, 1, 2)), set="Original")

df1$y_binary=ifelse(df1$y==1,1,0)
logit_model=glm(y:binary ~x1+x2,data=df1,family=binomial(link='logit'))

eps=resid(logit_model,type="deviance") 

我想计算多项回归模型的对应项,已设置:

library(nnet)
mod <- multinom(y ~ x1 + x2, df1)

那么如何从mod 中获取偏差残差?

【问题讨论】:

    标签: r multinomial


    【解决方案1】:

    不幸的是,配备nnet::multinom() 的型号似乎没有这样的功能。

    如果您查看multinom() 函数体,您会看到偏差是根据总值fit$deviance &lt;- 2 * fit$value 计算得出的。该值与您在mod$value 中的值相同 - 它是似然比检验统计量。因此,您只有 Deviance 的总数。

    但是,您可以实现自己的功能。对于每个观察,在计算偏差后,您只需选择一个规则来设置偏差值信号。这是一篇论文的链接,该论文提出了一种有符号扩展方法来计算多项模型中的偏差残差:http://convegni.unica.it/cladag2015/files/2015/10/Romeo1.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      相关资源
      最近更新 更多