#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
Milestone: | → Release 0.6 |
---|
comment:3 Changed 13 years ago by
Milestone: | Next → Dev.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
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
(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
comment:7 Changed 13 years ago by
comment:8 Changed 13 years ago by
comment:10 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
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" ]]);
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.