1

我在 nnet 包中使用 multinom 方法,我需要根据类的比例对它们进行不同的加权。我什至有我的比例。

问题是如何为 multinom 方法指定权重参数?如果我只是指定一个列表,它如何将实际类映射到权重?

4

1 回答 1

1

你不应该根据他们的比例来衡量你的班级;样本量是模型的一部分,不应通过权重进行调整。

在指定权重的主题上,您只需为multinomweights参数提供一个列表,然后将每个值映射到指定的权重。如果我没记错的话(在这种情况下我很乐意纠正),它会通过将每个案例的对数似然乘以指定的权重来做到这一点。

这是一个例子。

library(nnet)

set.seed(1)

x <- rnor_lenm(100)
y <- rep_len(c("A", "B", "C"), 100)
wts <- runif(100)

multinom(y ~ x, weights = wts)

输出:

# weights:  9 (4 variable)
initial  value 56.891315 
final  value 56.637716 
converged
Call:
multinom(formula = y ~ x, weights = wts)

Coefficients:
  (Intercept)          x
B -0.09823625 -0.1779220
C -0.06923607 -0.1951617

Residual Deviance: 113.2754 
AIC: 121.2754    

那是你要找的吗?

于 2015-08-04T10:32:38.813 回答