[[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 má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: * '''Diseño por bloques de variables''': El mayor salto cualitativo de BSR sobre otros intentos anteriores de simulación bayesiana es el diseño por bloques de Gibbs. * '''Diseño por segmentos de regresión''': Está claro que uno de los grandes logros de BSR es la capacidad para definir diferentes segmentos de regresión, cada uno de los cuales tiene definida una distribución de probabilidad propia independiente de la del resto de segmentos. Un segmento de regresión puede estar ligado a un conjunto de datos de contraste, a una relación entre variables latentes y primarias o a información a priori sobre cualquiera de ellas. * '''Distribución de un segmento''': En BSR hasta ahora sólo es posible definir distribuciones normales para cada uno de los segmentos pero eso podría cambiar en un futuro. * 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''': aunque esto forma parte de la distribución es conveniente tratarla aparte pues la teoría de regresión suele funcionar así, primero se parte del modelo incorrelado y homocedástico y luego se aplica la covarianza. * 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: (éstas ya están en BSR) [[BR]][[LatexEquation( \alpha_i = h_i )]] * [wiki:TolDocSimulacionBaysianaRestriccionesIgualdadLineal lineal]: [[BR]][[LatexEquation( H \alpha = h )]] * [wiki:TolDocSimulacionBaysianaRestriccionesIgualdadNoLineal no lineal]: [[BR]] [[LatexEquation( H\left( \alpha \right) = 0 )]] * de desigualdad * de dominio: [[BR]][[LatexEquation( l_i \le \alpha_i \le u_i )]] * lineal: [[BR]][[LatexEquation( G \alpha = g )]] * no lineal: [[BR]][[LatexEquation( G \left( \alpha \right) = 0 )]] * '''Información a priori''' para todas las variables del problema: * escalar * normal * chi-inverse * otros * vectorial * variables no independientes * modelos jerárquicos (paralelización) * redes bayesianas ==== Otros tipos de modelos ==== Todo lo que se ha hablado hasta ahora pertenece a un tipo de modelos muy concreto: regresión univariante, pero hay muchas más clases de modelos que no siempre podrían verse como una extensión de la misma y que habría que ir tratando de ver cómo se pueden introducir en la empresa: * Regresión multivariante: Se ha hecho alguna que otra cosa más o menos ad-hoc, como el paquete [wiki:OfficialTolArchiveNetworkBysVecLinReg BysVecLinReg] pero habría que ir pensando en algo más potente y versátil. * [http://en.wikipedia.org/wiki/Partial_least_squares_regression Partial Least Squares Regression]: es particularmente apropiado cuando la matriz de predictores tiene más variables que observaciones y cuando hay multicolinealidad o altas correlaciones múltiples. * Modelos en el espacio de estados: Esto es un enfoque totalmente nuevo y al margen de todo lo que significa regresión. === 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. * 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 * Ocultación opcional de bloques: A veces un bloque de parámetros puede resultar muy poco importante para el analista y puede que estorbe más que otra cosa. Por ejemplo, en modelos ARIMA con muchos datos y estacionalidad alta, como la estacionalidad anual de una serie diaria que es de orden 365, da lugar a demasiados parámetros que no aportan gran cosa y que se pueden calcular o generar nuevamente cuando se necesiten. En estos casos podría ser útil ocultar estos parámetros en la salida. * 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 Bsr de 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 partir del struct actual. == 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 o de homogenidad simple, ponderación de datos y restricciones de desigualdad lineal, por lo que está bastate claro que más temprano que tarde resultará inevitable afrontarlo. El esquema de simulación más flexible para modelos tan generales sería un simulador de tipo [wiki:OfficialTolArchiveNetworkMWG Metropolis within Gibbs]