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
Line 
1#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
2\lyxformat 345
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
30\use_default_options false
31\begin_modules
32theorems-ams
33\end_modules
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
44
45\graphics default
46\paperfontsize default
47\spacing single
48\use_hyperref false
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
73\begin_inset CommandInset label
74LatexCommand label
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
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
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
135\begin_inset CommandInset label
136LatexCommand label
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
159\begin_layout Plain Layout
160
161//////////////////////////////////////////////////////////////////////////////
162\end_layout
163
164\begin_layout Plain Layout
165
166//Configuration default values over all BysMcmc related components
167\end_layout
168
169\begin_layout Plain Layout
170
171//////////////////////////////////////////////////////////////////////////////
172\end_layout
173
174\begin_layout Plain Layout
175
176  //Options used over all BysMcmc related components
177\end_layout
178
179\begin_layout Plain Layout
180
181  NameBlock Options =
182\end_layout
183
184\begin_layout Plain Layout
185
186  [[
187\end_layout
188
189\begin_layout Plain Layout
190
191    //Scalar samplers draws a univariant distribution given the logarithm
192 of
193\end_layout
194
195\begin_layout Plain Layout
196
197    //density function and a domain interval
198\end_layout
199
200\begin_layout Plain Layout
201
202    //The API of a scalar sampler  is given by a function like this
203\end_layout
204
205\begin_layout Plain Layout
206
207    //  Real (Code logDens, Real x0, Real x1)
208\end_layout
209
210\begin_layout Plain Layout
211
212    NameBlock Scalar.Sampler =
213\end_layout
214
215\begin_layout Plain Layout
216
217    [[
218\end_layout
219
220\begin_layout Plain Layout
221
222      Real Arms(Code logDens, Real x0, Real x1)
223\end_layout
224
225\begin_layout Plain Layout
226
227      {
228\end_layout
229
230\begin_layout Plain Layout
231
232        ARMS(logDens, x0, x1)
233\end_layout
234
235\begin_layout Plain Layout
236
237      };
238\end_layout
239
240\begin_layout Plain Layout
241
242      Real Slice(Code logDens, Real x0, Real x1)
243\end_layout
244
245\begin_layout Plain Layout
246
247      {
248\end_layout
249
250\begin_layout Plain Layout
251
252        MatDat(SliceSampler1D(logDens, x0, x1),1,1)
253\end_layout
254
255\begin_layout Plain Layout
256
257      }
258\end_layout
259
260\begin_layout Plain Layout
261
262    ]]
263\end_layout
264
265\begin_layout Plain Layout
266
267  ]];
268\end_layout
269
270\begin_layout Plain Layout
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
296\begin_layout Plain Layout
297
298//////////////////////////////////////////////////////////////////////////////
299\end_layout
300
301\begin_layout Plain Layout
302
303//Configuration default values over all BysMcmc related components
304\end_layout
305
306\begin_layout Plain Layout
307
308//////////////////////////////////////////////////////////////////////////////
309\end_layout
310
311\begin_layout Plain Layout
312
313  Set _config =
314\end_layout
315
316\begin_layout Plain Layout
317
318  [[
319\end_layout
320
321\begin_layout Plain Layout
322
323  //MCMC dimensions
324\end_layout
325
326\begin_layout Plain Layout
327
328    //The final number realizations that will remain after burnin
329\end_layout
330
331\begin_layout Plain Layout
332
333    Real mcmc.sampleLength = 2000;
334\end_layout
335
336\begin_layout Plain Layout
337
338    //The frequency of simulation notifying and chain cache updating
339\end_layout
340
341\begin_layout Plain Layout
342
343    Real mcmc.cacheLength = 100;
344\end_layout
345
346\begin_layout Plain Layout
347
348    //The number of first realizations that will be skiped at inference
349 and
350\end_layout
351
352\begin_layout Plain Layout
353
354    //diagnostic time
355\end_layout
356
357\begin_layout Plain Layout
358
359    Real mcmc.burnin = 100;
360\end_layout
361
362\begin_layout Plain Layout
363
364    //Only one of each this number of simulations will be selected for
365\end_layout
366
367\begin_layout Plain Layout
368
369    //inference and diagnostic
370\end_layout
371
372\begin_layout Plain Layout
373
374    Real mcmc.thinning = 1; //thinningg
375\end_layout
376
377\begin_layout Plain Layout
378
379    //Maximum of time in seconds dedicated to simulation
380\end_layout
381
382\begin_layout Plain Layout
383
384    //Process will be stoped after mcmc.sampleLength + mcmc.burnin
385\end_layout
386
387\begin_layout Plain Layout
388
389    //simulations or mcmc.maxTime seconds will be elapsed
390\end_layout
391
392\begin_layout Plain Layout
393
394    Real mcmc.maxTime = 1/0;
395\end_layout
396
397\begin_layout Plain Layout
398
399  //MLS step configuration
400\end_layout
401
402\begin_layout Plain Layout
403
404    Text mls.method  = Options::Mls.Method::None;
405\end_layout
406
407\begin_layout Plain Layout
408
409    Real mls.maxIter = 100;
410\end_layout
411
412\begin_layout Plain Layout
413
414    Real mls.tolerance = 0.01;
415\end_layout
416
417\begin_layout Plain Layout
418
419    Real mls.FunnelGibbs.sigmaFactor = 0.01;
420\end_layout
421
422\begin_layout Plain Layout
423
424  //Basic master configuration
425\end_layout
426
427\begin_layout Plain Layout
428
429    //If solution error is great than this value a warning will be shown
430\end_layout
431
432\begin_layout Plain Layout
433
434    Real bsr.cholesky.epsilon = 1.E-13;
435\end_layout
436
437\begin_layout Plain Layout
438
439    //The notifying frequency of Cholesky warning
440\end_layout
441
442\begin_layout Plain Layout
443
444    Real bsr.cholesky.warningFreq = 100;
445\end_layout
446
447\begin_layout Plain Layout
448
449    //The number of burnin realizations in Gibbs drawing of truncated
450\end_layout
451
452\begin_layout Plain Layout
453
454    //multinormal
455\end_layout
456
457\begin_layout Plain Layout
458
459    Real bsr.truncMNormal.gibbsNumIter = 0;
460\end_layout
461
462\begin_layout Plain Layout
463
464    //Scalar sampler used in ARMA block of basic BSR can be a member of
465 
466\end_layout
467
468\begin_layout Plain Layout
469
470    //BysMcmc::Options::Scalar.Sampler or an API equivalent function
471\end_layout
472
473\begin_layout Plain Layout
474
475    Code bsr.scalarSampler.armaBlock = Options::Scalar.Sampler::Slice;
476\end_layout
477
478\begin_layout Plain Layout
479
480    //Scalar sampler used in ARMA block of basic BSR can be a member of
481 
482\end_layout
483
484\begin_layout Plain Layout
485
486    //BysMcmc::Options::Scalar.Sampler or an API equivalent function
487\end_layout
488
489\begin_layout Plain Layout
490
491    Code bsr.scalarSampler.nonLinBlock = Options::Scalar.Sampler::Slice;
492\end_layout
493
494\begin_layout Plain Layout
495
496    //Arima filter method
497\end_layout
498
499\begin_layout Plain Layout
500
501    Text bsr.arimaFilter = Options::Arima.Filter::FastChol;
502\end_layout
503
504\begin_layout Plain Layout
505
506  //CODA and other diagnostic report configuration
507\end_layout
508
509\begin_layout Plain Layout
510
511    //The quantile to be estimated in Raftery test
512\end_layout
513
514\begin_layout Plain Layout
515
516    Real report.raftery.diag.q = 0.025;
517\end_layout
518
519\begin_layout Plain Layout
520
521    //The desired margin of error of the estimate in Raftery test
522\end_layout
523
524\begin_layout Plain Layout
525
526    Real report.raftery.diag.r = 0.007; 
527\end_layout
528
529\begin_layout Plain Layout
530
531    //The probability of obtaining an estimate in the interval (q-r,q+r)
532 in
533\end_layout
534
535\begin_layout Plain Layout
536
537    //Raftery test
538\end_layout
539
540\begin_layout Plain Layout
541
542    Real report.raftery.diag.s = 0.950; 
543\end_layout
544
545\begin_layout Plain Layout
546
547    //Precision required for estimate of time to convergence in Raftery
548 test
549\end_layout
550
551\begin_layout Plain Layout
552
553    Real report.raftery.diag.eps = 0.001;
554\end_layout
555
556\begin_layout Plain Layout
557
558    //Lag of AutoCorrelation Function
559\end_layout
560
561\begin_layout Plain Layout
562
563    Real report.acf.lag= 20;
564\end_layout
565
566\begin_layout Plain Layout
567
568    //Number of divisions in histograms
569\end_layout
570
571\begin_layout Plain Layout
572
573    Real report.histogram.parts = 100;
574\end_layout
575
576\begin_layout Plain Layout
577
578    //Number of divisions in kernel density aproximations
579\end_layout
580
581\begin_layout Plain Layout
582
583    Real report.kerDens.points = 0;
584\end_layout
585
586\begin_layout Plain Layout
587
588  //Generic flags
589\end_layout
590
591\begin_layout Plain Layout
592
593    //If positive then is the number of existent realizations to be recovered
594 
595\end_layout
596
597\begin_layout Plain Layout
598
599    //from disk
600\end_layout
601
602\begin_layout Plain Layout
603
604    //If negative then is the number of last existent realization to be
605\end_layout
606
607\begin_layout Plain Layout
608
609    //skyped
610\end_layout
611
612\begin_layout Plain Layout
613
614    //If zero then no resuming will be made and a new Markov chain will
615 be
616\end_layout
617
618\begin_layout Plain Layout
619
620    //generated
621\end_layout
622
623\begin_layout Plain Layout
624
625    Real do.resume = 0;
626\end_layout
627
628\begin_layout Plain Layout
629
630    //Enables or disables CODA and other diagnostic reports
631\end_layout
632
633\begin_layout Plain Layout
634
635    Real do.report = True;
636\end_layout
637
638\begin_layout Plain Layout
639
640    //Enables or disables in-sample evaluation of forecasting, filter, noise,
641 
642\end_layout
643
644\begin_layout Plain Layout
645
646    //residuals, ...
647\end_layout
648
649\begin_layout Plain Layout
650
651    Real do.eval = True;
652\end_layout
653
654\begin_layout Plain Layout
655
656    //Enables or disables in-sample evaluation of individual linear effects
657\end_layout
658
659\begin_layout Plain Layout
660
661    Real do.linear.effects = True
662\end_layout
663
664\begin_layout Plain Layout
665
666  ]];
667\end_layout
668
669\begin_layout Plain Layout
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
694\begin_layout Plain Layout
695
696//////////////////////////////////////////////////////////////////////////////
697\end_layout
698
699\begin_layout Plain Layout
700
701//Searches a parameter in the user defined configuration NameBlock and,
702 if
703\end_layout
704
705\begin_layout Plain Layout
706
707//not exists returns default value of BsyMcmc::Config
708\end_layout
709
710\begin_layout Plain Layout
711
712//////////////////////////////////////////////////////////////////////////////
713\end_layout
714
715\begin_layout Plain Layout
716
717Anything GetCfgVal(NameBlock config, Text member)
718\end_layout
719
720\begin_layout Plain Layout
721
722{
723\end_layout
724
725\begin_layout Plain Layout
726
727  StdLib::GetConfigValue(config,member,Eval("BysMcmc::Config::"+member))
728\end_layout
729
730\begin_layout Plain Layout
731
732}
733\end_layout
734
735\begin_layout Plain Layout
736
737//////////////////////////////////////////////////////////////////////////////
738\end_layout
739
740\end_inset
741
742
743\end_layout
744
745\begin_layout Section
746
747\family typewriter
748\begin_inset CommandInset label
749LatexCommand label
750name "sub:Nameblock-BysMcmc::BuildCycler()"
751
752\end_inset
753
754Método NameBlock BysMcmc::BuildCycler()
755\end_layout
756
757\begin_layout Standard
758En
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
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
787\begin_layout Plain Layout
788
789//////////////////////////////////////////////////////////////////////////////
790\end_layout
791
792\begin_layout Plain Layout
793
794//Identificador del modelo
795\end_layout
796
797\begin_layout Plain Layout
798
799Text get.name (Real unused)
800\end_layout
801
802\begin_layout Plain Layout
803
804//Identificador de la sesión de trabajo
805\end_layout
806
807\begin_layout Plain Layout
808
809Text get.session (Real unused)
810\end_layout
811
812\begin_layout Plain Layout
813
814//Camino donde se almacena la cadena de Markov en formato binario BBM
815\end_layout
816
817\begin_layout Plain Layout
818
819Text get.path (Real unused)
820\end_layout
821
822\begin_layout Plain Layout
823
824//Nombres de los parámetros de la cadena de Markov
825\end_layout
826
827\begin_layout Plain Layout
828
829Set get.colNames (Real unused)
830\end_layout
831
832\begin_layout Plain Layout
833
834//Simula una realización de la cadena de Markov
835\end_layout
836
837\begin_layout Plain Layout
838
839Matrix draw (Real numSim)
840\end_layout
841
842\begin_layout Plain Layout
843
844//Evalúa los componentes (filtro, ruido, residuos, previsión, ...) de cada
845 
846\end_layout
847
848\begin_layout Plain Layout
849
850//segmento de la regresión para un vector concreto de parámetros.
851\end_layout
852
853\begin_layout Plain Layout
854
855//Este método no es necesario para la simulación pero sí es recomendable
856 
857\end_layout
858
859\begin_layout Plain Layout
860
861//para su posterior diagnosis e inferencia.
862\end_layout
863
864\begin_layout Plain Layout
865
866Set eval(Matrix values)
867\end_layout
868
869\begin_layout Plain Layout
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
895\begin_layout Plain Layout
896
897//////////////////////////////////////////////////////////////////////////////
898\end_layout
899
900\begin_layout Plain Layout
901
902NameBlock my_config =
903\end_layout
904
905\begin_layout Plain Layout
906
907[[
908\end_layout
909
910\begin_layout Plain Layout
911
912  Real mcmc.burnin        =  500;
913\end_layout
914
915\begin_layout Plain Layout
916
917  Real mcmc.sampleLength  = 5000
918\end_layout
919
920\begin_layout Plain Layout
921
922]];
923\end_layout
924
925\begin_layout Plain Layout
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
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
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
971\begin_layout Plain Layout
972
973//////////////////////////////////////////////////////////////////////////////
974\end_layout
975
976\begin_layout Plain Layout
977
978//Notifica la inicialización de la cadena de Markov,
979\end_layout
980
981\begin_layout Plain Layout
982
983//informando del número de variables y el path de almacenamiento
984\end_layout
985
986\begin_layout Plain Layout
987
988Real initializing(Real numVar, Text path)
989\end_layout
990
991\begin_layout Plain Layout
992
993//Notifica que se está simulando la realización
994\end_layout
995
996\begin_layout Plain Layout
997
998//numSim de la cadena de Markov
999\end_layout
1000
1001\begin_layout Plain Layout
1002
1003Real simulating(Real numSim)
1004\end_layout
1005
1006\begin_layout Plain Layout
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
1059Mediante el miembro
1060\series bold
1061Real resume_=config::do.resume
1062\series default
1063, que por defecto está deshabilitado, es posible especificar que se reutilicen
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.
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
1104\begin_inset CommandInset ref
1105LatexCommand ref
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
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
1129
1130\end_inset
1131
1132 y que se comentarán más adelante en
1133\begin_inset CommandInset ref
1134LatexCommand ref
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
1167\begin_inset CommandInset label
1168LatexCommand label
1169name "sub:Nameblock-BysMcmc::DefineBlock()"
1170
1171\end_inset
1172
1173Método NameBlock BysMcmc::DefineBlock()
1174\end_layout
1175
1176\begin_layout Standard
1177En
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
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
1211\begin_inset CommandInset label
1212LatexCommand label
1213name "sub:BysMcmc::_.cmsg"
1214
1215\end_inset
1216
1217Miembro BysMcmc::_.cmsg
1218\end_layout
1219
1220\begin_layout Standard
1221En el fichero
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
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
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
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
1280\begin_inset CommandInset label
1281LatexCommand label
1282name "sub:BysMcmc::Inference"
1283
1284\end_inset
1285
1286Método BysMcmc::Inference
1287\end_layout
1288
1289\begin_layout Standard
1290En
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
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
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
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
1383\begin_inset CommandInset citation
1384LatexCommand cite
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
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
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
1424\begin_inset CommandInset citation
1425LatexCommand cite
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
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
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
1519\begin_inset CommandInset label
1520LatexCommand label
1521name "sub:BysMcmc::Bsr"
1522
1523\end_inset
1524
1525Miembro BysMcmc::Bsr
1526\end_layout
1527
1528\begin_layout Standard
1529En
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
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
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
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
1565\begin_inset CommandInset ref
1566LatexCommand ref
1567reference "cha:BysMcmc::Bsr::Gibbs"
1568
1569\end_inset
1570
1571
1572\end_layout
1573
1574\begin_layout Itemize
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
1588En
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
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
1606\begin_inset CommandInset ref
1607LatexCommand ref
1608reference "cha:BysMcmc::Bsr::Import"
1609
1610\end_inset
1611
1612
1613\end_layout
1614
1615\begin_layout Itemize
1616En
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
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
1636\begin_inset CommandInset ref
1637LatexCommand ref
1638reference "cha:BysMcmc::Bsr::DynHlm"
1639
1640\end_inset
1641
1642
1643\end_layout
1644
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.
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.
1670\end_layout
1671
1672\end_body
1673\end_document
Note: See TracBrowser for help on using the repository browser.