source: tol/doc/modeling/BSR/BSR_P2_S2_Gibbs.lyx @ 6d1c7aa

1941-docker-image-to-testdevel
Last change on this file since 6d1c7aa 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: 51.0 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::Bsr::Gibbs"
69
70\end_inset
71
72BysMcmc::Bsr::Gibbs
73\end_layout
74
75\begin_layout Standard
76Se describen los miembros y métodos generales del
77\series bold
78NameBlock BysMcmc::Bsr::Gibbs
79\series default
80 que implementa los métodos de simulación propiamente dichos de la clase
81 de modelos de BSR y sus extenciones.
82\end_layout
83
84\begin_layout Section
85Descripción
86\end_layout
87
88\begin_layout Standard
89Se encuentra en el fichero
90\begin_inset LatexCommand htmlurl
91target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_gibbs.tol"
92
93\end_inset
94
95 y se trata de la pieza fundamental de BSR y sus extensiones pues contiene
96 los métodos de simulación de cada uno de los bloques posibles por separado,
97 así como el ensamblaje de los bloques del BSR básico en un sólo simulador
98 maestro para poder ser utilizados recursivamente como un bloque dentro
99 de otro simulador maestro.
100 
101\end_layout
102
103\begin_layout Standard
104Cada bloque será un NameBlock que deberá contener al menos lo siguiente:
105\end_layout
106
107\begin_layout Itemize
108Un miembro
109\series bold
110 NameBlock _.blockDef
111\series default
112 creado con el método
113\series bold
114BysMcmc::DefineBlock
115\series default
116 explicado en
117\begin_inset LatexCommand ref
118reference "sub:Nameblock-BysMcmc::DefineBlock()"
119
120\end_inset
121
122 que incluye las características comunes a todos los bloques de simulación.
123\end_layout
124
125\begin_layout Itemize
126Un método
127\series bold
128 Real setStore(Matrix values)
129\series default
130 que cambia el valor de los parámetros llamando al método
131\series bold
132_.blockDef::setStore(values)
133\series default
134 y se ocupa luego, si procede, de actualizar todos los miembros internos
135 necesarios para el condicionamiento a dichos valores en el resto de bloques
136 que dependen de él.
137 Para ello debe conocer perfectamente la semántica de dichos bloques.
138\end_layout
139
140\begin_layout Itemize
141Un método
142\series bold
143 VMatrix draw(Real numSim, ...)
144\series default
145 que genera la
146\series bold
147numSim
148\series default
149-ésima simulación de los valores de los parámetros en función de una serie
150 de argumentos condicionantes opcionales.
151 El método maestro que ensambla los diferentes bloques debe conocer la sintaxis
152 de los métodos
153\series bold
154draw
155\series default
156 de cada uno de sus bloques hijo.
157 Este método debe llamar finalmente a
158\series bold
159setStore
160\series default
161 antes de devolver el vector de valores simulados para asegurar la cadena
162 de condicionamientos.
163\end_layout
164
165\begin_layout Standard
166Cada maestro será un NameBlock que deberá contener al menos los métodos
167 exigidos al argumento
168\series bold
169NameBlock modelSampler
170\series default
171 del método
172\series bold
173BysMcmc::BuildCycler()
174\series default
175 según se describe en
176\begin_inset LatexCommand ref
177reference "sub:Nameblock-BysMcmc::BuildCycler()"
178
179\end_inset
180
181.
182\end_layout
183
184\begin_layout Standard
185También incluye los métodos de llamada a la estimación bayesiana (simulación+dia
186gnosis+inferencia) para ser aplicados sobre un master de simulación concreto
187 de la forma más transparente posible.
188\end_layout
189
190\begin_layout Section
191
192\family typewriter
193\begin_inset LatexCommand label
194name "sec:Método-BysMcmc::Bsr::Gibbs::BasicMaster()"
195
196\end_inset
197
198Método BysMcmc::Bsr::Gibbs::BasicMaster()
199\end_layout
200
201\begin_layout Standard
202El método
203\series bold
204NameBlock BysMcmc::Bsr::Gibbs::BasicMaster(BSR.ModelDef modelDef, NameBlock
205 config)
206\series default
207 se implementa en el fichero
208\begin_inset LatexCommand htmlurl
209target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_basicMaster.tol"
210
211\end_inset
212
213 y sirve para crear el simulador maestro de un modelo BSR básico, es decir
214 sin extensiones, tal y como se define en
215\begin_inset LatexCommand ref
216reference "sec:clase_modelos_BSR"
217
218\end_inset
219
220.
221 El argumento
222\series bold
223modelDef
224\series default
225 se almacena en el miembro
226\series bold
227Set _.modelDef
228\series default
229 pues contiene toda la información necesaria para definir el modelo y poder
230 simular sus parámetros, organizada según la estructura
231\series bold
232BSR.ModelDef
233\series default
234:
235\end_layout
236
237\begin_layout Itemize
238Set DocInfo: Información documental del modelo con estructura BSR.DocInfo
239\end_layout
240
241\begin_deeper
242\begin_layout Itemize
243
244\series bold
245Text Model.Name
246\series default
247: Nombre del modelo que identifica el objetivo del mismo sin distinguir
248 entre diferentes sesiones o implementaciones del mismo.
249\end_layout
250
251\begin_layout Itemize
252T
253\series bold
254ext Model.Description
255\series default
256: Descripción del objetivo del modelo.
257\end_layout
258
259\begin_layout Itemize
260
261\series bold
262Text Session.Name
263\series default
264: Nombre de la sesión o implementación concreta del modelo.
265\end_layout
266
267\begin_layout Itemize
268
269\series bold
270Text Session.Description
271\series default
272: Descripción de los detalles de implementación, forma concreta del modelo,
273 etc.
274\end_layout
275
276\begin_layout Itemize
277
278\series bold
279Text Session.Authors
280\series default
281: Nombre o mejor e-mail del autor o autores separados por comas
282\end_layout
283
284\begin_layout Itemize
285
286\series bold
287Text Session.Creation
288\series default
289: Fecha de creación de la sesión
290\end_layout
291
292\begin_layout Itemize
293
294\series bold
295Text Path
296\series default
297: Camino absoluto del directorio donde almacenar resultados auxiliares y
298 la propia cadena de Markov.
299\end_layout
300
301\end_deeper
302\begin_layout Itemize
303
304\series bold
305Set LinearBlock
306\series default
307: Tabla de parámetros del bloque lineal principal y sus valores iniciales
308 dada por filas de estructura BSR.LinearBlock
309\end_layout
310
311\begin_deeper
312\begin_layout Itemize
313
314\series bold
315Text Name
316\series default
317: Nombre del parámetro
318\end_layout
319
320\begin_layout Itemize
321
322\series bold
323Real InitialValue
324\series default
325: Valor inicial.
326 Los valores iniciales deberían cumplir las restricciones pues aún no existe
327 un método seguro y eficiente de encontrarlos de forma genérica.
328\end_layout
329
330\end_deeper
331\begin_layout Itemize
332
333\series bold
334Set InputMissingBlock
335\series default
336: Tabla de omitidos del input con elementos de estructura
337\series bold
338BSR.MissingBlock
339\series default
340 
341\end_layout
342
343\begin_deeper
344\begin_layout Itemize
345
346\series bold
347Text Name
348\series default
349: Nombre de la variable de omisión.
350\end_layout
351
352\begin_layout Itemize
353
354\series bold
355Real Index
356\series default
357: El índice
358\begin_inset Formula $k=1\ldots K_{0}$
359\end_inset
360
361 identificador del omitido.
362\end_layout
363
364\begin_layout Itemize
365
366\series bold
367Real Row
368\series default
369: El número de ecuación
370\begin_inset Formula $t=1\ldots M$
371\end_inset
372
373 en la que aparece el omitido.
374\end_layout
375
376\begin_layout Itemize
377
378\series bold
379Real Col
380\series default
381: El número de columna aquí no tiene sentido pues el output sólo tiene una
382 columna.
383\end_layout
384
385\begin_layout Itemize
386
387\series bold
388Text Prior
389\series default
390: Identificador del tipo de a priori.
391 Puede ser la cadena vacía,
392\series bold
393
394\begin_inset Quotes eld
395\end_inset
396
397Normal
398\begin_inset Quotes erd
399\end_inset
400
401
402\series default
403 o
404\series bold
405
406\begin_inset Quotes eld
407\end_inset
408
409TruncatedNormal
410\begin_inset Quotes erd
411\end_inset
412
413
414\end_layout
415
416\begin_layout Itemize
417
418\series bold
419Real Nu
420\series default
421: La media de la distribución a priori o el valor inicial si no hay a priori
422\end_layout
423
424\begin_layout Itemize
425
426\series bold
427Real Sigma2
428\series default
429: La varianza de la distribución a priori o
430\begin_inset Formula $+\infty$
431\end_inset
432
433 si no hay a priori
434\end_layout
435
436\begin_layout Itemize
437
438\series bold
439Real MinBound
440\series default
441: El límite inferior o
442\begin_inset Formula $-\infty$
443\end_inset
444
445 si se desconoce o no existe.
446\end_layout
447
448\begin_layout Itemize
449
450\series bold
451Real MaxBound
452\series default
453: El límite superior o
454\begin_inset Formula $+\infty$
455\end_inset
456
457 si se desconoce o no existe.
458\end_layout
459
460\end_deeper
461\begin_layout Itemize
462
463\series bold
464Set OutputMissingBlock
465\series default
466: Tabla de omitidos del output con elementos de esa misma estructura
467\series bold
468BSR.MissingBlock,
469\series default
470salvo que el número de columna aquí no tiene mucho sentido pues el output
471 sólo tiene una columna y se rellena siempre a 1.
472\end_layout
473
474\begin_layout Itemize
475
476\series bold
477Set NoiseDistrib
478\series default
479: Tabla de definición de la distribución del ruido de cada segmento y del
480 propio segmento, definido cada uno por un elemento de estructura BSR.NoiseDistri
481b
482\end_layout
483
484\begin_deeper
485\begin_layout Itemize
486
487\series bold
488Text Name
489\series default
490: Identificador del segmento.
491 Por ejemplo en un modelo jerárquico se suele usar el nombre del nodo.
492\end_layout
493
494\begin_layout Itemize
495
496\series bold
497Real Nu
498\series default
499: Media del ruido.
500 De momento debe ser cero y es posible que desaparezca.
501\end_layout
502
503\begin_layout Itemize
504
505\series bold
506Text SigmaName
507\series default
508: Si no es la cadena vacía indica que la varianza de este segmento es un
509 parámetro desconocido a simular en el modelo.
510\end_layout
511
512\begin_layout Itemize
513
514\series bold
515Real SigmaIndex
516\series default
517: En el caso de el campo anterior no sea la cadena vacía indica la posición
518 del parámetro varianza dentro del bloque de varianzas.
519\end_layout
520
521\begin_layout Itemize
522
523\series bold
524Set Arima
525\series default
526: Estructura ARIMA del segmento.
527 Puede ser un conjunto vacío o de elementos con estructura
528\series bold
529ARIMAStruct
530\series default
531 como se describe en
532\begin_inset LatexCommand ref
533reference "sec:Método-BysMcmc::Bsr::Gibbs::ArimaBlock()"
534
535\end_inset
536
537
538\end_layout
539
540\begin_layout Itemize
541
542\series bold
543Set ArimaAuxInfo
544\series default
545: Información auxiliar que se creará y manejará internamente en el bloque
546 ARIMA como se describe en
547\begin_inset LatexCommand ref
548reference "sec:Método-BysMcmc::Bsr::Gibbs::ArimaBlock()"
549
550\end_inset
551
552.
553 Se debe pasar el conjunto vacío.
554\end_layout
555
556\begin_layout Itemize
557
558\series bold
559VMatrix Cov
560\series default
561: Matriz de covarianzas del segmento.
562 Por el momento debe ser diagonal.
563\end_layout
564
565\begin_layout Itemize
566
567\series bold
568VMatrix L
569\series default
570: Descomposición de Choleski de Cov.
571\end_layout
572
573\begin_layout Itemize
574
575\series bold
576VMatrix Li
577\series default
578: Inversa de L.
579\end_layout
580
581\begin_layout Itemize
582
583\series bold
584Set EquIdx
585\series default
586: Índices de las ecuaciones contenidas en el segmento.
587 Deben ser consecutivas para mayor eficiencia.
588\end_layout
589
590\begin_layout Itemize
591
592\series bold
593Set TimeInfo
594\series default
595: Información temporal del segmento si es que la dimensión del mismo es
596 el tiempo.
597 Se utiliza en la creación de informes de evaluación de resultados pero
598 no en la simulación en sí misma.
599 Si no la tiene es el conjunto vacío y en oto caso se especifica mediante
600 un conjunto con estructura BSR.NoiseTimeInfo:
601\end_layout
602
603\begin_deeper
604\begin_layout Itemize
605
606\series bold
607TimeSet Dating
608\series default
609: Fechado de las series involucradas.
610\end_layout
611
612\begin_layout Itemize
613
614\series bold
615Date FirstDate
616\series default
617: Fecha de inicio.
618\end_layout
619
620\begin_layout Itemize
621
622\series bold
623Date LastDate
624\series default
625: Fecha final.
626\end_layout
627
628\end_deeper
629\end_deeper
630\begin_layout Itemize
631
632\series bold
633VMatrix Y
634\series default
635: Matriz de output en términos originales con todos los segmentos ordenados
636 secuencialmente.
637\end_layout
638
639\begin_layout Itemize
640
641\series bold
642VMatrix X
643\series default
644: Matriz sparse de input en términos originales con todos los segmentos
645 ordenados secuencialmente.
646\end_layout
647
648\begin_layout Itemize
649
650\series bold
651VMatrix a
652\series default
653: Matriz de frontera de las inecuaciones lineales que restringen los parámetros
654 del bloque lineal
655\end_layout
656
657\begin_layout Itemize
658
659\series bold
660VMatrix A
661\series default
662: Matriz de coeficientes de las inecuaciones lineales que restringen los
663 parámetros del bloque lineal
664\end_layout
665
666\begin_layout Standard
667Los bloques manejados por el maestro básico son los siguientes
668\end_layout
669
670\begin_layout Enumerate
671
672\series bold
673NameBlock _.lin.blk
674\series default
675: El bloque lineal principal se crea llamando a
676\series bold
677NameBlock BysMcmc::Bsr::Gibbs::StdLinearBlock
678\series default
679(ver
680\begin_inset LatexCommand ref
681reference "sec:Método-BysMcmc::Bsr::Gibbs::StdLinearBlock()"
682
683\end_inset
684
685)
686\end_layout
687
688\begin_layout Enumerate
689
690\series bold
691NameBlock _.sig.blk
692\series default
693: El bloque de varianzas se crea llamando a
694\series bold
695NameBlock BysMcmc::Bsr::Gibbs::SigmaBlock
696\series default
697(ver
698\begin_inset LatexCommand ref
699reference "sec:Método-BysMcmc::Bsr::Gibbs::SigmaBlock()"
700
701\end_inset
702
703)
704\end_layout
705
706\begin_layout Enumerate
707
708\series bold
709NameBlock _.arm.blk
710\series default
711: El bloque ARMAs se crea llamando a
712\series bold
713NameBlock BysMcmc::Bsr::Gibbs::ArimaBlock
714\series default
715(ver
716\begin_inset LatexCommand ref
717reference "sec:Método-BysMcmc::Bsr::Gibbs::ArimaBlock()"
718
719\end_inset
720
721)
722\end_layout
723
724\begin_layout Enumerate
725
726\series bold
727NameBlock _.inpMis.blk
728\series default
729: El bloque de omitidos del input se crea llamando a
730\series bold
731NameBlock BysMcmc::Bsr::Gibbs::InputMissingBlock
732\series default
733(ver
734\begin_inset LatexCommand ref
735reference "sec:Método-BysMcmc::Bsr::Gibbs::InputMissingBlock()"
736
737\end_inset
738
739)
740\end_layout
741
742\begin_layout Enumerate
743
744\series bold
745NameBlock _.outMis.blk
746\series default
747: El bloque de varianzas se crea llamando a
748\series bold
749NameBlock BysMcmc::Bsr::Gibbs::OutputMissingBlock
750\series default
751(ver
752\begin_inset LatexCommand ref
753reference "sec:Método-BysMcmc::Bsr::Gibbs::OututMissingBlock()"
754
755\end_inset
756
757)
758\end_layout
759
760\begin_layout Standard
761Todos ellos se almacenan dentro de un miembro
762\series bold
763Set _.blocks
764\series default
765 que garantiza el orden ejecución de algunos métodos genéricos de bloques.
766\end_layout
767
768\begin_layout Standard
769El método
770\series bold
771VMatrix findMatchingBeta(VMatrix givenInitVal)
772\series default
773 comprueba que los valores iniciales son congruentes con las restricciones
774 y en caso contrario intenta encontrar otros que sí lo sean aunque esto
775 Ãºltimo no está garantizado por el momento
776\end_layout
777
778\begin_layout Standard
779El método
780\series bold
781Real initialize(Real unused)
782\series default
783 llama a
784\series bold
785findMatchingBeta
786\series default
787 e inicializa todos los bloques.
788\end_layout
789
790\begin_layout Standard
791El método principal
792\series bold
793VMatrix draw(Real numSim)
794\series default
795 muestrea todos los bloques en el orden adecuado, almacena resultados intermedio
796s para mayor eficiencia y finalmente concatena las muestras de los bloques
797 según el orden establecido.
798\end_layout
799
800\begin_layout Standard
801Como es obvio, este NameBlock implementa los métodos obligatorios de un
802 simulador maestro según se describe en
803\begin_inset LatexCommand ref
804reference "sub:Nameblock-BysMcmc::BuildCycler()"
805
806\end_inset
807
808, y además el método
809\series bold
810Real setStore(Matrix values)
811\series default
812 que se utilizará para usar el simulador como un bloque de otro simulador
813 maestro, tal y como se explica en
814\begin_inset LatexCommand ref
815reference "sec:Método-BysMcmc::Bsr::Gibbs::BsrAsBlock()"
816
817\end_inset
818
819.
820\end_layout
821
822\begin_layout Section
823
824\family typewriter
825\begin_inset LatexCommand label
826name "sec:Método-BysMcmc::Bsr::Gibbs::StdLinearBlock()"
827
828\end_inset
829
830Método BysMcmc::Bsr::Gibbs::StdLinearBlock()
831\end_layout
832
833\begin_layout Standard
834El método
835\series bold
836NameBlock BysMcmc::Bsr::Gibbs::StdLinearBlock(Text name, Set colNames, Real
837 numBlock, Real firstCol, NameBlock config)
838\series default
839 se implementa en el fichero
840\begin_inset LatexCommand htmlurl
841target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_stdLinearBlock.tol"
842
843\end_inset
844
845 y sirve para crear el simulador de un bloque lineal estandarizado, no necesaria
846mente el bloque lineal principal de una regresión, sino que también puede
847 ser el utilizado en los tratamientos de omitidos y cualquier otra situación
848 que requiera simular los parámetros de una regresión lineal con restricciones
849 de desigualdad lineal opcionales, tal y como se describe en el capítulo
850 
851\begin_inset LatexCommand ref
852reference "cha:El-bloque-lineal"
853
854\end_inset
855
856.
857\end_layout
858
859\begin_layout Standard
860En tiempo de creación del bloque no se sabe apenas nada aún de las dimensiones
861 y aún menos del contenido de sus miembros que serán introducidos posteriormente
862 mediante una llamada al método
863\series bold
864Real initialize(VMatrix beta0, VMatrix A, VMatrix a)
865\series default
866, que se ocupa de asignar valores iniciales de los parámetros
867\begin_inset Formula $\beta_{0}$
868\end_inset
869
870, almacenar las restricciones
871\begin_inset Formula $A\cdot\beta\leq a$
872\end_inset
873
874 que han de ser, si las hay, inmutables a lo largo de las simulaciones,
875 y de comprobar que se cumplen para los valores iniciales, es decir que
876 
877\begin_inset Formula $A\cdot\beta_{0}\leq a$
878\end_inset
879
880.
881 Lógicamente, la matriz
882\series bold
883A
884\series default
885, si no está vacía, debe tener tantas columnas como filas tenga
886\series bold
887beta0
888\series default
889, y tantas filas como
890\series bold
891a
892\series default
893.
894 También se ocupa de asignar el método de muestreo al miembro oculto
895\series bold
896_drawer
897\series default
898, ya que se dispone de métodos diferenciados de muestreo para el caso de
899 haber restricciones
900\series bold
901VMatrix draw.constrained(Real numSim, VMatrix Y, VMatrix X)
902\series default
903, o no haberlas
904\series bold
905VMatrix draw.unconstrained(Real numSim, VMatrix Y, VMatrix X).
906
907\series default
908 
909\end_layout
910
911\begin_layout Standard
912En ambos casos la matriz
913\series bold
914X
915\series default
916 debe tener tantas columnas como filas tuviera la matriz
917\series bold
918beta0
919\series default
920 en la llamada a
921\series bold
922initialize
923\series default
924, pero el número de filas puede variar en cada iteración siempre que coincida
925 con el de la matriz
926\series bold
927Y.
928 
929\series default
930Los dos métodos llaman inicialmente al método
931\series bold
932NameBlock solve(Real numSim, VMatrix Y, VMatrix X)
933\series default
934 para calcular el vector de medias y la descomposición de la matriz de covarianz
935as de la multinormal asociada a la regresión lineal tal y como se describe
936 en la ecuación
937\begin_inset LatexCommand ref
938reference "eq:media-cov-bloque-lineal"
939
940\end_inset
941
942.
943 En el caso sin restricciones el método implementa las ecuaciones
944\begin_inset LatexCommand ref
945reference "eq:muestreo-bloque-lineal-sin-restricciones"
946
947\end_inset
948
949 de forma casi trivial.
950 Si hay restricciones se implementa el algoritmo
951\begin_inset LatexCommand ref
952reference "sub:Algoritmo-de-simulación-trunc-multi-normal"
953
954\end_inset
955
956.
957\end_layout
958
959\begin_layout Standard
960El método principal
961\series bold
962VMatrix draw(Real numSim, VMatrix Y, VMatrix X)
963\series default
964 llamará finalmente al
965\series bold
966_drawer
967\series default
968 si el bloque está habilitado, pues en otro caso devuelve el último valor
969 almacenado de forma constante, lo cual, si no hay ninguna injerencia externa,
970 supondrá devolver siempre
971\series bold
972beta0
973\series default
974.
975\end_layout
976
977\begin_layout Standard
978Hay que hacer notar que, para cumplir con la condición de estandarización,
979 es preciso dividir cada fila de Y y de X por la sigma correspondiente al
980 segmento en el que se encuentre, y, si existe parte ARIMA, es necesario
981 también filtrar previamente tanto el input como el output antes de llamar
982 a este método draw.
983\end_layout
984
985\begin_layout Section
986
987\family typewriter
988\begin_inset LatexCommand label
989name "sec:Método-BysMcmc::Bsr::Gibbs::SigmaBlock()"
990
991\end_inset
992
993Método BysMcmc::Bsr::Gibbs::SigmaBlock()
994\end_layout
995
996\begin_layout Standard
997El método
998\series bold
999NameBlock BysMcmc::Bsr::Gibbs::SigmaBlock(Text name, Set NoiseDistrib, Real
1000 numBlock, Real firstCol, NameBlock config)
1001\series default
1002 se implementa en el fichero
1003\begin_inset LatexCommand htmlurl
1004target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_sigmaBlock.tol"
1005
1006\end_inset
1007
1008 y sirve para crear el simulador de un bloque de varianzas tal y como se
1009 describe en el capítulo
1010\begin_inset LatexCommand ref
1011reference "cha:El-bloque-de-varianzas"
1012
1013\end_inset
1014
1015.
1016 El bloque contiene los parámetros
1017\begin_inset Formula $\sigma_{k}^{2}$
1018\end_inset
1019
1020 correspondientes a las varianzas de cada uno de los segmentos de regresión
1021 con varianza desconocida, los cuales se referencian en el miembro
1022\series bold
1023Set _.sigmaBlockVar
1024\series default
1025 creado en tiempo de creación del manejador a partir del argumento de llamada
1026 
1027\series bold
1028Set NoiseDistrib
1029\series default
1030 con elementos de estructura
1031\series bold
1032BSR.NoiseDistrib
1033\series default
1034, uno para cada segmento, y que se corresponde con el campo de igual nombre
1035 de la estructura
1036\series bold
1037BSR.ModelDef
1038\series default
1039 almacenado en el miembro
1040\series bold
1041Set _.modelDef
1042\series default
1043 del simulador maestro creado con
1044\series bold
1045BysMcmc::Bsr::Gibbs::BasicMaster()
1046\series default
1047.
1048\end_layout
1049
1050\begin_layout Standard
1051El método principal
1052\series bold
1053VMatrix draw(Real numSim, VMatrix noise)
1054\series default
1055 llamará a
1056\series bold
1057VMatrix draw.invRandChisq(Real numSim, VMatrix noise)
1058\series default
1059 si el bloque está habilitado, pues en otro caso devuelve el último valor
1060 almacenado de forma constante.
1061 En este caso será el generador maestro quien se ocupe de asignar un valor
1062 inicial pues el valor por defecto es cero.
1063\end_layout
1064
1065\begin_layout Standard
1066Quedan por implementar los siguientes aspectos:
1067\end_layout
1068
1069\begin_layout Itemize
1070Introducción de información a priori sobre cada varianza
1071\end_layout
1072
1073\begin_layout Itemize
1074Introducción de información latente para un grupo de varianzas
1075\end_layout
1076
1077\begin_layout Itemize
1078Modelos heterocedásticos
1079\end_layout
1080
1081\begin_layout Section
1082
1083\family typewriter
1084\begin_inset LatexCommand label
1085name "sec:Método-BysMcmc::Bsr::Gibbs::ArimaBlock()"
1086
1087\end_inset
1088
1089Método BysMcmc::Bsr::Gibbs::ArimaBlock()
1090\end_layout
1091
1092\begin_layout Standard
1093El método
1094\series bold
1095NameBlock BysMcmc::Bsr::Gibbs::ArimaBlock(Text name, Set NoiseDistrib, Real
1096 numBlock, Real firstCol, NameBlock config)
1097\series default
1098 se implementa en el fichero
1099\begin_inset LatexCommand htmlurl
1100target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_arimaBlock.tol"
1101
1102\end_inset
1103
1104 y sirve para crear el simulador del bloque de parámetros ARMA tal y como
1105 se describe en el capítulo
1106\begin_inset LatexCommand ref
1107reference "cha:El-bloque-ARIMA"
1108
1109\end_inset
1110
1111.
1112 El bloque contiene los parámetros
1113\begin_inset Formula $\phi,\theta$
1114\end_inset
1115
1116 correspondientes a los polinomios AR y MA respectivamente de cada uno de
1117 los segmentos de regresión para los que se haya definido dicha estructura,
1118 los cuales se referencian en el miembro
1119\series bold
1120Set _.armaParamBlock
1121\series default
1122 creado en tiempo de creación del manejador a partir del argumento de llamada
1123 
1124\series bold
1125Set NoiseDistrib
1126\series default
1127 con elementos de estructura
1128\series bold
1129BSR.NoiseDistrib
1130\series default
1131, uno para cada segmento,que se almacena en el miembro
1132\series bold
1133Set _.NoiseDistrib
1134\series default
1135 y que se corresponde con el campo de igual nombre de la estructura
1136\series bold
1137BSR.ModelDef
1138\series default
1139 almacenado en el miembro
1140\series bold
1141Set _.modelDef
1142\series default
1143 del simulador maestro creado con
1144\series bold
1145BysMcmc::Bsr::Gibbs::BasicMaster()
1146\series default
1147.
1148 En el miembro
1149\series bold
1150Set _.arimaParamBlock
1151\series default
1152 se almacenan los índices de todos aquellos que tengan estructura ARIMA,
1153 es decir los de
1154\series bold
1155_.armaParamBlock
1156\series default
1157 más los que tengan sólo estructura determinista definida habitualmente
1158 mediante un polinomio unitario, también llamado de diferencias pues suele
1159 ser de la forma
1160\begin_inset Formula $\left(1-B^{k}\right)^{n}$
1161\end_inset
1162
1163.
1164 Estas estructuras deterministas obviamente no tienen parámetros que simular
1165 y se usan sólo para filtrar las matrices de input y output de la regresión
1166 lineal y construir así el ruido diferenciado o ruido ARMA.
1167\end_layout
1168
1169\begin_layout Standard
1170Los polinomios AR y MA están en todo momento recogidos en el campo
1171\series bold
1172Set Arima
1173\series default
1174 de cada elemento del miembro
1175\series bold
1176_.NoiseDistrib
1177\series default
1178.
1179 Cada elemento corresponde a un factor de estacionalidad arbitraria y tiene
1180 estructura
1181\series bold
1182ARIMAStruct
1183\series default
1184, siendo los grados de los factores AR y MA 0, 1 ó 2.
1185 Al margen de ello se almacena toda la información auxiliar, alguna aparentement
1186e ?, necesaria para acelerar los cálculos en el campo
1187\series bold
1188Set ArimaAuxInfo
1189\series default
1190 que no tiene una estructura fija pues su contenido depende de si hay parte
1191 ARMA, sólo diferencias o nada de parte ARIMA.
1192\end_layout
1193
1194\begin_layout Standard
1195Toda esta información auxiliar se asigna mediante el método
1196\series bold
1197Real initialize(Real unused)
1198\series default
1199 que se llama antes de la propia creación del almacén genérico _.blockDef
1200 , ya que antes de eso ni siquiera se conocen aún el número ni los nombres
1201 de las variables AR y MA implicadas.
1202\end_layout
1203
1204\begin_layout Standard
1205Una vez simulados los parámetros ARMA, se llama al método
1206\series bold
1207Real calcAllArimaBlockLi(Real numSim)
1208\series default
1209 llama para cada segmento
1210\series bold
1211_.armaParamBlock
1212\series default
1213 al método
1214\series bold
1215Real calcArimaBlockLi(BSR.NoiseDistrib segment)
1216\series default
1217 que llama a su vez a
1218\series bold
1219ARMAProcess::FastCholeskiCovFactor
1220\series default
1221 implementado en
1222\begin_inset LatexCommand htmlurl
1223target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/arima/_arma_process.tol"
1224
1225\end_inset
1226
1227, para calcular la descomposición sintética explicada en
1228\begin_inset LatexCommand ref
1229reference "sub:Algoritmo-de-la-descomposición-ARMA-sintética"
1230
1231\end_inset
1232
1233.
1234 También se le llama al principio del todo para que se pueda utilizar el
1235 filtro ARIMA con los valores iniciales.
1236\end_layout
1237
1238\begin_layout Standard
1239El método
1240\series bold
1241VMatrix filter(VMatrix X)
1242\series default
1243 se ocupa de filtrar de la parte ARIMA conjunta a una matriz (input,output,noise
1244,etc.) referida a todos los segmentos que no sean de ruido blanco puro, filtrando
1245 primero la parte determinista mediante una llamada a
1246\series bold
1247VMatrix filter.deterministic(VMatrix X)
1248\series default
1249; y luego se encarga de la parte estocástica el método
1250\series bold
1251VMatrix filter.arma(VMatrix DX)
1252\series default
1253 que llama en ciclo para cada segmento al método
1254\series bold
1255VMatrix filterJustBlock(BSR.NoiseDistrib segment, VMatrix X)
1256\series default
1257 que se ocupa de filtrar la parte ARMA de un segmento concreto aplicando
1258 el algoritmo
1259\begin_inset LatexCommand ref
1260reference "sub:Algoritmo-de-filtrado ARMA sintético"
1261
1262\end_inset
1263
1264.
1265\end_layout
1266
1267\begin_layout Standard
1268Si el bloque está habilitado, pues en otro caso devuelve el último valor
1269 almacenado de forma constante, el método principal
1270\series bold
1271VMatrix draw(Real numSim, VMatrix noise, VMatrix sigBlk)
1272\series default
1273 llamará a
1274\series bold
1275VMatrix draw.ARMS(Real numSim, VMatrix noise, VMatrix sigBlk)
1276\series default
1277 que aplica el método ARMS de simulación de los parámetros AR y MA uno por
1278 uno condicionados al resto, tal y como se describe en
1279\begin_inset LatexCommand ref
1280reference "sec:Distribución-condicionada-de-los-parámetros-ARMA"
1281
1282\end_inset
1283
1284.
1285 Los límites de muestreo de cada factor AR ó MA se calculan mediante ARMAProcess
1286::StationarityBounds.2 implementada también en
1287\begin_inset LatexCommand htmlurl
1288target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/arima/_arma_process.tol"
1289
1290\end_inset
1291
1292.
1293 Para ello, primero simula los valores iniciales condicionados a los valores
1294 actuales de los productos ARMA, mediante el método
1295\series bold
1296ARMAProcess::Eval.Almagro(...)::Draw.U_cond_Z(0)
1297\series default
1298 implementado en
1299\begin_inset LatexCommand htmlurl
1300target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/arima/_arma_process.tol"
1301
1302\end_inset
1303
1304, pero no los almacena en la cadena de Markov ya que son fácilmente reproducible
1305s en el remoto caso en que hicieran falta, y pueden ocupar mucho espacio
1306 si la estacionalidad de los factores es grande.
1307 Luego se simulan todos los parámetros ARMA condicionados a dichos valores
1308 iniciales con el método ARMS aplicado ala función de densidad implementada
1309 en ese mismo fichero con el nombre
1310\series bold
1311ARMAProcess::Eval.Almagro(...)::LogLH.Z_cond_U(0)
1312\series default
1313.
1314\end_layout
1315
1316\begin_layout Standard
1317Quedan por implementar los siguientes aspectos:
1318\end_layout
1319
1320\begin_layout Itemize
1321Introducción de información a priori sobre cada parámetro ARMA
1322\end_layout
1323
1324\begin_layout Itemize
1325Introducción de información latente para un grupo de parámetros referidos
1326 a un mismo parámetro (mismos indicadores de factor, estacionalidad, AR
1327 Ã³ MA, grado) en diferentes segmentos con estructura ARIMA equivalente.
1328\end_layout
1329
1330\begin_layout Itemize
1331Pruebas con el método Slice Sampler alternativo a ARMS que además no precisa
1332 de un intervalo exacto de límites de simulación.
1333\end_layout
1334
1335\begin_layout Section
1336
1337\family typewriter
1338\begin_inset LatexCommand label
1339name "sec:Método-BysMcmc::Bsr::Gibbs::InputMissingBlock()"
1340
1341\end_inset
1342
1343Método BysMcmc::Bsr::Gibbs::InputMissingBlock()
1344\end_layout
1345
1346\begin_layout Standard
1347El método
1348\series bold
1349NameBlock BysMcmc::Bsr::Gibbs::InputMissingBlock(Text name, Set inputMissingBloc
1350k, Real numBlock, Real firstCol, NameBlock config)
1351\series default
1352 se implementa en el fichero
1353\begin_inset LatexCommand htmlurl
1354target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_inputMissingBlock.tol"
1355
1356\end_inset
1357
1358 y sirve para crear el simulador de un bloque de valores omitidos en el
1359 input, tal y como se describe en el capítulo
1360\begin_inset LatexCommand ref
1361reference "cha:El-bloque-de-omitidos"
1362
1363\end_inset
1364
1365.
1366 El bloque contiene los parámetros
1367\begin_inset Formula $u$
1368\end_inset
1369
1370 correspondientes a los valores desconocidos de todos los inputs de cada
1371 uno de los bloques de regresión.
1372 
1373\end_layout
1374
1375\begin_layout Standard
1376El acceso a los datos en el modelo BSR lo proporciona el argumento
1377\series bold
1378inputMissingBlock
1379\series default
1380 con elementos de estructura
1381\series bold
1382BSR.MissingBlock
1383\series default
1384, uno para dato omitido, y que viene dado siempre como el campo
1385\series bold
1386 _.modelDef->InputMissingBlock
1387\series default
1388 de la estructura
1389\series bold
1390BSR.ModelDef
1391\series default
1392 correspondiente al miembro
1393\series bold
1394Set _.modelDef
1395\series default
1396 del simulador maestro creado con
1397\series bold
1398BysMcmc::Bsr::Gibbs::BasicMaster()
1399\series default
1400.
1401 Este argumento incluye en cada elemento
1402\series bold
1403inputMissingBlock
1404\series default
1405[k] con la estructura
1406\series bold
1407BSR.MissingBlock
1408\series default
1409definida en
1410\begin_inset LatexCommand ref
1411reference "sec:Método-BysMcmc::Bsr::Gibbs::BasicMaster()"
1412
1413\end_inset
1414
1415
1416\end_layout
1417
1418\begin_layout Standard
1419En resumen, la distribución a priori puede ser una cualquiera de estas
1420\end_layout
1421
1422\begin_layout Itemize
1423no informativa: si es
1424\series bold
1425Sigma2
1426\series default
1427 igual a
1428\begin_inset Formula $+\infty$
1429\end_inset
1430
1431 y
1432\series bold
1433MinBound
1434\series default
1435 y
1436\series bold
1437MaxBound
1438\series default
1439 son
1440\begin_inset Formula $-\infty$
1441\end_inset
1442
1443 y
1444\begin_inset Formula $+\infty$
1445\end_inset
1446
1447 respectivamente.
1448\end_layout
1449
1450\begin_layout Itemize
1451uniforme en un intervalo: si es
1452\series bold
1453Sigma2
1454\series default
1455 igual a
1456\begin_inset Formula $+\infty$
1457\end_inset
1458
1459 y al menos uno de los dos límites
1460\series bold
1461MinBound
1462\series default
1463 o
1464\series bold
1465MaxBound
1466\series default
1467 son finitos.
1468 
1469\end_layout
1470
1471\begin_layout Itemize
1472normal: si es
1473\series bold
1474Sigma2
1475\series default
1476 un valor finito y
1477\series bold
1478 MinBound
1479\series default
1480 y
1481\series bold
1482MaxBound
1483\series default
1484 son
1485\begin_inset Formula $-\infty$
1486\end_inset
1487
1488 y
1489\begin_inset Formula $+\infty$
1490\end_inset
1491
1492 respectivamente.
1493\end_layout
1494
1495\begin_layout Itemize
1496normal truncada: si es
1497\series bold
1498Sigma2
1499\series default
1500 un valor finito y al menos uno de los dos límites
1501\series bold
1502MinBound
1503\series default
1504 o
1505\series bold
1506 MaxBound
1507\series default
1508 son finitos.
1509 
1510\end_layout
1511
1512\begin_layout Standard
1513La información a priori se recoge en los siguientes miembros, todos ellos
1514 son inmutables a lo largo de las simulaciones y referidos a la fórmula
1515 
1516\begin_inset LatexCommand ref
1517reference "eq:apriori-omitidos-input"
1518
1519\end_inset
1520
1521:
1522\end_layout
1523
1524\begin_layout Itemize
1525
1526\series bold
1527VMatrix _.prior.
1528\series default
1529si: Puesto que la distribución a priori es independiente para cada omitido
1530 su covarianza es diagonal y se puede definir la inversa de su descomposición
1531 de Choleski, es decir
1532\begin_inset Formula $L_{u}$
1533\end_inset
1534
1535, como un vector.
1536 
1537\end_layout
1538
1539\begin_layout Itemize
1540
1541\series bold
1542VMatrix _.prior.X
1543\series default
1544: La matriz de Cholesky
1545\begin_inset Formula $L_{u}$
1546\end_inset
1547
1548 extendida con ceros donde no hay información a priori.
1549\end_layout
1550
1551\begin_layout Itemize
1552
1553\series bold
1554VMatrix _.prior.Y
1555\series default
1556: El producto
1557\begin_inset Formula $L_{u}\cdot\mu_{u}$
1558\end_inset
1559
1560 extendido con ceros donde no hay información a priori.
1561\end_layout
1562
1563\begin_layout Itemize
1564
1565\series bold
1566VMatrix _.prior.A
1567\series default
1568: La matriz de coeficientes de las inecuaciones
1569\begin_inset Formula $A_{u}$
1570\end_inset
1571
1572 
1573\end_layout
1574
1575\begin_layout Itemize
1576
1577\series bold
1578VMatrix _.prior.a
1579\series default
1580: La matriz de frontera de las inecuaciones
1581\begin_inset Formula $a_{u}$
1582\end_inset
1583
1584 
1585\end_layout
1586
1587\begin_layout Standard
1588Los campos
1589\series bold
1590Index
1591\series default
1592,
1593\series bold
1594Row
1595\series default
1596, y
1597\series bold
1598Col
1599\series default
1600 definen la matriz booleana
1601\begin_inset Formula $\delta^{v}\in\{0,1\}^{M\times K_{0}}$
1602\end_inset
1603
1604de ubicación de los omitidos.
1605 Para optimizar los procesos de actualización y extracción de la información
1606 necesaria se crean una serie de miembros de indexación creados a partir
1607 de los campos de ubicación, y por tanto inmutables durante la simulación:
1608\end_layout
1609
1610\begin_layout Itemize
1611
1612\series bold
1613Matrix _.tj
1614\series default
1615: La matriz de pares (ecuación, variable) ó (Row,Col) ó
1616\begin_inset Formula $\left(t,j\right)$
1617\end_inset
1618
1619
1620\end_layout
1621
1622\begin_layout Itemize
1623
1624\series bold
1625Matrix _.tk
1626\series default
1627: La matriz de pares (ecuación, omitido) ó (Row,Index) ó
1628\begin_inset Formula $\left(t,k\right)$
1629\end_inset
1630
1631
1632\end_layout
1633
1634\begin_layout Itemize
1635
1636\series bold
1637Set _.j
1638\series default
1639: El conjunto de variables afectadas por omitidos
1640\end_layout
1641
1642\begin_layout Standard
1643Todos estos miembros inmutables se asignan mediante el método
1644\series bold
1645Real initialize(Real unused)
1646\series default
1647 que se llama en la propia creación.
1648\end_layout
1649
1650\begin_layout Standard
1651Con toda esta información se genera internamente un bloque lineal llamando
1652 a
1653\series bold
1654NameBlock BysMcmc::Bsr::Gibbs::StdLinearBlock
1655\series default
1656 (ver
1657\begin_inset LatexCommand ref
1658reference "sec:Método-BysMcmc::Bsr::Gibbs::StdLinearBlock()"
1659
1660\end_inset
1661
1662) que se almacenará como el miembro
1663\series bold
1664NameBlock _.lin.blk
1665\series default
1666 
1667\end_layout
1668
1669\begin_layout Standard
1670El método
1671\series bold
1672VMatrix draw(Real numSim, NameBlock arima, VMatrix si, VMatrix beta, VMatrix
1673 Z)
1674\series default
1675 , construye las matrices de input
1676\series bold
1677X01
1678\series default
1679 y output
1680\series bold
1681Y01
1682\series default
1683 de la regresión estandarizada y simula los omitidos llamando a
1684\series bold
1685_.lin.blk::draw(numSim, Y01, X01)
1686\series default
1687.
1688\end_layout
1689
1690\begin_layout Section
1691
1692\family typewriter
1693\begin_inset LatexCommand label
1694name "sec:Método-BysMcmc::Bsr::Gibbs::OututMissingBlock()"
1695
1696\end_inset
1697
1698Método BysMcmc::Bsr::Gibbs::OututMissingBlock()
1699\end_layout
1700
1701\begin_layout Standard
1702El método
1703\series bold
1704NameBlock BysMcmc::Bsr::Gibbs::OutputMissingBlock(Text name, Set outputMissingBl
1705ock, Real numBlock, Real firstCol, NameBlock config)
1706\series default
1707 se implementa en el fichero
1708\begin_inset LatexCommand htmlurl
1709target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_outputMissingBlock.tol"
1710
1711\end_inset
1712
1713 y sirve para crear el simulador de un bloque de valores omitidos en el
1714 output, tal y como se describe en el capítulo
1715\begin_inset LatexCommand ref
1716reference "cha:El-bloque-de-omitidos"
1717
1718\end_inset
1719
1720.
1721 El bloque contiene los parámetros
1722\begin_inset Formula $v$
1723\end_inset
1724
1725 correspondientes a los valores desconocidos de todos los inputs de cada
1726 uno de los bloques de regresión.
1727 
1728\end_layout
1729
1730\begin_layout Standard
1731El acceso a los datos en el modelo BSR lo proporciona el argumento
1732\series bold
1733outputMissingBlock
1734\series default
1735 con elementos de estructura
1736\series bold
1737BSR.MissingBlock
1738\series default
1739, uno para dato omitido, y que viene dado siempre como el campo
1740\series bold
1741 _.modelDef->OutputMissingBlock
1742\series default
1743 de la estructura
1744\series bold
1745BSR.ModelDef
1746\series default
1747 correspondiente al miembro
1748\series bold
1749Set _.modelDef
1750\series default
1751 del simulador maestro creado con
1752\series bold
1753BysMcmc::Bsr::Gibbs::BasicMaster()
1754\series default
1755.
1756 Este argumento incluye en cada elemento
1757\series bold
1758outputMissingBlock
1759\series default
1760[k] con estructura
1761\series bold
1762BSR.MissingBlock
1763\series default
1764 definida en
1765\begin_inset LatexCommand ref
1766reference "sec:Método-BysMcmc::Bsr::Gibbs::BasicMaster()"
1767
1768\end_inset
1769
1770, salvo que aquí el campo
1771\series bold
1772Real Col
1773\series default
1774 del número de columna no tiene ningún sentido pues el output sólo tiene
1775 una columna.
1776 Por eso, en este caso sólo los campos
1777\series bold
1778Index
1779\series default
1780,
1781\series bold
1782Row
1783\series default
1784 definen la matriz booleana
1785\begin_inset Formula $\delta^{v}\in\{0,1\}^{M\times K_{0}}$
1786\end_inset
1787
1788de ubicación de los omitidos.
1789 Para optimizar los procesos de actualización y extracción de la información
1790 necesaria se crea el miembro de indexación
1791\series bold
1792Set _.t
1793\series default
1794 que almacena el conjunto de ecuaciones afectadas por omitidos en el output
1795 y se crea a partir de los campos de ubicación, y es por tanto inmutable
1796 durante la simulación.
1797\end_layout
1798
1799\begin_layout Standard
1800Los campos que almacenan la información a priori son idénticos a los del
1801 caso de omitidos del input recién vistos.
1802\end_layout
1803
1804\begin_layout Standard
1805Todos los miembros inmutables se asignan mediante el método
1806\series bold
1807Real initialize(Real unused)
1808\series default
1809 que se llama en la propia creación.
1810\end_layout
1811
1812\begin_layout Standard
1813Con toda esta información se genera internamente un bloque lineal llamando
1814 a
1815\series bold
1816NameBlock BysMcmc::Bsr::Gibbs::StdLinearBlock
1817\series default
1818 (ver
1819\begin_inset LatexCommand ref
1820reference "sec:Método-BysMcmc::Bsr::Gibbs::StdLinearBlock()"
1821
1822\end_inset
1823
1824) que se almacenará como el miembro
1825\series bold
1826NameBlock _.lin.blk
1827\series default
1828 
1829\end_layout
1830
1831\begin_layout Standard
1832El método
1833\series bold
1834VMatrix draw(Real numSim, NameBlock arima, VMatrix si, VMatrix beta, VMatrix
1835 Z)
1836\series default
1837 , construye las matrices de input
1838\series bold
1839X01
1840\series default
1841 y output
1842\series bold
1843Y01
1844\series default
1845 de la regresión estandarizada y simula los omitidos llamando a
1846\series bold
1847_.lin.blk::draw(numSim, Y01, X01)
1848\series default
1849.
1850\end_layout
1851
1852\begin_layout Section
1853
1854\family typewriter
1855\begin_inset LatexCommand label
1856name "sec:Método-BysMcmc::Bsr::Gibbs::BsrAsBlock()"
1857
1858\end_inset
1859
1860Método BysMcmc::Bsr::Gibbs::BsrAsBlock()
1861\end_layout
1862
1863\begin_layout Standard
1864El método
1865\series bold
1866NameBlock BysMcmc::Bsr::Gibbs::BsrAsBlock(NameBlock bsrInstance, Real numBlock,
1867 Real firstCol, NameBlock config)
1868\series default
1869 se implementa en el fichero
1870\begin_inset LatexCommand htmlurl
1871target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_bsrAsBlock.tol"
1872
1873\end_inset
1874
1875 y permite usar el simulador maestro del modelo básico BSR como un bloque
1876 de otro simulador maestro.
1877 El argumento
1878\series bold
1879bsrInstance
1880\series default
1881 define el modelo BSR básico que fue generado previamente con
1882\series bold
1883 NameBlock BysMcmc::Bsr::Gibbs::BasicMaster
1884\series default
1885(ver
1886\begin_inset LatexCommand ref
1887reference "sec:Método-BysMcmc::Bsr::Gibbs::BasicMaster()"
1888
1889\end_inset
1890
1891) y el bloque se define simplemente como la concatenación de los bloques
1892 internos del BSR.
1893\end_layout
1894
1895\begin_layout Section
1896
1897\family typewriter
1898\begin_inset LatexCommand label
1899name "sec:Método-BysMcmc::Bsr::Gibbs::NonLinBlock()"
1900
1901\end_inset
1902
1903Método BysMcmc::Bsr::Gibbs::NonLinBlock()
1904\end_layout
1905
1906\begin_layout Standard
1907El método
1908\series bold
1909NameBlock BysMcmc::Bsr::Gibbs::NonLinBlock(NameBlock filterEval, NameBlock
1910 bsr, Real numBlock, Real firstCol, NameBlock config)
1911\series default
1912 se implementa en el fichero
1913\begin_inset LatexCommand htmlurl
1914target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_nonLinBlock.tol"
1915
1916\end_inset
1917
1918 y permite simular un bloque correspondiente a un filtro no lineal arbitrario
1919 
1920\series bold
1921filterEval
1922\series default
1923, como los definidos en
1924\begin_inset LatexCommand ref
1925reference "cha:El-bloque-de-filtro-no-lineal"
1926
1927\end_inset
1928
1929 que afecta al output o a parte del input de un modelo BSR básico
1930\series bold
1931bsr
1932\series default
1933 creado con
1934\series bold
1935BasicMaster
1936\series default
1937 (ver
1938\begin_inset LatexCommand ref
1939reference "sec:Método-BysMcmc::Bsr::Gibbs::BasicMaster()"
1940
1941\end_inset
1942
1943).
1944\end_layout
1945
1946\begin_layout Standard
1947Un fitro no lineal es un NameBlock que tiene los siguientes métodos obligatorios
1948:
1949\end_layout
1950
1951\begin_layout Itemize
1952
1953\series bold
1954Text get.name(Real unused)
1955\series default
1956: Identificador del filtro
1957\end_layout
1958
1959\begin_layout Itemize
1960
1961\series bold
1962Text get.segmentName(Real unused)
1963\series default
1964: Identificador del segmento
1965\end_layout
1966
1967\begin_layout Itemize
1968
1969\series bold
1970Text get.colNames(Real unused)
1971\series default
1972: Nombres de los parámetros del bloque no lineal
1973\end_layout
1974
1975\begin_layout Itemize
1976
1977\series bold
1978Set get.bounds(i,param)
1979\series default
1980: Devuelve los límites inferior y superior del i-ésimo parámetro dados los
1981 valores actuales del resto.
1982\end_layout
1983
1984\begin_layout Itemize
1985
1986\series bold
1987Matrix eval(Matrix param)
1988\series default
1989: Evalúa el filtro no lineal para un vector de valores concretos de los
1990 parámetros.
1991 El número de filas debe ser la longitud del segmento y el de columnas será
1992 1 si es un filtro del output, o el cardinal de
1993\series bold
1994get.linBlkNames(0)
1995\series default
1996 si es del input.
1997\end_layout
1998
1999\begin_layout Itemize
2000
2001\series bold
2002Set get.linBlkNames(Real unused)
2003\series default
2004: Nombres de los parámetros del bloque lineal afectados por un bloque lineal
2005 del input.
2006 Lógicamente este método sólo debe existir si es un filtro del input, y
2007 de hecho es la única forma que tiene el bloque de saber si es del output
2008 o del input, si no existe es del output y si existe es del input.
2009\end_layout
2010
2011\begin_layout Standard
2012Si llamamos
2013\begin_inset Formula $W$
2014\end_inset
2015
2016 al valor actual del ruido ARIMA o ruido no diferenciado del model BSR básico
2017 
2018\end_layout
2019
2020\begin_layout Standard
2021\begin_inset Formula \begin{equation}
2022W=F_{0}-X\cdot\beta-{\displaystyle \sum_{r=1}^{R}F_{r}\cdot\alpha_{r}}\end{equation}
2023
2024\end_inset
2025
2026entonces el output de la regresión no lineal del bloque lineal del input
2027 es (ver
2028\begin_inset LatexCommand ref
2029reference "eq:non-lin-filter-intput"
2030
2031\end_inset
2032
2033):
2034\end_layout
2035
2036\begin_layout Standard
2037\begin_inset Formula \begin{equation}
2038Z_{k}=F_{0}-X\cdot\beta-{\displaystyle \sum_{\begin{array}{c}
2039r=1\\
2040r\neq k\end{array}}^{R}F_{r}\cdot\alpha_{r}}=F_{k}\cdot\alpha_{k}+W\end{equation}
2041
2042\end_inset
2043
2044y el del output es (ver
2045\begin_inset LatexCommand ref
2046reference "eq:non-lin-filter-output"
2047
2048\end_inset
2049
2050):
2051\end_layout
2052
2053\begin_layout Standard
2054\begin_inset Formula \begin{equation}
2055Z_{0}=X\cdot\beta+{\displaystyle \sum_{\begin{array}{c}
2056r=1\end{array}}^{R}F_{r}\cdot\alpha_{r}}=F_{0}-W\end{equation}
2057
2058\end_inset
2059
2060
2061\end_layout
2062
2063\begin_layout Standard
2064Esto ofrece una forma rápida de evaluar dichos output que además es prácticament
2065e idéntica para el input y el output, salvo el signo de
2066\begin_inset Formula $W$
2067\end_inset
2068
2069.
2070\end_layout
2071
2072\begin_layout Standard
2073El método principal
2074\series bold
2075VMatrix draw(Real numSim)
2076\series default
2077 llamará a
2078\series bold
2079VMatrix draw.ARMS(Real numSim)
2080\series default
2081 si el bloque está habilitado, pues en otro caso devuelve el último valor
2082 almacenado de forma constante.
2083\end_layout
2084
2085\begin_layout Standard
2086Una vez simulados los valores se debe evaluar el filtro resultante de los
2087 mismos y actualizar, o bien el output o bien la parte de input correspondiente,
2088 de lo cual se encarga el método
2089\series bold
2090Real setStore(Matrix values)
2091\series default
2092 llamando a los métodos
2093\series bold
2094_.bsr::setSegmentOutput
2095\series default
2096 Ã³
2097\series bold
2098_.bsr::setSegmentInputCol
2099\series default
2100 respectivamente.
2101 Es importante destacar que las matrices que se le pasen a dichos métodos
2102 tengan la misma estructura sparse que los correspondientes bloques en las
2103 matrices originales para asegurar una actualización eficiente sin transformacio
2104nes internas de la matriz.
2105 Si no se está seguro de que esta estructura sea inmutable independientemente
2106 de los parámetros no lineales entonces lo más aconsejable es considerar
2107 dichos bloques matriciales como densos en la definición original del modelo.
2108 Para ello basta con explicitar los coeficientes cero en las expresiones
2109 de la regresión que toquen en el fichero ASCII con formato BSR (ver
2110\begin_inset LatexCommand ref
2111reference "cha:El-formato-ASCII-BSR"
2112
2113\end_inset
2114
2115)
2116\end_layout
2117
2118\begin_layout Section
2119
2120\family typewriter
2121\begin_inset LatexCommand label
2122name "sec:Método-BysMcmc::Bsr::Gibbs::DeltaTransfer()"
2123
2124\end_inset
2125
2126Método BysMcmc::Bsr::Gibbs::DeltaTransfer()
2127\end_layout
2128
2129\begin_layout Standard
2130El método
2131\series bold
2132NameBlock DeltaTransfer ( Text segmentName, Text inputName, Set linBlkNames,
2133 Polyn omega, Polyn delta, Matrix x0, Matrix x )
2134\series default
2135 se implementa en el fichero
2136\begin_inset LatexCommand htmlurl
2137target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_deltaTransfer.tol"
2138
2139\end_inset
2140
2141 y define un filtro no lineal correspondiente a una función de transferencia
2142 con deltas como el explicado en
2143\begin_inset LatexCommand ref
2144reference "sub:Función-de-transferencia-no-lineal-deltas"
2145
2146\end_inset
2147
2148, y que se puede usar como argumento de
2149\series bold
2150NonLinBlock
2151\series default
2152 (Ver
2153\begin_inset LatexCommand ref
2154reference "sec:Método-BysMcmc::Bsr::Gibbs::NonLinBlock()"
2155
2156\end_inset
2157
2158), es decir cumple con la API mínima exigida.
2159\end_layout
2160
2161\begin_layout Standard
2162El método
2163\series bold
2164get.bounds
2165\series default
2166 cacula los límites de muestreo de cada factor delta mediante ARMAProcess::Stati
2167onarityBounds.2 implementada también en
2168\begin_inset LatexCommand htmlurl
2169target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/arima/_arma_process.tol"
2170
2171\end_inset
2172
2173.
2174 Los límites de los valores iniciales de transferencia no están definidos
2175 pero como ARMS los requiere se le pasan valores suficientemente grandes.
2176\end_layout
2177
2178\begin_layout Standard
2179El método de evaluación
2180\series bold
2181eval
2182\series default
2183 no es más que resolver la ecuación en diferencias y devolver una matriz
2184 con una columna para cada monomio omega, con su correspondiente retardo.
2185\end_layout
2186
2187\begin_layout Standard
2188Quedan por implementar los siguientes aspectos:
2189\end_layout
2190
2191\begin_layout Itemize
2192Posibilidad de incluir los omitidos que hagan falta tanto en los valores
2193 iniciales
2194\begin_inset Formula $x_{0}$
2195\end_inset
2196
2197 como en los datos del input original propiamente dicho
2198\begin_inset Formula $x$
2199\end_inset
2200
2201.
2202\end_layout
2203
2204\begin_layout Itemize
2205Pruebas con el método Slice Sampler alternativo a ARMS que además no precisa
2206 de un intervalo exacto de límites de simulación.
2207\end_layout
2208
2209\begin_layout Section
2210
2211\family typewriter
2212\begin_inset LatexCommand label
2213name "sec:Método-BysMcmc::Bsr::Gibbs::NonLinMaster()"
2214
2215\end_inset
2216
2217Método BysMcmc::Bsr::Gibbs::NonLinMaster()
2218\end_layout
2219
2220\begin_layout Standard
2221El método
2222\series bold
2223NameBlock BysMcmc::Bsr::Gibbs::NonLinMaster(BSR.ModelDef modelDef, Set nonLinFilt
2224er, NameBlock config)
2225\series default
2226 se implementa en el fichero
2227\begin_inset LatexCommand htmlurl
2228target "http://cvs.tol-project.org/viewcvs.cgi/*checkout*/tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_nonLinMaster.tol"
2229
2230\end_inset
2231
2232 y permite simular un modelo BSR extendido con filtros no lineales arbitrarios
2233 como los definidos en
2234\begin_inset LatexCommand ref
2235reference "cha:El-bloque-de-filtro-no-lineal"
2236
2237\end_inset
2238
2239.
2240\end_layout
2241
2242\begin_layout Standard
2243En primer lugar se crea el master del BSR básico a partir del
2244\series bold
2245modelDef
2246\series default
2247, llamando a
2248\series bold
2249BasicMaster
2250\series default
2251 (ver
2252\begin_inset LatexCommand ref
2253reference "sec:Método-BysMcmc::Bsr::Gibbs::BasicMaster()"
2254
2255\end_inset
2256
2257) y luego se crea un bloque a partir de ese master llamando a
2258\series bold
2259BsrAsBlock
2260\series default
2261(ver
2262\begin_inset LatexCommand ref
2263reference "sec:Método-BysMcmc::Bsr::Gibbs::BsrAsBlock()"
2264
2265\end_inset
2266
2267)
2268\end_layout
2269
2270\begin_layout Standard
2271Luego para cada filtro no lineal se genera un bloque que lo gestione con
2272 
2273\series bold
2274NonLinBlock
2275\series default
2276 (ver
2277\begin_inset LatexCommand ref
2278reference "sec:Método-BysMcmc::Bsr::Gibbs::NonLinBlock()"
2279
2280\end_inset
2281
2282).
2283\end_layout
2284
2285\begin_layout Standard
2286Todos los bloques, el de BSR y los no lineales, se almacenan dentro de un
2287 miembro
2288\series bold
2289Set _.blocks
2290\series default
2291 que garantiza el orden ejecución de algunos métodos genéricos de bloques.
2292\end_layout
2293
2294\begin_layout Standard
2295El método principal
2296\series bold
2297VMatrix draw(Real numSim)
2298\series default
2299 simplemente muestrea todos los bloques en el orden adecuado y concatena
2300 las muestras de los bloques según el orden establecido.
2301\end_layout
2302
2303\begin_layout Standard
2304Como es obvio, este NameBlock implementa los métodos obligatorios de un
2305 simulador maestro según se describe en
2306\begin_inset LatexCommand ref
2307reference "sub:Nameblock-BysMcmc::BuildCycler()"
2308
2309\end_inset
2310
2311, y además el método
2312\series bold
2313Real setStore(Matrix values)
2314\series default
2315 que se podrá utilizar para usar el simulador como un bloque de otro simulador
2316 maestro definido por el usuario.
2317\end_layout
2318
2319\end_body
2320\end_document
Note: See TracBrowser for help on using the repository browser.