来自 R 的 nnet 包的函数 multinom() 是否适合多项式逻辑回归或泊松回归?



R中的nnet包中的multinom((函数的文档中说;[f] 其通过神经网络的多项式对数线性模型";并且";[t] 响应应该是一个具有K列的因子或矩阵,这将被解释为K个类中的每一个的计数"即使当我在这个问题上为nnet添加标签时,描述中也说这是一款适合";多项式对数线性模型">

考虑到统计数据中有极不一致的术语,使用它的人很少在操作上定义这些术语,该函数的文档甚至提到了计数响应,因此似乎表明该函数是为计数数据建模而设计的。然而,我所看到的几乎每一种资源都把它当作一个多项式逻辑回归。简言之,每个人都根据相对于参考的记录赔率(如逻辑回归(来解释结果,而不是根据记录的预期计数(如通常称为对数线性模型(来解释

有人能澄清这个函数的实际作用吗?拟合系数的实际含义是什么?

nnet::multinom正拟合一个多项式逻辑回归,据我所知。。。

如果您检查包的源代码,https://github.com/cran/nnet/blob/master/R/multinom.R和https://github.com/cran/nnet/blob/master/R/nnet.R,您将看到多项式函数确实在使用计数(这是多项式回归模型的常见输入,另请参见MGLMmclogit包,例如(,并且它正在使用softmax变换来拟合多项式回归模型,以从加性对数比尺度上的预测变为预测概率。softmax变换实际上是多项式回归模型的逆链接尺度。获得多项式模型预测的方式,即来自nnet::multinom的预测,也与您对多项式回归模型的预期完全相同(使用加性对数比尺度参数化,即使用一个结果类别作为基线(。也就是说,系数预测的是相对于参考基线类别的记录赔率(即,它正在进行逻辑回归(,而不是记录的预期计数(如对数线性模型(。这可以通过以下事实来证明:模型预测是以计算的

fit <- nnet::multinom(...)
X <- model.matrix(fit) # covariate matrix / design matrix
betahat <- t(rbind(0, coef(fit))) # model coefficients, with expicit zero row added for reference category & transposed
preds <- mclustAddons::softmax(X %*% betahat)

此外,我验证了nnet::multinom返回的vcov矩阵与我使用多项式回归模型的vcov矩阵的公式时相匹配,使用Rcp&Kronecker产品。

多项式回归模型是否总是可以使用泊松技巧(例如glmnet使用泊松技巧将多项式回归模型拟合为泊松GLM(重新表述为泊松对数线性模型(即泊松GLM?

最新更新