source: tol/doc/modeling/BSR/BSR_P2_S1_BysMcmc.lyx @ 51c3a2f

1941-docker-image-to-testdevel
Last change on this file since 51c3a2f was 51c3a2f, checked in by Jorge Pérez <josp.jorge@…>, 18 years ago

renaming modelation to modeling

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

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