close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 15 and Version 16 of TolDocModelPlanIntegracionSistemasEstimacion


Ignore:
Timestamp:
Jun 21, 2011, 6:56:09 PM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TolDocModelPlanIntegracionSistemasEstimacion

    v15 v16  
    161161y BSR que ataque directamente la estructura de datos manejada.
    162162
    163 Esta estructura Bsrde hecho debería ser replanteada como una clase para poder crecer y extenderse
     163Esta estructura Bsr de hecho debería ser replanteada como una clase para poder crecer y extenderse
    164164de una forma más facil de mantener. Para asegurar la compatibilidad con el estado actual bastaría
    165 con tener un método que cree la instancia a parit
     165con tener un método que cree la instancia a partir del struct actual.
    166166
    167167== Plan a medio-largo plazo ==
     
    177177El esquema de simulación más flexible para modelos tan generales sería un ''Metropolis within Gibbs''
    178178
    179  * ''División en bloques de Gibbs'': Debe haber un proceso maestro (master) que se encargue de disparar
     179 * ''División en bloques de Gibbs'': Debe haber un '''proceso maestro''' (master) que se encargue de disparar
    180180   la generación de cada bloque según una estrategia dada (secuencial, aleatoria o arbitraria). Al
    181181   contrario de lo que ocurre con el actual BSR, el proceso maestro no necesita conocer la
     
    184184   de forma condicionada al resto de bloques. Es necesario crear un protocolo básico de
    185185   condicionamiento entre bloques que sea totalmente general y no implique que ni el master
    186    ni los propios bloques tengan que conocer los intríngulis de los demás. Este protocolo formaría
    187    parte de la definición del master y tendría la forma de una tabla con la estructura básica de
    188    enlace entre variables, que en cada fila incluiría estos campos: [[BR]]
     186   ni los propios bloques tengan que conocer los intríngulis de los demás, y sea al mismo tiempo
     187   suficientemente eficaz. Hay que tener en cuenta que la acción a llevar a cabo para condicionar
     188   puede suponer desde modificar simplemente un valor escalar (como la sigma de un bloque de
     189   regresión lineal normal), hasta modificar total o parcialmente un valor vectorial o matricial,
     190   (como ocurre en el caso de los omitidos que deben trasladarse a un subconjunto arbitrariamente
     191   salteado de entre las celdas de la matriz de input o de output). Por este motivo no resulta
     192   ni mucho menos trivial condicionar de una forma genérica y eficiente.
     193   Posiblemente sea necesaria una función C++ a la que se le pase el miembro a modificar, los nuevos
     194   valores y una serie de argumentos opcionales para especificar modificaciones parciales, para
     195   que la acción se ejecute con la celeridad debida.
     196{{{
     197#!java
     198  Real ChangeValues({Real|Matrix|VMatrix} store, {Real|Matrix|VMatrix} newValues [, Set optArgs=Empty] )
     199}}}
     200   La función {{{ChangeValues}}} será llamada desde el master para establecer, total o parcialmente según
     201   se indique en los argumentos opcionales {{{optArgs}}}, el nuevo valor o vector de valores {{{newValues}}}
     202   de cierto miembro de un bloque que será el dado por el argumento {{{store}}}.
     203   En la definición del master, el protocolo tendría la forma de una tabla con la estructura básica de
     204   condicionamiento, que en cada fila incluiría la información de condicionamiento de una variable o
     205   grupo de variables: [[BR]]
    189206{{{
    190   id_cnr_blk : índice del bloque condicionador
    191   id_cnr_var : índice de la variable condionadora
    192   id_cnd_blk : índice del bloque condicionado
    193   id_cnd_var : índice de la variable condionada
     207  Real cnr_blk : Índice del bloque condicionador
     208  Set  cnr_idx : Índices de los parámetros del grupo dentro del bloque condicionador
     209  Real cnd_blk : Índice del bloque condicionado
     210  Text cnd_mbr : Nombre del miembro del bloque condicionado que se ha de modificar con {{{ChangeValues}}}
     211  Set  cnd_opt : Argumentos opcionales para pasar como {{{optArgs}}} a {{{ChangeValues}}}
    194212}}}
    195    Cada vez que se genera una muestra del i-ésimo bloque se debe modificar los valores correspondientes
    196    a los enlaces para los que id_cnr_blk = i
    197  * Generación dentro de cada bloque tipo ''Metropolis-Hastings'' y derivados mediante BysSampler o
     213   Cada vez que se genera una muestra del i-ésimo bloque hay que modificar los valores correspondientes
     214   a los enlaces para los que {{{cnr_blk = i}}}. Primero habría que copiar el sub-vector del bloque recién
     215   generado en la posición correspondiente dentro del vector conjunto, que será el que se almacene en
     216   el disco como cadena MCMC. Luego habría que llevar a cabo el condicionamiento de cada uno de los bloques
     217   afectados llamando a {{{ChangeValues}}}.
     218 * Generación dentro de cada bloque tipo ''Metropolis-Hastings'' y derivados mediante {{{BysSampler}}} o
    198219   cualquier otra metodología alternativa con tal cumpla una API mínima, pero siempre basado únicamente
    199220   en el logaritmo, salvo una constante, de la función de densidad condicionada por el resto de bloques.
    200 
     221   La parte más complicada a la hora de aplicar el condicionamiento es la que se refiere a la información
     222   a priori y restricciones que afectan a variables de distintos bloques. Cada bloque dispondrá de un método
     223   que devolverá un listado de los nombres de los miembros susceptibles de ser condicionados [[BR]]
     224{{{
     225#!java
     226  Set ConditionableList(Real void)
     227}}}
     228