﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc
774	Prior de intervalo normalizado versus restricciones deterministas arbitrarias	vdebuen	Pedro Gea	"En muchas ocasiones (ver #643 por ejemplo) me encuentro con modelos en los que hay docenas de variables con restricciones del tipo
{{{
  0.347 <= x <= 0.361
}}}

No digo que no pueda darse el caso de que realmente se tenga que cumplir algo así de forma determinista, pero en todos los casos que me he encontrado lo que se quiere decir realmente es que, por algún motivo, más o menos acertado, el analista cree que el valor debería andar más o menos en ese rango de valores.

Este tipo de información difusa debería entrar como un prior probabilístico y no como algo determinista, a no ser que realmente existan razones de peso que lo justifiquen. Por ejemplo, una variable que indica una proporción debe estar entre 0 y 1 forzosamente, un porcentaje debe estar entre 0 y 100, etc.

La diferencia entre un diseño y otro es sustancial: confundir lo determinista con lo probabilista es de lo más grave que puede hacer un estadístico. Y me atrevo a decir que es una de las causas principales de deterioro de un modelo en producción, pues además de que pone en graves problemas al simulador que se queda con una región factible demasiado estrecha, suele dar lugar a distribuciones ''a posteriori'' prácticamente planas, lo cual es indicador de que la variable correspondiente sólo está introduciendo ruido.

Hace tiempo que intento pregonar este problema pero parece que nadie me hace caso por lo que creo que habría que hacer algo más proactivo  que poco menos que obligue al analista a hacerlo bien.

Para ir eliminando este uso indiscriminado y absurdo, en MMS podría haber una forma de añadir restricciones de este tipo específico en las que el usuario, en lugar de dar directamente la media y la desviación del prior, daría los parámetros de definición del intervalo normalizado
{{{
#!java
//Límite inferior del intervalo 
Real a,
//Límite superior
Real b,
//Probabilidad de estar en el intervalo
Real p
}}}

MMS lo que añadiría es un prior normal con parámetros 
{{{
#!java
//Media del prior normal
Real nu = (a+b)/2;
//Desviación típica del prior normal
Real sigma = (b-nu)/(-DistNormalInv((1-p)/2));
}}}

De hecho se podría dar como una alternativa en la definición de un prior normal. Si fijas la media y la desviación entonces te puede sacar el intervalo del 99% o el que pida el usuario. De esta forma podría configurar dinámicamente hasta encontrar lo más acorde con el conocimiento que realmente se tenga y que a veces no es fácil de parametrizar a bote pronto.

Además de eso, MMS podría detectar ese tipo de restricciones de intervalo para recomendarle al usuario que las cambie por un prior de este tipo. A veces las restricciones aparecen para combinaciones de variables, en lugar de para una variable aislada, pero el problema viene a ser el mismo.

Para la detección lo que hay que buscar es pares de filas proporcionales entre sí lo cual podría implementarse en una nueva función en el paquete {{{MatQuery}}}.

Aunque realmente no es algo que esté bloqueando por completo nada en particular, estoy convencido de que sería una de las cosas que con menos trabajo haria crecer más notablemente la productividad, por lo que le doy la máxima prioridad a este ticket.
"	enhancement	new	blocker	Next	General			
