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.

Ticket #1162: reload_parameters.tol

File reload_parameters.tol, 2.1 KB (added by Pedro Gea, 11 years ago)
Line 
1
2NameBlock est = ...; // objeto estimación
3Text path = ".../YYYY.MM.DD_HH.MM.SS/"; // ruta auxiliar de BSR
4
5Real burnin = est::GetStrategy(?)::GetSetting("mcmc.burnin");
6NameBlock n = (Ois.Load(path<<"master.bsr.recover.oza")[1][1]);
7Set colNames = EvalSet(n::_.colNames, Text (Text t) { PutName(t, t) });
8
9Matrix mcmc = MatReadFile(path<<"master.bsr.mcmc.bbm");
10
11//////////////////////////////////////////////////////////////////////////////
12Anything ObtainParameter(MMS::@Parameter parameter, Set colNames, Matrix mcmc,
13  Text samplerName)
14//////////////////////////////////////////////////////////////////////////////
15{
16  Text identifier = parameter::GetIdentifier(?);
17  // Uso de MEquivalence
18  Text bsrName = If(parameter::HasMEquivalence(?), {
19    MMS::@MEquivalence mEquivalence = parameter::GetMEquivalence(?);
20    If(mEquivalence::IsActive(?), {
21      mEquivalence::GetIdentifier(?)
22    }, {
23      MMS::MMS.Get.Bsr.Name(parameter)
24    })
25  }, {
26     MMS::MMS.Get.Bsr.Name(parameter)
27  });
28  Real idx = FindIndexByName(colNames, bsrName);   
29  If(idx, {
30    // Según sea el tipo de parámetros elegido se crea un tipo u otro
31    // de objeto RandVar::@Real.Random
32    Matrix sample = SubCol(mcmc, [[idx]]);
33    NameBlock realR = RandVar::@Real.Sample::Sampler(sample, samplerName);
34    MMS::PutLocalName(identifier, realR)
35  }, {
36    Case(parameter::IsFixed(?), {
37      // Los parámetros Sigma2 fijos no se encuentran.
38      MMS::PutLocalName(identifier, parameter::GetInitialValue(?))
39    }, parameter::GetSubclass(?)=="Sigma2", {
40      // A esta situación se llegaría
41      MMS::PutLocalName(identifier, Real 1)
42    }, True, {
43      Real MMS::MMS.Warning("No se ha encontrado el parámetro:\n"<<identifier
44        <<"\nusando el nombre: '"<<bsrName<<"'.",
45        "@ResultsAdapterBSR::ObtainParameter");
46      MMS::PutLocalName(identifier, Real ?)
47    })
48  })
49};
50
51Set pars = EvalSet(MMS::MMS.SelectActive(est::GetModel(?)::GetParameters(?)),
52  Anything (NameBlock parameter) {
53  ObtainParameter(parameter, colNames, mcmc, path)
54});
55
56Real est::SetParameters(pars);
57