wiki:upgrade/forecasts
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.

Actualización a MMS_0.6

Previsiones

La implementación de las previsiones varía sustancialmente en MMS_0.6. Los cambios son fruto de un conjunto de reuniones y discusiones (véase el acta Reunión sobre previsiones?).

Creación de una previsión

Una previsión en MMS_0.6 está compuesta por:

  • un modelo (MMS::@Model)
  • un conjunto de parámetros estimados (SetOf{Real|MMS::@Real.Random})
  • un conjunto de intervalos de previsión (SetOf{MMS::@FInterval})
  • un conjunto de escenarios de previsión (SetOf{MMS::@FScenario})
  • un conjunto de configuraciones

Código en MMS_0.5

// Se crea el objeto previsión:
Real MMS::CreateForecast([[
  Text _.name = <nombre>;
  @MMS.Estimation _.estimation = estimation;
  @MMS.SettingsEstimate _.settings = [[
    Real _.showTraces = False
  ]] // -> Previsión puntual
]]);
@MMS.Forecast forecast = MMS::GetForecast([[
  estimation::GetModel(?)::GetName(0),
  estimation::GetModel(?)::GetVersion(0), 
  <nombre>
]]);

//Se definen los intervalos de previsión
Real forecast::SetForecastInterval(
  ?,                  // para todos los outputs
  <firstForecast>,    // fecha inicial
  <lastForecast>      // fecha final
);

//Se ejecuta la previsión
Real forecast::Execute(?)

Código en MMS_0.6

MMS::@Forecast forecast = MMS::Container::CreateForecast[ReplaceForecast]([[
  Text _.name =  <nombre>;
  MMS::@Model _.model = <model>;
  MMS::@Estimation _.estimation = <estimation>;
  MMS::@SettingsForecast _.settings = [[
    Text _.mode = <mode>; // Modo de la previsión "Point" o "Sample"
    .....  // Resto de settings compatible con el _.mode de la previsión
    .....  
  ]];
  // Aquí se indica las fechas de comienzo y fin de la previsión, el primer campo expresa el nombre del submodelo al que se le asocian esas fechas. 
  // Se admiten comodines, en el ejemplo "*" significa todos los submodelos, "All*" indicaría todos los submodelos que comiencen con "All".    
  Set _.fIntervals = [[ 
    Set [["*", Date <beginprev>, Date <endprev>]]  
  ]]
]]);

//Se ejecuta la previsión
Real forecast::Execute(?);

Uso de Escenarios

Imaginemos que tenemos variables creadas que están un determinado escenario y queremos que la previsión se realice con ellas:

Anything dataset::CreateVariable([[
  Text _.name = "Input1";
  Text _.scenario = "Escenario1";
  Text _.expression = "Serie Input1;"
]]);

En el ejemplo se ve la variable "Input1" con el Escenario "Escenario1".

Para especificar a la previsión que se ejecute con las variables en ese escenario usaremos:

Real forecast::SetFScenarios([[
  [[ "*", "Escenario1" ]]
]]);

Esto hará que para todos los submodelos (usando el comodín "*") se use el escenario "Escenario1". Si queremos restringir o ampliar los submodelos que usen un escenario dado tendremos que indicarlo convenientemente:

Real forecast::SetFScenarios([[
  [[ "submodelo1", "Escenario1" ]],
  [[ "submodelo2", "Escenario2"  ]],
  .....
]]);
Last modified 14 years ago Last modified on Aug 18, 2010, 3:50:01 PM