Opened 14 years ago
Closed 14 years ago
#723 closed task (fixed)
Obtención de los polinomios estimados
Reported by: | jgallardo | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | minor | Milestone: | Release 0.6 |
Component: | Results | Keywords: | |
Cc: |
Description
Hola MMS.
Necesito la extracción de los polinomios ya estimados de los submodelos, esto es combinar la definición de los polinomios (dif, ar, ma) del submodelo y los parámetros estimados; pero no he encontrado el método que lo haga (aunque esto no significa nada). Por si acaso estoy en lo cierto y no existe tal método he creado esta función que a lo mejor puedes aprovechar.
////////////////////////////////////////////////////////////////////////////// Set GetPolyns(NameBlock estim){ ////////////////////////////////////////////////////////////////////////////// Set paramsEstim = estim::GetParameters(?); NameBlock model = estim::GetModel(?); Set paramsModel = model::GetParameters(?); Set paramsModel.use = Select(paramsModel, Real(NameBlock param){ ClassOf(param) == "MMS::@ParameterARIMA" }); Set arModel = Select(paramsModel.use, Real(NameBlock param){ param::GetType(?) == "AR" }); Set maModel = Select(paramsModel.use, Real(NameBlock param){ param::GetType(?) == "MA" }); Set armaModel = {SetOfSet( Set AR = arModel, Set MA = maModel )}; Set submodels = model::GetSubmodels(?); Set bySubmodel = EvalSet(submodels, Set(NameBlock submodel){ Text name = submodel::GetName(?); MMS::@NoiseARIMA noise = submodel::GetNoise(?); Set arimaInitial = noise::GetInitialARIMA(?); Polyn dif = { Set difs = EvalSet(arimaInitial, Polyn(Set reg){ reg["dif"] }); SetProd(difs) }; Set arma = EvalSet(armaModel, Polyn(Set polsModel){ Text nombre = Name(polsModel); Set byPolModel = EvalSet(polsModel, Polyn(NameBlock polModel){ Text namePM = Name(polModel); Real degree = polModel::GetDegree(?); Set estim.tmp = Select(paramsEstim, Real(NameBlock param){ Name(param) == namePM }); NameBlock estim = If(Card(estim.tmp), estim.tmp[1], [[Empty]]); Real avr = estim::GetMean(?); Polyn pol = 1 - avr*B^degree }); Polyn pol = SetProd(byPolModel); Eval("Polyn "+ nombre +" = pol;") }); Set res = [[name, dif]] << arma; Text nombreSM = ToName(name); Eval("Set "+ nombreSM +" = res;") }) }; //////////////////////////////////////////////////////////////////////////////
Abr.
Change History (2)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Component: | Estimation → Results |
---|---|
Milestone: | → Release 0.6 |
Resolution: | → fixed |
Status: | new → closed |
Type: | defect → task |
Note: See
TracTickets for help on using
tickets.
Replying to jgallardo:
Hola de nuevo MMS. Gracias al usuario lmperez tengo la solución:
incomprensiblemente no la vi ayer.
Saludos a toda la comunidad MMS.