La función R multinom() se detiene después de 100 iteraciones, ¿cuál es el motivo?

Tengo una cantidad relativamente grande de datos, tiene 80 columnas y aproximadamente 220 000 filas. Cuando intento usar nnet's multinom() función para realizar una regresión logística multinomial en datos multicategoriales no ordenados, la función parece detenerse después de 100 iteraciones:

# weights:  322 (270 variable)
initial  value 807521.728781 
iter  10 value 191523.940813
iter  20 value 163085.728004
iter  30 value 146262.378340
iter  40 value 139398.851395
iter  50 value 134606.101687
iter  60 value 133588.725646
iter  70 value 133253.102380
iter  80 value 133129.328709
iter  90 value 133098.717752
iter 100 value 133095.661773
final  value 133095.661773 
stopped after 100 iterations

También he intentado usar VGAM's vglm() sin embargo me da el siguiente error:

Error in outer(X, Y, FUN, ...) : allocMatrix: too many elements specified

Una posible explicación es que mi pequeña macbook air no está preparada para el trabajo, sin embargo, me preguntaba, ¿qué otras alternativas tengo para realizar una regresión logística multinomial en los conjuntos de datos que tengo actualmente?

preguntado el 27 de julio de 12 a las 17:07

2 Respuestas

Si miras la documentación de multinom(), verás que incluye un parámetro ... que es para "argumentos adicionales para nnet".

Luego, mirando la documentación para nnet, verá el siguiente uso:

nnet(x, y, weights, size, Wts, mask,
linout = FALSE, entropy = FALSE, softmax = FALSE,
censored = FALSE, skip = FALSE, rang = 0.7, decay = 0,
maxit = 100, Hess = FALSE, trace = TRUE, MaxNWts = 1000,
abstol = 1.0e-4, reltol = 1.0e-8, ...)

El problema con el que te encuentras es que el valor predeterminado maxit es 100. Intenta agregar maxit=1000 (o lo que quieras que sea) a tu multinom() parámetros No he probado esto (necesitaría que incluyera datos de muestra reproducibles), pero creo que funcionará.

Respondido 27 Jul 12, 17:07

Si miras la ayuda para ?multinom dice que llama nnet y ... son parámetros adicionales para nnet. Uno de estos parámetros es maxit que por defecto es 100. Agregue eso como un parámetro con cualquiera que sean sus iteraciones máximas.

También puedes echar un vistazo a esta pregunta con respecto a la vglm error.

Respondido 27 Jul 12, 17:07

@Edward Su respuesta es más completa, por lo que le sugiero que la recupere. - Andrie

@Edward Siéntase libre de devolver su respuesta o editar la mía en consecuencia. ¡El tuyo era mucho más completo! - Justin

@Andrie Recuperó mi respuesta. Gracias - Edward

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.