wiki:howto/12
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.

El siguiente pseudo-código ilustra como generar un forecast basado en un escenario

NameBlock forecast = ...
NameBlock dataSet = forecast::GetModel(?)::GetDataSet(?);

Text scenarioName = "SCE";

// Incorporamos el escenario al forecast
Real forecast::SetScenarios(forecast::GetScenarios(?)<<[[scenarioName]]);

// -----------------------

// Variable a simular:
Text vName = "....";
NameBlock v = dataSet::GetVariable(?);

// Preparamos los datos nuevos:

Serie data = v::GetData(?);  // Datos originales

Serie dataE = v::GetData.Extended(?) // Datos extendidos con la regla de extensión
Text extRule = v::GetExtensionRule(?) // Regla de extensión
// Manualmente puede extenderse así:
Serie MMS::ExtendSerie_Rule(data, First(dataE), Last(dataE), extRule);

// Usamos los datos extendidos para crear nuestro escenario:
Serie dataMod = dataE * Gaussian(1.0, 0.2, Dating(dataE));

Set scenarioData = { [[
  PutName(vName, dataMod)
]] };

// Creamos el v-scenario:

// Creamos un escenario a la variable con los datos que consideremos:
NameBlock vs = v::CreateVScenario([[
  Text _.name = scenarioName;
  Text _.expression = "Serie scenarioData::"<<v::GetName(?)
]]);
// La serie usada en la previsión será: 
Serie v::GetData_Scenarios([[scenarioName]]);
Serie data >> dataMod; // los datos reales priman sobre el escenario

// -----------------------

// Actualizamos el forecast
Real forecast::Update_Scenarios([[scenarioName]]);
// Hacemos esto cada vez que cambiemos la serie (o series) de "scenarioData"

Last modified 11 years ago Last modified on Jul 11, 2014, 11:25:04 AM