close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Ticket #507: test3.tol

File test3.tol, 2.6 KB (added by Jorge, 18 years ago)

test3.tol

Line 
1//////////////////////////////////////////////////////////////////////////////
2// FILE   : test.tol
3// PURPOSE:
4//////////////////////////////////////////////////////////////////////////////
5
6//////////////////////////////////////////////////////////////////////////////
7// INCLUDES
8//////////////////////////////////////////////////////////////////////////////
9//Set Include(PathIniSadd(0));
10
11//////////////////////////////////////////////////////////////////////////////
12// FUNCTIONS
13//////////////////////////////////////////////////////////////////////////////
14
15Matrix Diag2Col(Matrix M)
16{
17  Matrix SetCol(Set For(1,Real Min(Rows(M),Columns(M)), Real (Real r)
18      {
19        Real MatDat(M,r,r)
20      }))
21};
22
23Set CheckConstraints(Matrix sample, Matrix B, Matrix rhs)
24{
25  Set CC = For(1, Columns(sample), Matrix(Real c) {SubCol(sample,[[c]])});
26  Set Select(CC, Real(Matrix beta) {
27    Matrix check = LE(B*beta,rhs);
28    Real NE(Rows(check), MatSum(check))
29  })
30};
31
32//////////////////////////////////////////////////////////////////////////////
33// PROCEDURES
34//////////////////////////////////////////////////////////////////////////////
35
36//Set info  = waredrobe[1];
37//Real Ois.Store(info, "test3.oza");
38Set info2 = Ois.Load("test3.oza")[1];
39
40
41Matrix nu2 = info2["nu"];
42Matrix S2 = info2["S"];
43Matrix BroNew2 = info2["BroNew"];
44Matrix broNew2 = info2["broNew"];
45Matrix paramIni2 = info2["paramIni"];
46
47Set check_beta0 = CheckConstraints(paramIni2, BroNew2, broNew2);
48
49Text If(Card(check_beta0),
50  WriteLn("beta0 no cumple"),WriteLn("beta0 ok"));
51
52Real Size = 3;
53Real Burning = 1;
54
55Set svd = SVD(S2);
56Matrix Choleski(S2);
57
58Matrix D1 = BroNew2*svd[1];
59//Set View([[D1]], "Std");
60
61Matrix D = D1*SqRt(svd[2]);
62
63//Set View([[D]], "Std");
64
65Matrix markovChain0 =
66GibbsConstrainedMNormal(nu2, S2,
67                        BroNew2, broNew2, 1, Size, Burning, paramIni2);
68
69
70Set check_mcmc0 = CheckConstraints(Tra(markovChain0), BroNew2, broNew2);
71
72Text If(Card(check_mcmc0),
73  WriteLn("markovChain0 no cumple"),WriteLn("markovChain0 ok"));
74
75Matrix markovChain1=
76GibbsConstrainedMNormal(nu2, [["FACT_SVD", svd[1], SqRt(Diag2Col(svd[2]))]],
77                        BroNew2, broNew2, 1, Size, Burning, paramIni2);
78
79Set check_mcmc1 = CheckConstraints(Tra(markovChain1), BroNew2, broNew2);
80
81Text If(Card(check_mcmc1),
82  WriteLn("markovChain1 no cumple"),WriteLn("markovChain1 ok"));
83
84Matrix markovChain2=
85GibbsConstrainedMNormal(nu2, [["FULL_SVD", S2]],
86                        BroNew2, broNew2, 1, Size, Burning, paramIni2);
87
88Set check_mcmc2 = CheckConstraints(Tra(markovChain2), BroNew2, broNew2);
89
90Text If(Card(check_mcmc2),
91  WriteLn("markovChain2 no cumple"),WriteLn("markovChain2 ok"));
92
93
94
95