[[PageOutline]] = Plan de Integración de Sistemas de Estimación = == Objetivos == Las clases de modelos a los que nos enfrentamos van creciendo en volumen y complejidad a cada día que pasa y es necesario diseñar un plan de desarrollo que afronte los problemas que esto conlleva a medio y largo plazo. Lo prmero es determinar, aunque sea de una forma bastante abstracta por ahora, la clase de modelos que queremos ser capaces de manejar, y qué es lo que podremos hacer con ellos una vez construidos. Una vez delimitados estos objetivos habrá que ver qué parte de ellos puede ser acometida como una extensión de la tecnología existente sin romper la compatibilidad hacia atrás y cuáles deben ser postergados a un nuevo sistema que incluiría todo lo anterior mediante algún mecanismo de conversión. === La clase de modelos === El simulador bayesiano BSR supone un gran avance sobre toda la tecnología anterior pero parte de una estructura básica de la clase de modelos que no es posible saltarse: debe haber un bloque lineal principal de regresión con residuos normales. Ciertamente en una gran parte, por no decir en la gran mayoría de los casos, la hipótesis de normalidad es perfectamente asumible, pero cada vez nos encontramos con más casos en los que no es así, particularmente cuando el output es booleano, pero también cuando es discreto con valores no muy altos, y las transformaciones de Box-Cox no son una aproximación razonable. En este sentido, la forma ás natural de extensión de la clase de modelos es partir de la [http://en.wikipedia.org/wiki/Generalized_linear_model regresión lineal generalizada] como base sobre la que añadir el resto de características que se precisan para la modelación de problemas reales. Lo primero que habría que hacer sería enumerar y describir todas esas características para poder atisbar la clase general de modelos que queremos ser capaces de estimar: * Distribución de los residuos * caso normal * caso generalizado ([http://en.wikipedia.org/wiki/Generalized_linear_model#Probability_distribution overdispersed exponential family]). Enumero los casos que han sido solicitados alguna vez * regresión cualitativa * regresión booleana * logit * probit * binomial * etc. * regresión multinomial * regresión discreta * regresión de Poisson * regresión geométrica * etc. * distribuciones arbitrarias: definidas por el usuario, bien entre una gama parametrizable bien implementando la log-densidad. * distribuciones distintas en cada segmento mediante bloques de Gibbs * Matriz de Varianzas-Covarianzas del ruido * Diagonal: Regresión ponderada o heterocedástica * ARIMA: * Caso normal * Caso generalizado * Modelos multivariantes * Tratamiento de omitidos en los datos (input y output) * Caso normal * Caso generalizado * Filtros no lineales * paramétricos * no paramétricos * Inclusión de restricciones para todas las variables del problema: * de igualdad * de punto fijo * lineal * no lineal * de desigualdad * de dominio * lineal * no lineal * Información a priori para todas las variables del problema: * escalar * normal * chi-inverse * otros * vectorial * modelos jerárquicos (paralelización) * redes bayesianas === Metodología === Además de la definición de la clase de modelos hay que planificar también la metodología de estimación, diagnosis, mantenimiento y explotación, y hacerlo de la forma más general posible: * Chequeo previo: Comprobación de que el diseño del modelo es coherente con la clase establecida * Ausencia de colinealidades * Existencia de soluciones factibles * Compatibilidad de la región factible con la verosimilitud del modelo * Estimación: * Simulación MCMC: Generación de cadenas de Markov de Montecarlo. * División en bloques de Gibbs: Debe haber un proceso maestro (master) que se encargue de disparar la generación de cada bloque según una estrategia dada (secuencial, aleatoria o arbitraria) * Generación dentro de cada bloque tipo Metropolis-Hastings y derivados mediante BysSampler, basado únicamente en el logaritmo, salvo una constante, de la función de densidad condicionada por el resto de bloques. * Continuación (resume) de una cadena en una nueva sesión: Esta es una característica tan importante como poco usada de BSR que debe ser dada a conocer, pues es de gran utilidad para restablecerse de una caída del sistema, o bien si se observa que hay pocoa muestra o no ha convergido todavía, sin tener que volver a empezar desde cero. * Estimación parcial: * Fijación de parámetros * Recarga de estimaciones anteriores * Implementación de las restricciones de igualdad * Estimación máximo probable (MLE): Maximizar la verosimilitud conjunta condicionada por la información a priori y las restricciones de igualdad y desigualdad lineales y no lineales. Hasta ahora sólo se ha intentado usar en modelos mono-bloque y en el bloque lineal de BSR pero habría que estudiar si el esquema de Gibbs en simulación es exportable a la optimización, pues en realidad se trata de algoritmos que tienen mucho en común. Podría verse como un método de optmización iterativa en el que en cada paso se encuentra el óptimo de un bloque condicionado al resto, hasta que se alcanza un punto estacionario o se supera algún otro criterio de parada. La búsqueda de un punto óptimo puede ser útil de dos formas distintas: * Como paso previo a la simulación MCMC desde un punto inicial que acelere la convergencia, lo cual puede ahorrar muchos recursos en modelos grandes y complejos. * Como objetivo en sí mismo en los casos en los que tenga sentido, es decir, cuando la distribución asintótica se sabe que es por construcción similar a la distribución a posteriori, pero resulte notablemente más rápida. En este caso es posible generar muestras independientes de esa distribución asintótica de forma que la salida sea análoga a la de la simulación MCMC para poder ser utilizada por los métodos de diagnosis e inferencia baysianas. * Diagnosis: * Chequeo de convergencia * Raftery: Autocorrelación de la muestra * Gelman: Muestras paralelas * [wiki:OfficialTolArchiveNetworkBysSamplerPostProccess Postprocesado de cadenas] basado en la verosimilitud que debe ser almacenada junto con la cadena * Chequeo de las hipótesis del modelo * Distribución de los parámetros * Distribución de los residuos * Inferencia bayesiana: hay que potenciar el uso de la inferencia bayesiana, pues de los resultados de BSR se está usando sólo la media, lo cual es un desperdicio. * Cálculo de estadísticos no lineales mediante MCMC * Decisión bayesiana == Plan a corto-medio plazo == Prácticamente todos los objetivos planteados son extensibles al BSR actual a excepción de la distribución de los residuos que debe seguir siendo normal, pues el diseño está basado en esa hipótesis y no es planteable la generalización. El núcleo de BSR puede ser extendido pero lo que parece más complicado es extender la API de definición basada en el parser. Habría que establecer un sistema de comunicación directa entre MMS y BSR que ataque directamente la estructura de datos manejada. Esta estructura Bsrde hecho debería ser replanteada como una clase para poder crecer y extenderse de una forma más facil de mantener. Para asegurar la compatibilidad con el estado actual bastaría con tener un método que cree la instancia a parit == Plan a medio-largo plazo == A largo plazo sin embargo está claro que hay que afrontar otras distribuciones distintas de la normal y no parece razonable reescribir toda la parafernalia de características adicionales sobre cada clase de modelos. Ahora mismo tenemos la base para estimar modelos generalizados pero de un solo bloque, es decir, que no se puede introducir jerarquías ni integrar con estructuras ARIMA u omitidos. Tan sólo admiten información a priori escalar, ponderación de datos y restricciones de desigualdad lineal, por lo que está bastate claro que más temprano que tarde resultará inevitable afrontarlo.