Вы не должны весить свои классы в соответствии с их пропорциями; размеры выборки являются частью модели и не должны регулироваться с помощью весов.
По вопросу определения весов вы просто предоставляете список для аргумента 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
Это то, что вы искали?
Я думаю, что nnet не имеет возможности указывать весовые коэффициенты. – MTT