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