Changeset 40a7081 in tol


Ignore:
Timestamp:
Mar 27, 2009, 11:59:53 AM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
96696c3
Parents:
44ae460
Message:

Preparing for Metropolis-Hastings method explained in #664

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@827 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_basicMaster.tol

    r44ae460 r40a7081  
    3232  Text _.autodoc.description="Gibbs sampler for model "+_.name;
    3333  Text _MID = "[BSR."+_.name+"] ";
    34   NameBlock _.lin.blk = BysMcmc::Bsr::Gibbs::StdLinearBlock
     34  NameBlock _.mln.blk = BysMcmc::Bsr::Gibbs::MainLinearBlock
    3535  (
    3636    "BSR.MainLinBlock."+_.name,
    … …  
    4646    _.modelDef->NoiseDistrib,
    4747    2,
    48     _.lin.blk::_.blockDef::_.lastCol+1,
     48    _.mln.blk::_.blockDef::_.lastCol+1,
    4949    _config
    5050  );
    … …  
    7979  Set _.blocks =
    8080  [[
    81     _.lin.blk,
     81    _.mln.blk,
    8282    _.sig.blk,
    8383    _.arm.blk,
    … …  
    199199  ////////////////////////////////////////////////////////////////////////////
    200200  {
    201   //WriteLn("TRACE"+_MID+" _.lin.blk.init 1");
     201  //WriteLn("TRACE"+_MID+" init 1");
    202202    Matrix aux=SetCol(EvalSet(_.modelDef->LinearBlock,Real(BSR.LinearBlock b)
    203203    { b->InitialValue }));
    204204    VMatrix _.YplusV := _.outMis.blk::filter(_.Y);
    205   //WriteLn("TRACE"+_MID+" _.lin.blk.init 6");
     205  //WriteLn("TRACE"+_MID+" init 6");
    206206    VMatrix _.XplusU := _.inpMis.blk::filter(_.modelDef->X);
    207   //WriteLn("TRACE"+_MID+" _.lin.blk.init 2");
     207  //WriteLn("TRACE"+_MID+" init 2");
    208208    VMatrix beta0 = findMatchingBeta(Mat2VMat(aux));
    209   //WriteLn("TRACE"+_MID+" _.lin.blk.init 3");
    210     Real ok = _.lin.blk::initialize(beta0, _.modelDef->A, _.modelDef->a);
    211   //WriteLn("TRACE"+_MID+" _.lin.blk.init 4");
    212     VMatrix _.beta   := _.lin.blk::_.blockDef::_.store;
     209  //WriteLn("TRACE"+_MID+" init 3");
     210    Real ok = _.mln.blk::initialize(beta0, _.modelDef->A, _.modelDef->a);
     211  //WriteLn("TRACE"+_MID+" init 4");
     212    VMatrix _.beta   := _.mln.blk::getStore(0);
    213213    Real DoExternalFilter(0);
    214214    VMatrix sig_0 = _.sig.blk::draw(0, _.Y - _.modelDef->X*_.beta);
    215   //WriteLn("TRACE"+_MID+" _.lin.blk.init 7");
     215  //WriteLn("TRACE"+_MID+" init 7");
    216216    VMatrix _.filter := _.XplusU*_.beta;
    217217    VMatrix _.noise := _.YplusV-_.filter;
    … …  
    263263    VMatrix X01 = _.arm.blk::filter(si*_.XplusU);
    264264  //WriteLn("TRACE"+_MID+" draw.sig.lin 8");
    265     VMatrix _.beta := If(Not(_.lin.blk::_.blockDef::_.numCol),Rand(0,1,0,0),
    266     {
    267       Real _.lin.blk::solve(numSim, Y01, X01);
    268       _.lin.blk::draw(numSim, Y01, X01)
    269     });
     265    VMatrix _.beta := If(Not(_.mln.blk::_.N),Rand(0,1,0,0),
     266      _.mln.blk::draw(numSim, Y01, X01));
    270267  //WriteLn("TRACE"+_MID+" draw.sig.lin 9");
    271268    _.beta << sig << arm << im << om
    … …  
    309306    VMatrix X01 = _.arm.blk::filter(si*_.XplusU);
    310307  //WriteLn("TRACE"+_MID+" draw.sig.lin 8");
    311     VMatrix _.beta := If(Not(_.lin.blk::_.blockDef::_.numCol),Rand(0,1,0,0),
    312       _.lin.blk::maxLikelihood(numSim, Y01, X01));
     308    VMatrix _.beta := If(Not(_.mln.blk::_.N),Rand(0,1,0,0),
     309      _.mln.blk::maxLikelihood(numSim, Y01, X01));
    313310  //WriteLn("TRACE"+_MID+" draw.sig.lin 9");
    314311    _.beta << sig << arm << im << om
    … …  
    397394    VMatrix _.XplusU := _.inpMis.blk::filter(_.modelDef->X);
    398395  //WriteLn("TRACE"+_MID+" eval 4");
    399     VMatrix _.beta := _.lin.blk::_.blockDef::_.store;
     396    VMatrix _.beta := _.mln.blk::getStore(0);
    400397    VMatrix fullFilter = _.modelDef->X*_.beta;
    401398    VMatrix fullFilter.full = _.XplusU*_.beta;
    … …  
    767764  ////////////////////////////////////////////////////////////////////////////
    768765  {
    769     NameBlock lin = _.lin.blk::_.blockDef;
     766    NameBlock lin = _.mln.blk::_.lin.blk::_.blockDef;
    770767    NameBlock sig = _.sig.blk::_.blockDef;
    771768
  • tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_gibbs.tol

    r44ae460 r40a7081  
    1515  Set _linBlk = Include("_stdLinearBlock.tol");
    1616  Code StdLinearBlock;
     17
     18  //Linear blocks related methods
     19  Set _mnlBlk = Include("_mainLinearBlock.tol");
     20  Code MainLinearBlock;
    1721
    1822  //Sigma block related methods
  • tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_inputMissingBlock.tol

    r44ae460 r40a7081  
    211211      NameBlock ls = buildLinearSystem(arima,si,beta,Z);
    212212      Real _.lin.blk::solve(numSim, ls::Y01, ls::X01);
    213       VMatrix _.blockDef::_.store := _.lin.blk::draw(numSim, ls::Y01, ls::X01);
     213      VMatrix _.blockDef::_.store := _.lin.blk::draw(numSim);
    214214      _.blockDef::_.store
    215215    })
  • tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_outputMissingBlock.tol

    r44ae460 r40a7081  
    192192      NameBlock ls = buildLinearSystem(arima,si,Z);
    193193      Real _.lin.blk::solve(numSim, ls::Y01, ls::X01);
    194       VMatrix _.blockDef::_.store := _.lin.blk::draw(numSim, ls::Y01, ls::X01);
     194      VMatrix _.blockDef::_.store := _.lin.blk::draw(numSim);
    195195      _.blockDef::_.store
    196196    })
  • tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_stdLinearBlock.tol

    r44ae460 r40a7081  
    288288  Text _.autodoc.member.draw =
    289289  "Draws a simulation of a linear block in current case, constrained or not";
    290   VMatrix draw(Real numSim, VMatrix Y, VMatrix X)
     290  VMatrix draw(Real numSim)
    291291  ////////////////////////////////////////////////////////////////////////////
    292292  {
    293293    If(_.blockDef::enabled,
    294294    {
    295     //Real solve(numSim,Y,X);
    296295      VMatrix aux = _drawer(numSim);
    297296    //WriteLn("TRACE "+_MID+" draw");
Note: See TracChangeset for help on using the changeset viewer.