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

Opened 14 years ago

Closed 14 years ago

#578 closed doubt (fixed)

Tratamiento de parámetros de datos omitidos (missings)

Reported by: imendez Owned by: Pedro Gea
Priority: blocker Milestone: Release 0.6
Component: Parameters Keywords:
Cc:

Description

Hola, tras crear un modelo no encuentro los parámetros de omitidos. Esto me impide poder tratarlos antes de estimar: definir un prior, una combinación, una equivalencia, etc.
Si creo una estimación con ese modelo tampoco aparecen, pero si ejecuto la estimación sí están.
¿Se puede forzar de alguna manera para que cree los parámetros de omitidos sin necesidad de ejecutar la estimación? De hecho, en mi opinión deberían poder crearse antes de crear la propia estimación, pues los parámetros pertenecen al modelo.

He visto el ticket 126 (https://trac.localbayes.es/mms/ticket/126) que creo que puede estar relacionado con esto, pero no estoy seguro. Aprovecho para solicitar más información sobre los MMS::@BaseParameterMissing, pues no sé muy bien para qué sirven.

Gracias.
Un saludo.

Change History (3)

comment:1 Changed 14 years ago by Pedro Gea

Milestone: Release 0.6

comment:2 Changed 14 years ago by Pedro Gea

Los parámetros de omitido (MMS::@ParameterMissing) son aquellos parámetros que se producen por la presencia de valores desconocidos en las variables del modelo (MMS::@MVariable) ya sean actuando como outputs o como inputs.

Un parámetro de omitido se puede crear, aun cuando la m-variable disponga de datos, si es que el valor no es adecuado, se desconfía de él, o simplemente desea estimarse, mediante una expresión como:

MMS::@ParameterMissing parameter = <mVariable>::CreateParameterMissing([[
  Date _.position = ...; // obligatorio
  Real _.initialValue = ...; // opcional
  NameBlock _.prior = [[ // opcional
    Real _.mean = ...;
    Real _.sigma = ...
  ]];
  NameBlock _.constraint = [[ // opcional
    Real _.inferiorValue = ...;
    Real _.superiorValue = ...
  ]]
]]);

Sin embargo es bastante común que el usuario que diseña el modelo no preste atención a la necesidad de definir los parámetros de omitido, esperando que se definan solos.
Este es el papel que desempeña el base-parámetros de omitidos que ha de verse como una factoría de parámetros de omitido.

Toda m-variable dispone de un base-parámetro de omitido (con unos valores por defecto si no se indica lo contrario) para construir los parámetros de omitido que sean necesarios para poder llevar a cabo la estimación.

El base-parámetro por defecto se puede modificar después de crear la m-variable mediante sus métodos o crearse añadiendo un argumento _.baseParameterMissing en la definición de la m-variable (véase #577).

La construcción de los parámetros (por necesidad) se hace en la estimación mediante la llamada al método: <mVariable>::BuildParametersMissing(first, last) siendo estas fechas (first, last) las que determinan el intervalo donde buscar omitidos. Nótese que en el caso de inputs con función de transferencia se consideran los retardos convenientemente.

El método BuildParametersMissing de la m-variable crea un parámetro de omitido usando como plantilla el base-parámetro para cada fecha donde encuentre un valor desconocido.

Por tanto, el base-parámetro de omitido (MMS::@BaseParameterMissing) no es más que una factoría de parámetros de omitido o digamos, un parámetro de omitido en potencia o un meta-parámetro de omitido con el valor del atributo _.position sin definir.

Como creador de parámetros el base-parámetro dispone de un método al que llamar indicando ese atributo sin definir:

MMS::@ParameterMissing parameter = 
  <baseParameterMissing>::CreateParameterMissing(position);

El método BuildParametersMissing no hace más que llamar convenientemente a este método del base-parámetro.

Una ventaja de disponer de base-parámetro es que podemos establecer una información a priori (valor inicial, restricción de dominio y distribución prior) para todos los parámetros de omitido que se generen automáticamente.
Aquí es fácil imaginar otros base-parámetros o meta-parámetros en general que sean capaces de establecer una información a priori más compleja que el mismo valor para todos. Eso es algo que se intentará introducir en futuras versiones de MMS dentro del marco de la creación de metaobjetos.

Nótese que los parámetros creados manualmente no se crearán automáticamente.

Nótese que donde hablamos de fechas (Date) al trabajar con series temporales serían pares ordenados fila-columna (Matrix[1x2]) al trabajar con matrices.

Respecto a la creación de m-combinaciones, m-equivalencias, etc. con parámetros de omitido, no estoy convencido de que MMS y sus estimadores sean capaces de resolver todos los casos que se planteen.

El tique #126 (por cierto puedes citar un tique en un comentario simplemente anteponiendo la almohadilla al número, el trac se encarga de hacer el enlace) es uno de los que motivó la creación de los base-parámetros de omitido.

comment:3 Changed 14 years ago by Pedro Gea

Resolution: fixed
Status: newclosed
Type: defectdoubt
Note: See TracTickets for help on using tickets.