Opened 13 years ago
Closed 13 years ago
#1447 closed doubt (fixed)
Error de CholeskiFactor
Reported by: | imiranda | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | Mantainance |
Component: | BysMCMC | Version: | 3.1 |
Severity: | normal | Keywords: | |
Cc: | fortra.vivbra@… |
Description (last modified by )
Hola,
nos ha pasado en el proyecto de un cliente que al lanzar un conjunto de outputs (casi 200) para ser estimados, llega uno en el que aparece el error de CholeskiFactor y el proceso se para. Seguidamente, lanzamos solamente ese output y no da error. Volvemos a lanzar el proceso entero con todos los outputs y esta vez, termina sin problemas.
Mis dudas son:
- no acabo de entender la aleatoriedad de este error. ¿Se trata del valor inicial donde comienzan las cadenas?
- Me gustaría saber si existe algún mecanismo de control para esto; si existe alguna forma de garantizar que el proceso no se va a parar.
Pensando que en el cliente vamos a tener que lanzar 20.000 outputs, este tipo de errores "aleatorios" nos hacen incontrolables los procesos.
Muchas gracias!
Change History (3)
comment:1 Changed 13 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 13 years ago by
comment:3 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
El 100% de las veces que he visto ese problema el modelo estaba mal diseñado. Si Cholesky da error es porque hay multicolinealidad, es decir, la matriz de regresión estandarizada conjunta del problema es singular o está demasiado cerca de serlo.
Hay un caso típico de modelo mal diseñado:
- matriz de input mal condicionada
- nodos latentes con varianza libre
Eso es una combinación letal pues lleva con alta probabilidad a la multicolinealidad.
En cuanto a la aleatoriedad de la ocurrencia del error hay que tener en cuenta que es algo inherente a un simulador bayesiano pues lo que está haciendo es un paseo aleatorio así que unas veces puede ir por unos caminos y otras por otros, esa es la gracia del asunto. Cuando te mueves cerca de autovalores nulos el algoritmo de Cholesky puede resistir hasta cierto punto por lo que en realidad casi es peor cuando no salta el error, porque tienes un modelo básicamente inviable y no te das cuenta.
Hola, quisiera comentar este ticket porque a este problema ya me he enfrentado varias veces y lo he resuelto.
Por lo que Inés comenta, me da la sensación que la combinación lineal viene por la entrada de masiva de AIAs en el modelo. Estaría bien hacer una pequeña prueba para verlo, yo te paso un código Inés y lo vemos.
Aprovecho para comentar aquí, que la dificultad de montar un proyecto masivo recae casi más en la causística de todos los casos a estudiar y en la gestión de la información que en la propia modelación. Muchas veces unido esto a mensajes de error parecidos a otros que ya conocemos, nos hace creer que ciertos errores son aleatorios pero la verdad es que no lo son, y casi siempre son errores nuestros a la hora de definir el modelo.
Me gustaría animar a todos los jefes de proyecto que se encuentren en situaciones parecidas, que pregunten a aquellos que si nos hemos enfrentado a estos problemas, porque si no nos transmitimos el conocimiento trabajamos mucho más despacio y podemos generar situaciones muy problemáticas.