source: tol/doc/modeling/BSR/BSR_P2_S1_BysMcmc.lyx @ 740269e

1941-docker-image-to-testdevel
Last change on this file since 740269e was 740269e, checked in by Víctor de Buen <vdebuen@…>, 18 years ago

Reordenación del párrafo sobre el formato ASCII-BSR

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

  • Property mode set to 100644
File size: 33.5 KB
RevLine 
[affe3b9]1#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
2\lyxformat 345
[83a1cc2]3\begin_document
4\begin_header
5\textclass amsbook
6\begin_preamble
7\usepackage{a4wide}
8%\documentclass[spanish]{article}
9\usepackage{babel}
10\usepackage{a4wide}
11\usepackage{varioref}
12\usepackage{amssymb}
13\usepackage{latexsym}
14\usepackage{amssymb}
15\usepackage{amsmath}
16
17\usepackage{graphics}
18\usepackage{graphicx}
19\usepackage{ulem}
20\usepackage{color}
21\usepackage{multicol}
22\usepackage{longtable}
23
24%\usepackage{makeidx}
25\usepackage{hyperref}
26\makeindex
27
28\hypersetup{urlbordercolor=0 0 0,pdfborder=0 0 1 [3 2]}
29\end_preamble
[affe3b9]30\use_default_options false
31\begin_modules
32theorems-ams
33\end_modules
[83a1cc2]34\language spanish
35\inputencoding auto
36\font_roman default
37\font_sans default
38\font_typewriter default
39\font_default_family default
40\font_sc false
41\font_osf false
42\font_sf_scale 100
43\font_tt_scale 100
[affe3b9]44
[83a1cc2]45\graphics default
46\paperfontsize default
47\spacing single
[affe3b9]48\use_hyperref false
[83a1cc2]49\papersize default
50\use_geometry false
51\use_amsmath 1
52\use_esint 0
53\cite_engine basic
54\use_bibtopic false
55\paperorientation portrait
56\secnumdepth 3
57\tocdepth 3
58\paragraph_separation indent
59\defskip medskip
60\quotes_language english
61\papercolumns 1
62\papersides 1
63\paperpagestyle default
64\tracking_changes false
65\output_changes false
66\author ""
67\author ""
68\end_header
69
70\begin_body
71
72\begin_layout Chapter
[affe3b9]73\begin_inset CommandInset label
74LatexCommand label
[83a1cc2]75name "cha:BysMcmc"
76
77\end_inset
78
79BysMcmc
80\end_layout
81
82\begin_layout Standard
83Se describen los miembros y métodos generales del NameBlock BysMcmc cuyo
84 propósito es aglutinar todas las funcionalidades relacionadas con la inferencia
85 bayesiana basada en métodos de simulación MCMC (MonteCarlo Markov Chain)
86\end_layout
87
88\begin_layout Section
89Descripción
90\end_layout
91
92\begin_layout Standard
93El fichero principal de este apartado es
[affe3b9]94\begin_inset Flex URL
95status collapsed
96
97\begin_layout Plain Layout
98
99http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
100ian/bysMcmc/_bysMcmc.tol
101\end_layout
[83a1cc2]102
103\end_inset
104
105, en el cual se define el
106\series bold
107NameBlock BysMcmc
108\series default
109 que incluye métodos genéricos para el manejo de cadenas de Markov independiente
110mente del método concreto utilizado para generarlas e incluso de la clase
111 de modelos que se simulan.
112 Se encarga de la definición de la parte común a todos los bloques de variables
113 con sus correspondientes métodos de acceso y actualización, así como de
114 la logística del proceso de llamadas al simulador concreto que se esté
115 usando, el almacenamiento de la cadena en caché RAM y su escritura periódica
116 en disco y sus correspondientes mensajes de estado de proceso.
117 También incluye funciones de diagnosis sobre la convergencia de la cadena
118 de Markov y de inferencia sobre la misma, pero sólo de aquellos métodos
119 completamente genéricos, es decir, que son independientes de la clase de
120 modelos concreta y de todo tipo de semántica asociada a las variables.
121\end_layout
122
123\begin_layout Standard
124Por último, incluye el simulador la clase de modelos BSR y los de sus extensione
125s, que por el momento son las únicas con soporte en BysMcmc, aunque en el
126 futuro podrá haber otras clases de modelos estándar que cuelguen de aquí.
127 Por supuesto que el analista puede crear su propio simulador para una clase
128 concreta de modelos y llamar a los métodos de BysMcmc sin tener que incluirlo
129 dentro de este NameBlock.
130\end_layout
131
132\begin_layout Section
133
134\family typewriter
[affe3b9]135\begin_inset CommandInset label
136LatexCommand label
[83a1cc2]137name "sec:Opciones-del-sistema"
138
139\end_inset
140
141Opciones y configuración
142\end_layout
143
144\begin_layout Standard
145El miembro
146\series bold
147NameBlock Options
148\series default
149 centraliza todas las opciones de los valores que pueden adoptar los parámetros
150 cualitativos de configuración de los distintos componentes de BysMcmc
151\end_layout
152
153\begin_layout Standard
154\begin_inset listings
155lstparams "basicstyle={\small\ttfamily},extendedchars=true"
156inline false
157status open
158
[affe3b9]159\begin_layout Plain Layout
[83a1cc2]160
161//////////////////////////////////////////////////////////////////////////////
162\end_layout
163
[affe3b9]164\begin_layout Plain Layout
[83a1cc2]165
166//Configuration default values over all BysMcmc related components
167\end_layout
168
[affe3b9]169\begin_layout Plain Layout
[83a1cc2]170
171//////////////////////////////////////////////////////////////////////////////
172\end_layout
173
[affe3b9]174\begin_layout Plain Layout
[83a1cc2]175
176  //Options used over all BysMcmc related components
177\end_layout
178
[affe3b9]179\begin_layout Plain Layout
[83a1cc2]180
181  NameBlock Options =
182\end_layout
183
[affe3b9]184\begin_layout Plain Layout
[83a1cc2]185
186  [[
187\end_layout
188
[affe3b9]189\begin_layout Plain Layout
[83a1cc2]190
191    //Scalar samplers draws a univariant distribution given the logarithm
192 of
193\end_layout
194
[affe3b9]195\begin_layout Plain Layout
[83a1cc2]196
197    //density function and a domain interval
198\end_layout
199
[affe3b9]200\begin_layout Plain Layout
[83a1cc2]201
202    //The API of a scalar sampler  is given by a function like this
203\end_layout
204
[affe3b9]205\begin_layout Plain Layout
[83a1cc2]206
207    //  Real (Code logDens, Real x0, Real x1)
208\end_layout
209
[affe3b9]210\begin_layout Plain Layout
[83a1cc2]211
212    NameBlock Scalar.Sampler =
213\end_layout
214
[affe3b9]215\begin_layout Plain Layout
[83a1cc2]216
217    [[
218\end_layout
219
[affe3b9]220\begin_layout Plain Layout
[83a1cc2]221
222      Real Arms(Code logDens, Real x0, Real x1)
223\end_layout
224
[affe3b9]225\begin_layout Plain Layout
[83a1cc2]226
227      {
228\end_layout
229
[affe3b9]230\begin_layout Plain Layout
[83a1cc2]231
232        ARMS(logDens, x0, x1)
233\end_layout
234
[affe3b9]235\begin_layout Plain Layout
[83a1cc2]236
237      };
238\end_layout
239
[affe3b9]240\begin_layout Plain Layout
[83a1cc2]241
242      Real Slice(Code logDens, Real x0, Real x1)
243\end_layout
244
[affe3b9]245\begin_layout Plain Layout
[83a1cc2]246
247      {
248\end_layout
249
[affe3b9]250\begin_layout Plain Layout
[83a1cc2]251
252        MatDat(SliceSampler1D(logDens, x0, x1),1,1)
253\end_layout
254
[affe3b9]255\begin_layout Plain Layout
[83a1cc2]256
257      }
258\end_layout
259
[affe3b9]260\begin_layout Plain Layout
[83a1cc2]261
262    ]]
263\end_layout
264
[affe3b9]265\begin_layout Plain Layout
[83a1cc2]266
267  ]];
268\end_layout
269
[affe3b9]270\begin_layout Plain Layout
[83a1cc2]271
272//////////////////////////////////////////////////////////////////////////////
273\end_layout
274
275\end_inset
276
277
278\end_layout
279
280\begin_layout Standard
281El miembro
282\series bold
283NameBlock Config
284\series default
285 centraliza todos los parámetros de configuración de los distintos componentes
286 de BysMcmc que contiene los valores por defecto de cada uno de los parámetros
287 de configuración.
288\end_layout
289
290\begin_layout Standard
291\begin_inset listings
292lstparams "basicstyle={\small\ttfamily},extendedchars=true"
293inline false
294status open
295
[affe3b9]296\begin_layout Plain Layout
[83a1cc2]297
298//////////////////////////////////////////////////////////////////////////////
299\end_layout
300
[affe3b9]301\begin_layout Plain Layout
[83a1cc2]302
303//Configuration default values over all BysMcmc related components
304\end_layout
305
[affe3b9]306\begin_layout Plain Layout
[83a1cc2]307
308//////////////////////////////////////////////////////////////////////////////
309\end_layout
310
[affe3b9]311\begin_layout Plain Layout
[83a1cc2]312
[0a96e75]313  Set _config =
[83a1cc2]314\end_layout
315
[affe3b9]316\begin_layout Plain Layout
[83a1cc2]317
318  [[
319\end_layout
320
[affe3b9]321\begin_layout Plain Layout
[83a1cc2]322
323  //MCMC dimensions
324\end_layout
325
[affe3b9]326\begin_layout Plain Layout
[83a1cc2]327
328    //The final number realizations that will remain after burnin
329\end_layout
330
[affe3b9]331\begin_layout Plain Layout
[83a1cc2]332
333    Real mcmc.sampleLength = 2000;
334\end_layout
335
[affe3b9]336\begin_layout Plain Layout
[83a1cc2]337
338    //The frequency of simulation notifying and chain cache updating
339\end_layout
340
[affe3b9]341\begin_layout Plain Layout
[83a1cc2]342
343    Real mcmc.cacheLength = 100;
344\end_layout
345
[affe3b9]346\begin_layout Plain Layout
[83a1cc2]347
348    //The number of first realizations that will be skiped at inference
349 and
350\end_layout
351
[affe3b9]352\begin_layout Plain Layout
[83a1cc2]353
354    //diagnostic time
355\end_layout
356
[affe3b9]357\begin_layout Plain Layout
[83a1cc2]358
359    Real mcmc.burnin = 100;
360\end_layout
361
[affe3b9]362\begin_layout Plain Layout
[83a1cc2]363
364    //Only one of each this number of simulations will be selected for
365\end_layout
366
[affe3b9]367\begin_layout Plain Layout
[83a1cc2]368
369    //inference and diagnostic
370\end_layout
371
[affe3b9]372\begin_layout Plain Layout
[83a1cc2]373
374    Real mcmc.thinning = 1; //thinningg
375\end_layout
376
[affe3b9]377\begin_layout Plain Layout
[83a1cc2]378
379    //Maximum of time in seconds dedicated to simulation
380\end_layout
381
[affe3b9]382\begin_layout Plain Layout
[83a1cc2]383
384    //Process will be stoped after mcmc.sampleLength + mcmc.burnin
385\end_layout
386
[affe3b9]387\begin_layout Plain Layout
[83a1cc2]388
389    //simulations or mcmc.maxTime seconds will be elapsed
390\end_layout
391
[affe3b9]392\begin_layout Plain Layout
[83a1cc2]393
394    Real mcmc.maxTime = 1/0;
395\end_layout
396
[affe3b9]397\begin_layout Plain Layout
[83a1cc2]398
[0a96e75]399  //MLS step configuration
400\end_layout
401
[affe3b9]402\begin_layout Plain Layout
[0a96e75]403
404    Text mls.method  = Options::Mls.Method::None;
405\end_layout
406
[affe3b9]407\begin_layout Plain Layout
[0a96e75]408
409    Real mls.maxIter = 100;
410\end_layout
411
[affe3b9]412\begin_layout Plain Layout
[0a96e75]413
414    Real mls.tolerance = 0.01;
415\end_layout
416
[affe3b9]417\begin_layout Plain Layout
[0a96e75]418
419    Real mls.FunnelGibbs.sigmaFactor = 0.01;
420\end_layout
421
[affe3b9]422\begin_layout Plain Layout
[0a96e75]423
[83a1cc2]424  //Basic master configuration
425\end_layout
426
[affe3b9]427\begin_layout Plain Layout
[83a1cc2]428
429    //If solution error is great than this value a warning will be shown
430\end_layout
431
[affe3b9]432\begin_layout Plain Layout
[83a1cc2]433
434    Real bsr.cholesky.epsilon = 1.E-13;
435\end_layout
436
[affe3b9]437\begin_layout Plain Layout
[83a1cc2]438
439    //The notifying frequency of Cholesky warning
440\end_layout
441
[affe3b9]442\begin_layout Plain Layout
[83a1cc2]443
444    Real bsr.cholesky.warningFreq = 100;
445\end_layout
446
[affe3b9]447\begin_layout Plain Layout
[83a1cc2]448
449    //The number of burnin realizations in Gibbs drawing of truncated
450\end_layout
451
[affe3b9]452\begin_layout Plain Layout
[83a1cc2]453
454    //multinormal
455\end_layout
456
[affe3b9]457\begin_layout Plain Layout
[83a1cc2]458
459    Real bsr.truncMNormal.gibbsNumIter = 0;
460\end_layout
461
[affe3b9]462\begin_layout Plain Layout
[83a1cc2]463
464    //Scalar sampler used in ARMA block of basic BSR can be a member of
465 
466\end_layout
467
[affe3b9]468\begin_layout Plain Layout
[83a1cc2]469
470    //BysMcmc::Options::Scalar.Sampler or an API equivalent function
471\end_layout
472
[affe3b9]473\begin_layout Plain Layout
[83a1cc2]474
[0a96e75]475    Code bsr.scalarSampler.armaBlock = Options::Scalar.Sampler::Slice;
[83a1cc2]476\end_layout
477
[affe3b9]478\begin_layout Plain Layout
[83a1cc2]479
480    //Scalar sampler used in ARMA block of basic BSR can be a member of
481 
482\end_layout
483
[affe3b9]484\begin_layout Plain Layout
[83a1cc2]485
486    //BysMcmc::Options::Scalar.Sampler or an API equivalent function
487\end_layout
488
[affe3b9]489\begin_layout Plain Layout
[83a1cc2]490
[0a96e75]491    Code bsr.scalarSampler.nonLinBlock = Options::Scalar.Sampler::Slice;
[83a1cc2]492\end_layout
493
[affe3b9]494\begin_layout Plain Layout
[83a1cc2]495
496    //Arima filter method
497\end_layout
498
[affe3b9]499\begin_layout Plain Layout
[83a1cc2]500
501    Text bsr.arimaFilter = Options::Arima.Filter::FastChol;
502\end_layout
503
[affe3b9]504\begin_layout Plain Layout
[83a1cc2]505
506  //CODA and other diagnostic report configuration
507\end_layout
508
[affe3b9]509\begin_layout Plain Layout
[83a1cc2]510
511    //The quantile to be estimated in Raftery test
512\end_layout
513
[affe3b9]514\begin_layout Plain Layout
[83a1cc2]515
516    Real report.raftery.diag.q = 0.025;
517\end_layout
518
[affe3b9]519\begin_layout Plain Layout
[83a1cc2]520
521    //The desired margin of error of the estimate in Raftery test
522\end_layout
523
[affe3b9]524\begin_layout Plain Layout
[83a1cc2]525
526    Real report.raftery.diag.r = 0.007; 
527\end_layout
528
[affe3b9]529\begin_layout Plain Layout
[83a1cc2]530
531    //The probability of obtaining an estimate in the interval (q-r,q+r)
532 in
533\end_layout
534
[affe3b9]535\begin_layout Plain Layout
[83a1cc2]536
537    //Raftery test
538\end_layout
539
[affe3b9]540\begin_layout Plain Layout
[83a1cc2]541
542    Real report.raftery.diag.s = 0.950; 
543\end_layout
544
[affe3b9]545\begin_layout Plain Layout
[83a1cc2]546
547    //Precision required for estimate of time to convergence in Raftery
548 test
549\end_layout
550
[affe3b9]551\begin_layout Plain Layout
[83a1cc2]552
553    Real report.raftery.diag.eps = 0.001;
554\end_layout
555
[affe3b9]556\begin_layout Plain Layout
[83a1cc2]557
558    //Lag of AutoCorrelation Function
559\end_layout
560
[affe3b9]561\begin_layout Plain Layout
[83a1cc2]562
563    Real report.acf.lag= 20;
564\end_layout
565
[affe3b9]566\begin_layout Plain Layout
[83a1cc2]567
568    //Number of divisions in histograms
569\end_layout
570
[affe3b9]571\begin_layout Plain Layout
[83a1cc2]572
573    Real report.histogram.parts = 100;
574\end_layout
575
[affe3b9]576\begin_layout Plain Layout
[83a1cc2]577
578    //Number of divisions in kernel density aproximations
579\end_layout
580
[affe3b9]581\begin_layout Plain Layout
[83a1cc2]582
583    Real report.kerDens.points = 0;
584\end_layout
585
[affe3b9]586\begin_layout Plain Layout
[83a1cc2]587
588  //Generic flags
589\end_layout
590
[affe3b9]591\begin_layout Plain Layout
[83a1cc2]592
[0a96e75]593    //If positive then is the number of existent realizations to be recovered
594 
595\end_layout
596
[affe3b9]597\begin_layout Plain Layout
[0a96e75]598
599    //from disk
600\end_layout
601
[affe3b9]602\begin_layout Plain Layout
[0a96e75]603
604    //If negative then is the number of last existent realization to be
605\end_layout
606
[affe3b9]607\begin_layout Plain Layout
[0a96e75]608
609    //skyped
610\end_layout
611
[affe3b9]612\begin_layout Plain Layout
[0a96e75]613
614    //If zero then no resuming will be made and a new Markov chain will
615 be
616\end_layout
617
[affe3b9]618\begin_layout Plain Layout
[0a96e75]619
620    //generated
[83a1cc2]621\end_layout
622
[affe3b9]623\begin_layout Plain Layout
[83a1cc2]624
625    Real do.resume = 0;
626\end_layout
627
[affe3b9]628\begin_layout Plain Layout
[83a1cc2]629
630    //Enables or disables CODA and other diagnostic reports
631\end_layout
632
[affe3b9]633\begin_layout Plain Layout
[83a1cc2]634
635    Real do.report = True;
636\end_layout
637
[affe3b9]638\begin_layout Plain Layout
[83a1cc2]639
640    //Enables or disables in-sample evaluation of forecasting, filter, noise,
641 
642\end_layout
643
[affe3b9]644\begin_layout Plain Layout
[83a1cc2]645
646    //residuals, ...
647\end_layout
648
[affe3b9]649\begin_layout Plain Layout
[83a1cc2]650
651    Real do.eval = True;
652\end_layout
653
[affe3b9]654\begin_layout Plain Layout
[83a1cc2]655
656    //Enables or disables in-sample evaluation of individual linear effects
657\end_layout
658
[affe3b9]659\begin_layout Plain Layout
[83a1cc2]660
661    Real do.linear.effects = True
662\end_layout
663
[affe3b9]664\begin_layout Plain Layout
[83a1cc2]665
666  ]];
667\end_layout
668
[affe3b9]669\begin_layout Plain Layout
[83a1cc2]670
671//////////////////////////////////////////////////////////////////////////////
672\end_layout
673
674\end_inset
675
676
677\end_layout
678
679\begin_layout Standard
680El método
681\series bold
682GetCfgVal
683\series default
684 busca un parámetro en el NameBlock de configuración del usuario y, si no
685 lo encuentra, devuelve esl valor por defecto definido en BysMcmc::Config
686\end_layout
687
688\begin_layout Standard
689\begin_inset listings
690lstparams "basicstyle={\small\ttfamily},extendedchars=true"
691inline false
692status open
693
[affe3b9]694\begin_layout Plain Layout
[83a1cc2]695
696//////////////////////////////////////////////////////////////////////////////
697\end_layout
698
[affe3b9]699\begin_layout Plain Layout
[83a1cc2]700
701//Searches a parameter in the user defined configuration NameBlock and,
702 if
703\end_layout
704
[affe3b9]705\begin_layout Plain Layout
[83a1cc2]706
707//not exists returns default value of BsyMcmc::Config
708\end_layout
709
[affe3b9]710\begin_layout Plain Layout
[83a1cc2]711
712//////////////////////////////////////////////////////////////////////////////
713\end_layout
714
[affe3b9]715\begin_layout Plain Layout
[83a1cc2]716
717Anything GetCfgVal(NameBlock config, Text member)
718\end_layout
719
[affe3b9]720\begin_layout Plain Layout
[83a1cc2]721
722{
723\end_layout
724
[affe3b9]725\begin_layout Plain Layout
[83a1cc2]726
727  StdLib::GetConfigValue(config,member,Eval("BysMcmc::Config::"+member))
728\end_layout
729
[affe3b9]730\begin_layout Plain Layout
[83a1cc2]731
732}
733\end_layout
734
[affe3b9]735\begin_layout Plain Layout
[83a1cc2]736
737//////////////////////////////////////////////////////////////////////////////
738\end_layout
739
740\end_inset
741
742
743\end_layout
744
745\begin_layout Section
746
747\family typewriter
[affe3b9]748\begin_inset CommandInset label
749LatexCommand label
[83a1cc2]750name "sub:Nameblock-BysMcmc::BuildCycler()"
751
752\end_inset
753
754Método NameBlock BysMcmc::BuildCycler()
755\end_layout
756
757\begin_layout Standard
758En
[affe3b9]759\begin_inset Flex URL
760status collapsed
761
762\begin_layout Plain Layout
763
764http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
765ian/bysMcmc/_build.tol
766\end_layout
[83a1cc2]767
768\end_inset
769
770 se define este método fundamental de la clase usada para obtener el constructor
771 y manejador de la cadena de Markov, el cual se ocupa de la logística de
772 almacenamiento y trazado del proceso, de forma independiente del algoritmo
773 de simulación, siendo el propio BSR un caso particular, el cual será el
774 argumento principal (
775\series bold
776NameBlock modelSampler
777\series default
778) de este método, debiendo contener la siguiente API obligatoria:
779\end_layout
780
781\begin_layout Standard
782\begin_inset listings
783lstparams "basicstyle={\small\ttfamily},extendedchars=true"
784inline false
785status open
786
[affe3b9]787\begin_layout Plain Layout
[83a1cc2]788
789//////////////////////////////////////////////////////////////////////////////
790\end_layout
791
[affe3b9]792\begin_layout Plain Layout
[83a1cc2]793
794//Identificador del modelo
795\end_layout
796
[affe3b9]797\begin_layout Plain Layout
[83a1cc2]798
799Text get.name (Real unused)
800\end_layout
801
[affe3b9]802\begin_layout Plain Layout
[83a1cc2]803
804//Identificador de la sesión de trabajo
805\end_layout
806
[affe3b9]807\begin_layout Plain Layout
[83a1cc2]808
809Text get.session (Real unused)
810\end_layout
811
[affe3b9]812\begin_layout Plain Layout
[83a1cc2]813
814//Camino donde se almacena la cadena de Markov en formato binario BBM
815\end_layout
816
[affe3b9]817\begin_layout Plain Layout
[83a1cc2]818
819Text get.path (Real unused)
820\end_layout
821
[affe3b9]822\begin_layout Plain Layout
[83a1cc2]823
824//Nombres de los parámetros de la cadena de Markov
825\end_layout
826
[affe3b9]827\begin_layout Plain Layout
[83a1cc2]828
829Set get.colNames (Real unused)
830\end_layout
831
[affe3b9]832\begin_layout Plain Layout
[83a1cc2]833
834//Simula una realización de la cadena de Markov
835\end_layout
836
[affe3b9]837\begin_layout Plain Layout
[83a1cc2]838
839Matrix draw (Real numSim)
840\end_layout
841
[affe3b9]842\begin_layout Plain Layout
[83a1cc2]843
844//Evalúa los componentes (filtro, ruido, residuos, previsión, ...) de cada
845 
846\end_layout
847
[affe3b9]848\begin_layout Plain Layout
[83a1cc2]849
850//segmento de la regresión para un vector concreto de parámetros.
851\end_layout
852
[affe3b9]853\begin_layout Plain Layout
[83a1cc2]854
855//Este método no es necesario para la simulación pero sí es recomendable
856 
857\end_layout
858
[affe3b9]859\begin_layout Plain Layout
[83a1cc2]860
861//para su posterior diagnosis e inferencia.
862\end_layout
863
[affe3b9]864\begin_layout Plain Layout
[83a1cc2]865
866Set eval(Matrix values)
867\end_layout
868
[affe3b9]869\begin_layout Plain Layout
[83a1cc2]870
871//////////////////////////////////////////////////////////////////////////////
872\end_layout
873
874\end_inset
875
876
877\end_layout
878
879\begin_layout Standard
880El argumento del método es
881\series bold
882NameBlock config
883\series default
884 centraliza todos los parámetros de configuración de los distintos componentes,
885 es decir, los de BysMcmc::Config vistos en la sección anterior.
886 Sólo es preciso incluir aquellos que se quieran cambiar, aunque no hay
887 ningún problema en explicitar los valores por defecto.
888 Usualmente se deseará modificar al menos los parámetros de configuración
889 de la longitud de la cadena, por ejemplo así
890\begin_inset listings
891lstparams "basicstyle={\small\ttfamily},extendedchars=true"
892inline false
893status open
894
[affe3b9]895\begin_layout Plain Layout
[83a1cc2]896
897//////////////////////////////////////////////////////////////////////////////
898\end_layout
899
[affe3b9]900\begin_layout Plain Layout
[83a1cc2]901
902NameBlock my_config =
903\end_layout
904
[affe3b9]905\begin_layout Plain Layout
[83a1cc2]906
907[[
908\end_layout
909
[affe3b9]910\begin_layout Plain Layout
[83a1cc2]911
912  Real mcmc.burnin        =  500;
913\end_layout
914
[affe3b9]915\begin_layout Plain Layout
[83a1cc2]916
917  Real mcmc.sampleLength  = 5000
918\end_layout
919
[affe3b9]920\begin_layout Plain Layout
[83a1cc2]921
922]];
923\end_layout
924
[affe3b9]925\begin_layout Plain Layout
[83a1cc2]926
927//////////////////////////////////////////////////////////////////////////////
928\end_layout
929
930\end_inset
931
932
933\end_layout
934
935\begin_layout Standard
936El último argumento del método es
937\series bold
938NameBlock notifier
939\series default
940, el cual se utiliza como canal especializado de notificaciones de eventos
941 relacionados con la, como puede ser una base de datos (Ver
942\series bold
943NameBlock dbNotifier
944\series default
945 en la función
946\series bold
947BysMcmc::Bsr::DynHlm::DBApi::Estim
948\series default
949 de
[affe3b9]950\begin_inset Flex URL
951status collapsed
952
953\begin_layout Plain Layout
954
955http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
956ian/bysMcmc/bsr/dynhlm/_db_api.estim.tol
957\end_layout
[83a1cc2]958
959\end_inset
960
961) , una barra de progreso en una interfaz gráfica, o cualquier otro sistema
962 especializado que cumpla la API obligatoria:
963\end_layout
964
965\begin_layout Standard
966\begin_inset listings
967lstparams "basicstyle={\small\ttfamily},extendedchars=true"
968inline false
969status open
970
[affe3b9]971\begin_layout Plain Layout
[83a1cc2]972
973//////////////////////////////////////////////////////////////////////////////
974\end_layout
975
[affe3b9]976\begin_layout Plain Layout
[83a1cc2]977
978//Notifica la inicialización de la cadena de Markov,
979\end_layout
980
[affe3b9]981\begin_layout Plain Layout
[83a1cc2]982
983//informando del número de variables y el path de almacenamiento
984\end_layout
985
[affe3b9]986\begin_layout Plain Layout
[83a1cc2]987
988Real initializing(Real numVar, Text path)
989\end_layout
990
[affe3b9]991\begin_layout Plain Layout
[83a1cc2]992
993//Notifica que se está simulando la realización
994\end_layout
995
[affe3b9]996\begin_layout Plain Layout
[83a1cc2]997
998//numSim de la cadena de Markov
999\end_layout
1000
[affe3b9]1001\begin_layout Plain Layout
[83a1cc2]1002
1003Real simulating(Real numSim)
1004\end_layout
1005
[affe3b9]1006\begin_layout Plain Layout
[83a1cc2]1007
1008///////////////////////////////////////////////////////////////////////////////
1009\end_layout
1010
1011\end_inset
1012
1013
1014\end_layout
1015
1016\begin_layout Standard
1017El NameBlock devuelto por
1018\family typewriter
1019\series bold
1020BysMcmc::BuildCycler
1021\family default
1022\series default
1023 cuenta con una serie de métodos y miembros que permiten crear y manejar
1024 con comodidad las cadenas de Markov.
1025\end_layout
1026
1027\begin_layout Standard
1028El método
1029\series bold
1030Real generate(Real sampleLength)
1031\series default
1032 genera la cadena de Markov y la almacena temporalmente en una matriz en
1033 memoria que se irá añadiendo, con llamadas a la función built-in
1034\series bold
1035MatAppendFile,
1036\series default
1037 al fichero binario permanente cada cierto número de simulaciones dado por
1038 el valor del campo
1039\series bold
1040Real cacheLength_
1041\series default
1042, cuyo valor por defecto es 100 pero que el usuario puede cambiar a su antojo.
1043 Este campo también define la frecuencia con que ocurren las notificaciones
1044 de la simulación en curso.
1045 Normalmente el número de simulaciones que se le pasará será
1046\series bold
1047mcmc.burnin+mcmc.sampleLength*mcmc.thinning
1048\series default
1049.
1050 Si se supera el tiempo máximo
1051\series bold
1052mcmc.maxTime
1053\series default
1054, entonces se finalizará la simulación aunque no se hayan realizado todas
1055 las muestras requeridas.
1056\end_layout
1057
1058\begin_layout Standard
[0a96e75]1059Mediante el miembro
[83a1cc2]1060\series bold
[0a96e75]1061Real resume_=config::do.resume
[83a1cc2]1062\series default
1063, que por defecto está deshabilitado, es posible especificar que se reutilicen
[0a96e75]1064 total o parcialmente las realizaciones de una cadena de Markov previamente
1065 simulada y almacenada en disco, en un archivo con el mismo camino actual,
1066 para no perder el trabajo realizado tras cualquier circunstancia que aborte
1067 la simulación.
1068 Si es positivo se utilizarán las especificadas o bien las exietntes si
1069 hay menos.
1070 Si es negativo se eliminarán las últimas almacenadas utilizando sólo las
1071 restantes.
1072 Si es cero no se reutiliza nada y se comienza una nueva cadena de Markov.
[83a1cc2]1073\end_layout
1074
1075\begin_layout Standard
1076El método
1077\series bold
1078Matrix loadMcmc(Real burnin, Real length, Real thinin)
1079\series default
1080 recarga un total de
1081\series bold
1082length
1083\series default
1084 simulaciones de una cadena de Markov previamente almacenada descartando
1085 las
1086\series bold
1087burnin
1088\series default
1089 primeras simulaciones y extrayendo del resto una de cada
1090\series bold
1091thinin
1092\series default
1093.
1094 Esto permite hacer inferencia con diferentes submuestras para contrastar
1095 los resultados.
1096\end_layout
1097
1098\begin_layout Standard
1099El método
1100\series bold
1101Set report(Real burnin, Real length, Real thinin)
1102\series default
1103 devuelve un informe de diagnosis e inferencia básica (ver
[affe3b9]1104\begin_inset CommandInset ref
1105LatexCommand ref
[83a1cc2]1106reference "sub:BysMcmc::Inference"
1107
1108\end_inset
1109
1110) sobre la subcadena construida según se indica en el párrafo anterior.
1111 El miembro
1112\series bold
1113bysInf_
1114\series default
1115 permite modificar la configuración de dicho informe y tiene la estructura
1116 
1117\series bold
1118BysInf.Report.Config
1119\series default
1120 que se puede ver en
[affe3b9]1121\begin_inset Flex URL
1122status collapsed
1123
1124\begin_layout Plain Layout
1125
1126http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1127ian/bysMcmc/_structs.tol
1128\end_layout
[83a1cc2]1129
1130\end_inset
1131
1132 y que se comentarán más adelante en
[affe3b9]1133\begin_inset CommandInset ref
1134LatexCommand ref
[83a1cc2]1135reference "sub:BysMcmc::Inference"
1136
1137\end_inset
1138
1139.
1140\end_layout
1141
1142\begin_layout Standard
1143Antes de comenzar a simular se almacena en un fichero
1144\series bold
1145*.recover.oza
1146\series default
1147 la información necesaria para poder hacer informes parciales de la cadena
1148 MCMC sin necesidad de esperar a que acabe la simulación.
1149 Este fichero se recarga con el método
1150\series bold
1151BysMcmc::Get.Recover
1152\series default
1153 o bien se puee llamar directamente a
1154\series bold
1155BysMcmc::RecoveAndReport
1156\series default
1157 para que lo recupere y lance el informe con
1158\series bold
1159report
1160\series default
1161.
1162\end_layout
1163
1164\begin_layout Section
1165
1166\family typewriter
[affe3b9]1167\begin_inset CommandInset label
1168LatexCommand label
[83a1cc2]1169name "sub:Nameblock-BysMcmc::DefineBlock()"
1170
1171\end_inset
1172
1173Método NameBlock BysMcmc::DefineBlock()
1174\end_layout
1175
1176\begin_layout Standard
1177En
[affe3b9]1178\begin_inset Flex URL
1179status collapsed
1180
1181\begin_layout Plain Layout
1182
1183http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1184ian/bysMcmc/_defineBlock.tol
1185\end_layout
[83a1cc2]1186
1187\end_inset
1188
1189 se define este método que crea el manejador de la información común a cada
1190 bloque de variables de una MCMC, como el conjunto indexado de los nombres
1191 de los parámetros, que deben ser únicos, para poder acceder por nombre
1192 a los mismos; una matriz para almacenar los valores en curso de los parámetros;
1193 las posiciones de ubicación de los mismos dentro de la cadena MCMC completa;
1194 un flag para habilitar o deshabilitar el bloque, etc.
1195\end_layout
1196
1197\begin_layout Standard
1198Se trata de un método de uso interno del sistema por lo que el usuario final
1199 no necesita acceder nunca a este miembro.
1200\end_layout
1201
1202\begin_layout Standard
1203El programador de un nuevo simulador debería fijarse en cómo se usa en el
1204 caso de los bloques de BSR para crear sus propios bloques de simulación.
1205 
1206\end_layout
1207
1208\begin_layout Section
1209
1210\family typewriter
[affe3b9]1211\begin_inset CommandInset label
1212LatexCommand label
[83a1cc2]1213name "sub:BysMcmc::_.cmsg"
1214
1215\end_inset
1216
1217Miembro BysMcmc::_.cmsg
1218\end_layout
1219
1220\begin_layout Standard
1221En el fichero
[affe3b9]1222\begin_inset Flex URL
1223status collapsed
1224
1225\begin_layout Plain Layout
1226
1227http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1228ian/bysMcmc/_cmsgs.tol
1229\end_layout
[83a1cc2]1230
1231\end_inset
1232
1233 se define este miembro que incluye los mensajes de error empleados por
1234 los métodos propios y los de los NameBlock hijos que lo precisen.
1235 Es de uso interno del sistema por lo que el usuario no necesita acceder
1236 nunca a este miembro.
1237 Se hace uso del paquete
1238\series bold
1239CMsg::Coded
1240\series default
1241 implementado en
[affe3b9]1242\begin_inset Flex URL
1243status collapsed
1244
1245\begin_layout Plain Layout
1246
1247http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/general/system/cmsg/_c
1248oded.tol
1249\end_layout
[83a1cc2]1250
1251\end_inset
1252
1253.
1254 Los mensajes codificados como
1255\series bold
1256
1257\begin_inset Quotes eld
1258\end_inset
1259
1260Stop
1261\begin_inset Quotes erd
1262\end_inset
1263
1264
1265\series default
1266 se entienden como errores irrecuperables del proceso de compilación TOL
1267 que se estuviera llevando a cabo, y provocarán la parada inmediata del
1268 mismo mediante la orden
1269\series bold
1270Real Stop
1271\series default
1272, para no perder más tiempo, pues ya es seguro que no se va a llegar a ninguna
1273 parte, e incluso es posible que de esta forma se proteja al ejecutable
1274 de una caída incontrolada.
1275\end_layout
1276
1277\begin_layout Section
1278
1279\family typewriter
[affe3b9]1280\begin_inset CommandInset label
1281LatexCommand label
[83a1cc2]1282name "sub:BysMcmc::Inference"
1283
1284\end_inset
1285
1286Método BysMcmc::Inference
1287\end_layout
1288
1289\begin_layout Standard
1290En
[affe3b9]1291\begin_inset Flex URL
1292status collapsed
1293
1294\begin_layout Plain Layout
1295
1296http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1297ian/bysMcmc/_inference.tol
1298\end_layout
[83a1cc2]1299
1300\end_inset
1301
1302 se define este miembro que incluye los métodos para la diagnosis e inferencia
1303 bayesianas a partir de cadenas de Markov previamente simuladas definidos
1304 en el fichero
[affe3b9]1305\begin_inset Flex URL
1306status collapsed
1307
1308\begin_layout Plain Layout
1309
1310http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1311ian/bysMcmc/_inference_functions.tol
1312\end_layout
[83a1cc2]1313
1314\end_inset
1315
1316.
1317 Todos los métodos se llaman internamente salvo el método
1318\series bold
1319report,
1320\series default
1321 que les llama al resto y es a su vez llamado por el estimador al final
1322 de la simulación, y el
1323\series bold
1324compare.reports
1325\series default
1326 que puede ser usado manualmente por el analista para comparar los informes
1327 de dos cadenas de simulaciones sobre el mismo modelo con los mismos parámetros.
1328 El contenido de un informe devuelto por
1329\series bold
1330report
1331\series default
1332 es el siguiente
1333\end_layout
1334
1335\begin_layout Enumerate
1336
1337\series bold
1338Text name
1339\series default
1340: Identificador del modelo
1341\end_layout
1342
1343\begin_layout Enumerate
1344
1345\series bold
1346Set colNames
1347\series default
1348: Nombres de las variables de la cadena de Markov
1349\end_layout
1350
1351\begin_layout Enumerate
1352
1353\series bold
1354Set repCfg
1355\series default
1356: Parámetros de configuración usados
1357\end_layout
1358
1359\begin_layout Enumerate
1360
1361\series bold
1362Matrix mcmc
1363\series default
1364: la cadena de Markov en la que cada fila es una simulación concreta y cada
1365 columna se refiere al parámetro de la misma posición en colNames
1366\end_layout
1367
1368\begin_layout Enumerate
1369
1370\series bold
1371Set sample
1372\series default
1373: conjunto de matrices columna extraídas de la anterior para facilitar la
1374 visualización gráfica de la cadena de Markov de cada variable.
1375\end_layout
1376
1377\begin_layout Enumerate
1378
1379\series bold
1380Set coda.raftery.diag
1381\series default
1382: Una tabla con una fila para el resultado del test de Raftery de CODA
[affe3b9]1383\begin_inset CommandInset citation
1384LatexCommand cite
[83a1cc2]1385key "CODA-Convergence-diagnosis-output-analysis"
1386
1387\end_inset
1388
1389 de cada variable con la estructura
1390\series bold
1391BysInf.Coda.Diag.Raftery
1392\series default
1393 que se puede ver en
[affe3b9]1394\begin_inset Flex URL
1395status collapsed
1396
1397\begin_layout Plain Layout
1398
1399http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1400ian/bysMcmc/_structs.tol
1401\end_layout
[83a1cc2]1402
1403\end_inset
1404
1405.
1406 Los campos del miembro
1407\series bold
1408bysInf_
1409\series default
1410 que comienzan por
1411\series bold
1412raftery.diag.
1413
1414\series default
1415 afectan al test de Raftery según se explica en la documentación de CODA.
1416\end_layout
1417
1418\begin_layout Enumerate
1419
1420\series bold
1421Set coda.summary
1422\series default
1423: Una tabla con una fila para el resultado del sumario CODA
[affe3b9]1424\begin_inset CommandInset citation
1425LatexCommand cite
[83a1cc2]1426key "CODA-Convergence-diagnosis-output-analysis"
1427
1428\end_inset
1429
1430 de cada variable con la estructura
1431\series bold
1432BysInf.Coda.Summary.Stats
1433\series default
1434 que se puede ver en
[affe3b9]1435\begin_inset Flex URL
1436status collapsed
1437
1438\begin_layout Plain Layout
1439
1440http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1441ian/bysMcmc/_structs.tol
1442\end_layout
[83a1cc2]1443
1444\end_inset
1445
1446
1447\end_layout
1448
1449\begin_layout Enumerate
1450
1451\series bold
1452Set acf
1453\series default
1454: Los
1455\series bold
1456bysInf_->acf.lag_
1457\series default
1458 primeros términos de la función de autocorrelación observada de la cadena
1459 de Markov de cada parámetro
1460\end_layout
1461
1462\begin_layout Enumerate
1463
1464\series bold
1465Set histogram
1466\series default
1467: Histograma de frecuencias de
1468\series bold
1469bysInf_->histogram.parts_
1470\series default
1471 partes de la cadena de Markov de cada parámetro
1472\end_layout
1473
1474\begin_layout Enumerate
1475
1476\series bold
1477Set acf
1478\series default
1479: Función de autocorrelación observada de la cadena de Markov de cada parámetro
1480\end_layout
1481
1482\begin_layout Enumerate
1483
1484\series bold
1485Set kerDens
1486\series default
1487: Aproximación kernel-density de la densidad de probabilidad de la cadena
1488 de Markov de cada parámetro.
1489 Por defecto está deshabilitada porque lleva bastante tiempo de cálculo
1490 y a menudo no se utiliza para nada.
1491 Si se desea analizar hay que cambiar
1492\series bold
1493bysInf_->kerDens.points
1494\series default
1495 de 0 al número de puntos en los que se quiera evaluar la densidad aproximada,
1496 antes de llamar a
1497\series bold
1498report
1499\series default
1500.
1501\end_layout
1502
1503\begin_layout Standard
1504El metodo
1505\series bold
1506loadAndReport
1507\series default
1508 permite recuperar de disco una cadena MCMC y efectuar el informe llamando
1509 a
1510\series bold
1511report
1512\series default
1513 con ella.
1514\end_layout
1515
1516\begin_layout Section
1517
1518\family typewriter
[affe3b9]1519\begin_inset CommandInset label
1520LatexCommand label
[83a1cc2]1521name "sub:BysMcmc::Bsr"
1522
1523\end_inset
1524
[0af9357]1525Miembro BysMcmc::Bsr
[83a1cc2]1526\end_layout
1527
1528\begin_layout Standard
1529En
[affe3b9]1530\begin_inset Flex URL
1531status collapsed
1532
1533\begin_layout Plain Layout
1534
1535http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1536ian/bysMcmc/bsr/_bsr.tol
1537\end_layout
[83a1cc2]1538
1539\end_inset
1540
1541 se define este miembro que incluye el simulador específico de BSR que se
1542 ocupa de todo el manejo específico de la clase de modelos BSR y que consta
1543 a su vez de otros tres ficheros
1544\end_layout
1545
1546\begin_layout Itemize
1547En
[affe3b9]1548\begin_inset Flex URL
1549status collapsed
1550
1551\begin_layout Plain Layout
1552
1553http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1554ian/bysMcmc/bsr/gibbs/_gibbs.tol
1555\end_layout
[83a1cc2]1556
1557\end_inset
1558
1559 se define el miembro
1560\series bold
1561NameBlock BysMcmc::Bsr::Gibbs
1562\series default
1563 que incluye el simulador de Gibbs de BSR propiamente dicho que se explica
1564 en detalle en
[affe3b9]1565\begin_inset CommandInset ref
1566LatexCommand ref
[83a1cc2]1567reference "cha:BysMcmc::Bsr::Gibbs"
1568
1569\end_inset
1570
1571
1572\end_layout
1573
1574\begin_layout Itemize
[740269e]1575Otro componente fundamental de BSR es la API de definición de modelos en
1576 ficheros de datos ASCII con formato .bsr, el cual está implementado en la
1577 función built-in C++ de TOL Bsr.Parse que se describe en
1578\begin_inset CommandInset ref
1579LatexCommand ref
1580reference "cha:El-formato-ASCII-BSR"
1581
1582\end_inset
1583
1584
1585\end_layout
1586
1587\begin_layout Itemize
[83a1cc2]1588En
[affe3b9]1589\begin_inset Flex URL
1590status collapsed
1591
1592\begin_layout Plain Layout
1593
1594http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1595ian/bysMcmc/bsr/_import.tol
1596\end_layout
[83a1cc2]1597
1598\end_inset
1599
1600 se define el miembro
1601\series bold
1602NameBlock BysMcmc::Bsr::Import
1603\series default
1604 que contiene la API genérica de definición de modelos de BSR cuya descripción
1605 se encuentra en
[affe3b9]1606\begin_inset CommandInset ref
1607LatexCommand ref
[83a1cc2]1608reference "cha:BysMcmc::Bsr::Import"
1609
1610\end_inset
1611
1612
1613\end_layout
1614
1615\begin_layout Itemize
1616En
[affe3b9]1617\begin_inset Flex URL
1618status collapsed
1619
1620\begin_layout Plain Layout
1621
1622http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1623ian/bysMcmc/bsr/dynhlm/_dynhlm.tol
1624\end_layout
[83a1cc2]1625
1626\end_inset
1627
1628 se define el miembro
1629\series bold
1630NameBlock BysMcmc::Bsr::DynHlm
1631\series default
1632 que contiene la API de definición de modelos de la clase restringida al
1633 caso jerárquico lineal HLM dinámico, en el sentido de que las observaciones
1634 ocurren en el tiempo.
1635 Para un estudio en profundidad de este tema ver
[affe3b9]1636\begin_inset CommandInset ref
1637LatexCommand ref
[83a1cc2]1638reference "cha:BysMcmc::Bsr::DynHlm"
1639
1640\end_inset
1641
1642
1643\end_layout
1644
[affe3b9]1645\begin_layout Itemize
1646En
1647\begin_inset Flex URL
1648status collapsed
1649
1650\begin_layout Plain Layout
1651
1652http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayes
1653ian/bysMcmc/bsr/_oneNode.tol
1654\end_layout
1655
1656\end_inset
1657
1658 se define el miembro
1659\series bold
1660NameBlock BysMcmc::Bsr::OneNode
1661\series default
1662 que contiene una API simplificada que construye directamente un BSR.ModelDef
1663 a partir de un NameBlock con una estructura bastante sencilla para el caso
1664 de un modelo BSR con un solo nodo observacional.
1665 En estos casos no se necesita crear un archivo BSR ASCII ni mucho menos
1666 almacenar información alguna en la base de datos.
[0af9357]1667 Contiene el método Estim para modelos BSR básicos con filtros no lineales
1668 opcionales y el método EstimProbit especializado para el caso del modelo
1669 binario Probit.
[affe3b9]1670\end_layout
1671
[83a1cc2]1672\end_body
1673\end_document
Note: See TracBrowser for help on using the repository browser.