1 | ////////////////////////////////////////////////////////////////////////////// |
---|
2 | // FILE : test.tol |
---|
3 | // PURPOSE: |
---|
4 | ////////////////////////////////////////////////////////////////////////////// |
---|
5 | |
---|
6 | ////////////////////////////////////////////////////////////////////////////// |
---|
7 | // INCLUDES |
---|
8 | ////////////////////////////////////////////////////////////////////////////// |
---|
9 | //Set Include(PathIniSadd(0)); |
---|
10 | |
---|
11 | ////////////////////////////////////////////////////////////////////////////// |
---|
12 | // FUNCTIONS |
---|
13 | ////////////////////////////////////////////////////////////////////////////// |
---|
14 | |
---|
15 | Matrix 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 | |
---|
23 | Set 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"); |
---|
38 | Set info2 = Ois.Load("test3.oza")[1]; |
---|
39 | |
---|
40 | |
---|
41 | Matrix nu2 = info2["nu"]; |
---|
42 | Matrix S2 = info2["S"]; |
---|
43 | Matrix BroNew2 = info2["BroNew"]; |
---|
44 | Matrix broNew2 = info2["broNew"]; |
---|
45 | Matrix paramIni2 = info2["paramIni"]; |
---|
46 | |
---|
47 | Set check_beta0 = CheckConstraints(paramIni2, BroNew2, broNew2); |
---|
48 | |
---|
49 | Text If(Card(check_beta0), |
---|
50 | WriteLn("beta0 no cumple"),WriteLn("beta0 ok")); |
---|
51 | |
---|
52 | Real Size = 3; |
---|
53 | Real Burning = 1; |
---|
54 | |
---|
55 | Set svd = SVD(S2); |
---|
56 | Matrix Choleski(S2); |
---|
57 | |
---|
58 | Matrix D1 = BroNew2*svd[1]; |
---|
59 | //Set View([[D1]], "Std"); |
---|
60 | |
---|
61 | Matrix D = D1*SqRt(svd[2]); |
---|
62 | |
---|
63 | //Set View([[D]], "Std"); |
---|
64 | |
---|
65 | Matrix markovChain0 = |
---|
66 | GibbsConstrainedMNormal(nu2, S2, |
---|
67 | BroNew2, broNew2, 1, Size, Burning, paramIni2); |
---|
68 | |
---|
69 | |
---|
70 | Set check_mcmc0 = CheckConstraints(Tra(markovChain0), BroNew2, broNew2); |
---|
71 | |
---|
72 | Text If(Card(check_mcmc0), |
---|
73 | WriteLn("markovChain0 no cumple"),WriteLn("markovChain0 ok")); |
---|
74 | |
---|
75 | Matrix markovChain1= |
---|
76 | GibbsConstrainedMNormal(nu2, [["FACT_SVD", svd[1], SqRt(Diag2Col(svd[2]))]], |
---|
77 | BroNew2, broNew2, 1, Size, Burning, paramIni2); |
---|
78 | |
---|
79 | Set check_mcmc1 = CheckConstraints(Tra(markovChain1), BroNew2, broNew2); |
---|
80 | |
---|
81 | Text If(Card(check_mcmc1), |
---|
82 | WriteLn("markovChain1 no cumple"),WriteLn("markovChain1 ok")); |
---|
83 | |
---|
84 | Matrix markovChain2= |
---|
85 | GibbsConstrainedMNormal(nu2, [["FULL_SVD", S2]], |
---|
86 | BroNew2, broNew2, 1, Size, Burning, paramIni2); |
---|
87 | |
---|
88 | Set check_mcmc2 = CheckConstraints(Tra(markovChain2), BroNew2, broNew2); |
---|
89 | |
---|
90 | Text If(Card(check_mcmc2), |
---|
91 | WriteLn("markovChain2 no cumple"),WriteLn("markovChain2 ok")); |
---|
92 | |
---|
93 | |
---|
94 | |
---|
95 | |
---|