我在 nnet 包中使用 multinom 方法,我需要根据类的比例对它们进行不同的加权。我什至有我的比例。
问题是如何为 multinom 方法指定权重参数?如果我只是指定一个列表,它如何将实际类映射到权重?
我在 nnet 包中使用 multinom 方法,我需要根据类的比例对它们进行不同的加权。我什至有我的比例。
问题是如何为 multinom 方法指定权重参数?如果我只是指定一个列表,它如何将实际类映射到权重?
你不应该根据他们的比例来衡量你的班级;样本量是模型的一部分,不应通过权重进行调整。
在指定权重的主题上,您只需为multinom
的weights
参数提供一个列表,然后将每个值映射到指定的权重。如果我没记错的话(在这种情况下我很乐意纠正),它会通过将每个案例的对数似然乘以指定的权重来做到这一点。
这是一个例子。
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
那是你要找的吗?