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 13 years ago

Last modified 13 years ago

#645 closed enhancement (fixed)

Visualización de parámetros de varios submodelos en forma de tabla

Reported by: imendez Owned by: Pedro Gea
Priority: major Milestone: Dev.1 Diagnosis
Component: Results Keywords:
Cc:

Description

Hola, al visualizar los parámetros de un modelo con más de un submodelo sería muy útil poder ver los distintos inputs en las filas y los valores (e.g. media y sigma) de cada submodelo en diferentes columnas, para poder compararlos.

Además, la columna inicial que contiene el nombre completo del input podría desagregarse en varias columnas que contuvieran los diferentes componentes del nombre (que creo que van separados por doble underscore): submodelo, explicative term, tipo de parámetro (Linear, ARIMABlock, Sigma2...) y grado del polinomio.

Esto facilitaría mucho la posterior exportación a Excel (u otra hoja de cálculo) para su análisis.

Un saludo.

Change History (11)

comment:1 Changed 14 years ago by Pedro Gea

Milestone: Release 0.6

Quizá el problema en mi opinión es que tenga que usarse otro software para analizar una tabla.

Es cierto, sin embargo, que debería poder manejarse con más facilidad la información relativa a los parámetros y poder obtener fácilmente una tabla con la información por columnas que sugieres.

comment:2 Changed 13 years ago by Pedro Gea

sensitive: 0

Véase #469

comment:3 Changed 13 years ago by Pedro Gea

Milestone: NextDev.1 Diagnosis

Véase también #497.
Se sugiere usar las instancias contenidas en: <estimation>::GetModel.Results(?)::GetParameters(?)

comment:4 Changed 13 years ago by atorre

Subo una función que guarda en un archivo plano los parámetros de una estimación. Además de la información a posteriori incluye la información a priori (no de jerarquías). También guarda los atributos de la estimación. Sería ideal obtener esta visión de los parámetros directamente desde el interfaz tal y como se solicita en el ticket para una selección de estimaciones.

Text MMS_Est_Result_File(Text estId, Text pathStore, Text sufix)
{ pathStore + estId +"."+ sufix };

Real MMS_Est_Result_Param_Store(NameBlock est, Text pathStore)
{
  Text estId     = est::GetIdentifier(?);
  Text fileParam = MMS_Est_Result_File(estId, pathStore, "param");

  Text estName   = est::GetName(?);
  Text estVers   = est::GetVersion(?);
  Set  estAtb    = est::GetAttributes(?);

  Set columns = SetOfText(estName, estVers) <<
    estAtb;

  // parameters
  Set paramSet = est::GetParameters(?);
  NameBlock model = est::GetModel(1);
  Set param2Spool = EvalSet(paramSet, Set(Anything param)
  {
    Text name = Name(param);
    Set infoParamEst = If(Grammar(param) == "Real", [[ param, 0 ]],
      [[ param::GetMean(?), param::GetSigma(?) ]]);
    NameBlock parDef = model::GetParameter(name);
    Set spec = parDef::GetSpecification(?);
    Real indexPrior = FindIndexByName(spec, "Prior.") ;
    Real indexConstraint = FindIndexByName(spec, "Constraint.");
    Set spec_values = [[
      spec["InitialValue"], spec["IsFixed"], 
      If(ObjectExist("Real", "spec[\"Prior.\"][\"Mean\"]"),
        spec["Prior."]["Mean"], ""), 
      If(ObjectExist("Real", "spec[\"Prior.\"][\"Sigma\"]"), 
         spec["Prior."]["Sigma"], ""),
      If(ObjectExist("Real", "spec[\"Prior.\"][\"IsActive\"]"), 
         spec["Prior."]["IsActive"],""),       

      If(ObjectExist("Real", "spec[\"Constraint.\"][\"InferiorValue\"]"), 
        spec["Constraint."]["InferiorValue"], ""),       
      If(ObjectExist("Real", "spec[\"Constraint.\"][\"SuperiorValue\"]"), 
        spec["Constraint."]["SuperiorValue"],""),       
      If(ObjectExist("Real", "spec[\"Constraint.\"][\"IsActive\"]"), 
        spec["Constraint."]["IsActive"], "")
    ]] ;
//    Text spec_values = nameSetTree(spec);
    columns <<
    Tokenizer(
      Replace(Replace(name,"Sigma2","Sigma2__Sigma2"), "__", "$"),
      "$") <<
    infoParamEst  <<  spec_values
  });

  Set columns.header = EvalSet(columns, Name) <<
    SetOfText("Model2", "Parameter", "Param_Subclass", "Mean", "Sigma",
      "InitialValue", "IsFixed", "Prior.Mean", "Prior.Sigma", "Prior.IsActive",
      "Cons.InferiorValue", "Cons.SuperiorValue", "Cons.IsActive");

  Text header = TxtListItem(columns.header, ";");
  Set BSTFile(param2Spool, fileParam, header);

  FileExist(fileParam)
};

comment:5 Changed 13 years ago by Pedro Gea

(In [3241]) Refs #921, #645
Se introducen métodos en la definición de los parámetros para facilitar el acceso a su información.
Se crean:

  • <parameter>::GetInfo(name) que obtiene la información cuyo nombre se indica
  • <parameter>::GetInfo_Default(name, default) que obtiene la información o devuelve en su defecto el valor indicado.

comment:6 Changed 13 years ago by Pedro Gea

(In [3242]) Refs #921, #645
Se introduce un método en RandVar para el acceso general a estadísticos ::GetStatistic.
Se generaliza la opción de tabular estadísticos sobre los distintos tipos de variable aleatoria de tipo real.

comment:7 Changed 13 years ago by Pedro Gea

(In [3244]) Refs #921, #645
Se incorpora el método para el acceso general a estadísticos ::GetValue.Statistic.
Se incorporan métodos de acceso a la información de los parámetros desde las clases de resultados.

comment:8 Changed 13 years ago by Pedro Gea

(In [3245]) Refs #921, #645
Se crean opciones de menú contextual para el acceso a la información de los parámetros desde las clases de resultados.

comment:9 Changed 13 years ago by Pedro Gea

Véase también #469.

comment:10 Changed 13 years ago by Pedro Gea

Resolution: fixed
Status: newclosed

Se puede obtener información de los parámetros con el método ::GetInfo(name) y ::GetInfo_Default(name, default) que permite obtener un atributo del parámetro o devolver un valor por defecto en caso de que esto no sea posible.

Por ejemplo:

Real <parameter>::GetInfo_Default("Degree", ?);

Véase también el método ::GetInfoTable(list) para obtener un conjunto de información.

Por ejemplo:

Real <parameter>::GetInfoTable([[
  "Name", "Subclass", [["Degree", ?]], "InitialValue"
]]);

comment:11 Changed 13 years ago by Pedro Gea

(In [3246]) Refs #921, #645
Se trasladan las opciones por defecto de InfoTable al módulo de la GUI.
Se corrigen un error.

Note: See TracTickets for help on using tickets.