es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Paquete de obstáculo de no invertibilidad en R

Para un proyecto estoy analizando datos con una solución de esquina en 0. Tengo disponible una variable de respuesta y alrededor de 20 variables independientes. Para modelar este tipo de datos me gustaría utilizar modelos de regresión censurada, incluyendo: Tobit, Truncated Normal Hurdle/Cragg y Tobit Type II. Todos estos se implementan fácilmente con el paquete ‘mhurdle’ en R.

Sin embargo, al implementar el modelo de Truncated Normal Hurdle/Cragg me he dado cuenta de que ocurre algo extraño. Específicamente, cuando las especificaciones para la selección de bienes y la falta de mecanismos de recursos se vuelven más similares, me encuentro con el siguiente error:

system is computationally singular: reciprocal condition number = 1.13973e-18

Por ejemplo, la siguiente especificación funciona bien:

model_good <- mhurdle(y ~ x1 + x2 + ... + x20| x1 + x2 |, 0, data = X, dist = "n")

Mientras que una especificación que incluye más predictores de la primera parte (consumo deseado) en la segunda parte (selección de bienes) presenta problemas:

model_error <- mhurdle(y ~ x1 + x2 + ... + x20| x1 + x2 + ... x15 |, 0, data = X, dist = "n")

He verificado la invertibilidad de mis datos y eso no parece ser el problema. Ninguna de las correlaciones pareadas entre las 20 características que utilizo supera 0.15, y la matriz (X’X) tiene rango completo.

Ahora me pregunto, ¿es el hecho de que el modelo arroje un error cuando las especificaciones de las dos partes se vuelven similares inherente a la forma en que funciona el modelo, o es un error del paquete?

EDITADO:

También estoy teniendo problemas al estimar los ejemplos proporcionados en la documentación (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.204.8204&rep=rep1&type=pdf), por ejemplo:

model12i <- mhurdle(durable ~ age + quant | age + quant | age + quant, tobin, dist = "n", method = "bfgs")

También muestra un problema de singularidad:

Lapack routine dgesv: system is exactly singular: U[1,1] = 0
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Error del modelo Truncated Normal Hurdle/Cragg en R

    Como experto en TI especializado en R, manejo de errores, paquetes de R y inversión de matrices, me encontré con un problema al trabajar con modelos de regresión censurada. En mi proyecto, necesitaba analizar datos con una solución de esquina en 0 con una variable de respuesta y y alrededor de 20 variables independientes. Para modelar este tipo de datos, decidí utilizar modelos de regresión censurada como Tobit, Truncated Normal Hurdle/Cragg y Tobit Type II, todos los cuales se implementan fácilmente con el paquete ‘mhurdle’ en R.

    Sin embargo, al implementar el modelo Truncated Normal Hurdle/Cragg, noté un error extraño. Específicamente, cuando las especificaciones para la selección de bienes y la falta de mecanismos de recursos se volvieron más similares, empecé a encontrar el siguiente error:

    system is computationally singular: reciprocal condition number = 1.13973e-18
    

    Por ejemplo, la siguiente especificación funciona bien:

    model_good <- mhurdle(y ~ x1 + x2 + ... + x20| x1 + x2 |, 0, data = X, dist = "n")
    

    Sin embargo, una especificación que incluye más de los predictores de la primera parte (consumo deseado) en la segunda parte (selección de bienes) encuentra problemas:

    model_error <- mhurdle(y ~ x1 + x2 + ... + x20| x1 + x2 + ... x15 |, 0, data = X, dist = "n")
    

    Verifiqué la invertibilidad de mis datos y ese parece no ser el problema. Ninguna de las correlaciones por pares entre las 20 características que utilicé superaba 0.15, y la matriz (X’X) tiene rango completo.

    Ahora me pregunto si el hecho de que el modelo arroje un error cuando las especificaciones de las dos partes se vuelven similares es inherente a la forma en que funciona el modelo, o si es un error del paquete.

    También encontré problemas al estimar los ejemplos proporcionados en la documentación del paquete ‘mhurdle’ (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.204.8204&rep=rep1&type=pdf), por ejemplo:

    model12i <- mhurdle(durable ~ age + quant | age + quant | age + quant, tobin, dist = "n", method = "bfgs")
    

    Este ejemplo también presenta un problema de singularidad:

    Lapack routine dgesv: system is exactly singular: U[1,1] = 0
    

    Por lo tanto, parece que el problema podría ser causado por el paquete en lugar del modelo en sí.

Comments are closed.