Как указать параметр веса в пакете nnet для метода multinom

Я использую метод multinom в пакете nnet. Мне нужно по-разному взвешивать классы в соответствии с их пропорциями. У меня даже пропорции с собой.

Вопрос в том, как указать параметр веса для метода multinom? Если я просто укажу список, как он сопоставит фактический класс с весами?


person London guy    schedule 11.03.2015    source источник
comment
Я думаю, что в nnet нет возможности указывать веса.   -  person MTT    schedule 12.03.2015


Ответы (1)


Вы не должны взвешивать свои классы в соответствии с их пропорциями; размеры выборки являются частью модели и не должны корректироваться с помощью весов.

Что касается определения весов, вы просто предоставляете список для аргумента weights multinom, который затем сопоставляет каждое значение с указанным весом. Он делает это, если я не ошибаюсь (в этом случае я бы с радостью поправил), умножая логарифмическую вероятность каждого случая на указанный вес.

Вот пример.

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    

Это то, что вы искали?

person Johan Larsson    schedule 04.08.2015