- Timestamp:
- Nov 19, 2008, 9:50:50 AM (18 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 55fca77
- Parents:
- 77dfa39
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/modeling/BSR/BSR_P3_S2_BsrHlm_plantilla_de_modelo.lyx
r77dfa39 r9ba790a 1 #LyX 1. 5.6created this file. For more info see http://www.lyx.org/2 \lyxformat 2761 #LyX 1.6.0 created this file. For more info see http://www.lyx.org/ 2 \lyxformat 345 3 3 \begin_document 4 4 \begin_header … … 28 28 \hypersetup{urlbordercolor=0 0 0,pdfborder=0 0 1 [3 2]} 29 29 \end_preamble 30 \use_default_options false 31 \begin_modules 32 theorems-ams 33 \end_modules 30 34 \language spanish 31 35 \inputencoding auto … … 38 42 \font_sf_scale 100 39 43 \font_tt_scale 100 44 40 45 \graphics default 41 46 \paperfontsize default 42 47 \spacing single 48 \use_hyperref false 43 49 \papersize default 44 50 \use_geometry false … … 65 71 66 72 \begin_layout Chapter 67 \begin_inset LatexCommand label 73 \begin_inset CommandInset label 74 LatexCommand label 68 75 name "cha:Plantilla-del-modelo-Bsr-Hlm" 69 76 … … 85 92 A continuación exponemos las partes necesarias de código en las que consiste 86 93 una plantilla ejemplo para el uso de BSr-Hlm: 87 \newline 88 89 \newline 90 Este NameBlock especifica 91 los datos necesarios para la conexión con la base da datos BsrHlm 92 \newline 94 \begin_inset Newline newline 95 \end_inset 96 97 98 \begin_inset Newline newline 99 \end_inset 100 101 Este NameBlock especifica los datos necesarios para la conexión con la base 102 da datos BsrHlm 103 \begin_inset Newline newline 104 \end_inset 105 93 106 94 107 \begin_inset listings … … 96 109 status open 97 110 98 \begin_layout Standard111 \begin_layout Plain Layout 99 112 100 113 NameBlock DBConnection = [[ 101 114 \end_layout 102 115 103 \begin_layout Standard116 \begin_layout Plain Layout 104 117 105 118 NameBlock BsrHlm = DBConnect::Create("BsrHlm","bysfor","bys!98.", 106 119 \end_layout 107 120 108 \begin_layout Standard121 \begin_layout Plain Layout 109 122 110 123 "mysql","bysNPIDSO","d-mysql01","Almacenamiento de 111 124 \end_layout 112 125 113 \begin_layout Standard126 \begin_layout Plain Layout 114 127 115 128 modelos BSR-DynHLM"); 116 129 \end_layout 117 130 118 \begin_layout Standard131 \begin_layout Plain Layout 119 132 120 133 Real check = Real DBConnect::CheckAll(0) 121 134 \end_layout 122 135 123 \begin_layout Standard136 \begin_layout Plain Layout 124 137 125 138 ]]; … … 129 142 130 143 Activamos la base de datos BsrHlm: 131 \newline 144 \begin_inset Newline newline 145 \end_inset 146 132 147 133 148 \begin_inset listings … … 135 150 status open 136 151 137 \begin_layout Standard152 \begin_layout Plain Layout 138 153 139 154 Real DBConnection::BsrHlm::Activate(0); … … 143 158 144 159 Identificamos el nombre del modelo: 145 \newline 160 \begin_inset Newline newline 161 \end_inset 162 146 163 147 164 \begin_inset listings … … 149 166 status open 150 167 151 \begin_layout Standard168 \begin_layout Plain Layout 152 169 153 170 Text id_model = "BSR_Lat.Reg.Test_III"; … … 157 174 158 175 Descripción del objetivo del modelo: 159 \newline 176 \begin_inset Newline newline 177 \end_inset 178 160 179 161 180 \begin_inset listings … … 163 182 status open 164 183 165 \begin_layout Standard184 \begin_layout Plain Layout 166 185 167 186 Text ds_model = "Pruebas para nodos latentes regresivos"; … … 171 190 172 191 Identificamos la sesión: 173 \newline 192 \begin_inset Newline newline 193 \end_inset 194 174 195 175 196 \begin_inset listings … … 177 198 status open 178 199 179 \begin_layout Standard200 \begin_layout Plain Layout 180 201 181 202 Text id_session = "SES_LAT.REG_TEST.20081006_22"; … … 185 206 186 207 Descripción de la sesión: 187 \newline 208 \begin_inset Newline newline 209 \end_inset 210 188 211 189 212 \begin_inset listings … … 191 214 status open 192 215 193 \begin_layout Standard216 \begin_layout Plain Layout 194 217 195 218 Text ds_session = "Pruebas nodos regresivos latentes"; … … 199 222 200 223 Listado de autores: 201 \newline 224 \begin_inset Newline newline 225 \end_inset 226 202 227 203 228 \begin_inset listings … … 205 230 status open 206 231 207 \begin_layout Standard232 \begin_layout Plain Layout 208 233 209 234 Text ds_authors = "mafernandez@bayesinf.com;"; … … 213 238 214 239 Inserción del modelo en la base de datos: 215 \newline 240 \begin_inset Newline newline 241 \end_inset 242 216 243 217 244 \begin_inset listings … … 219 246 status open 220 247 221 \begin_layout Standard248 \begin_layout Plain Layout 222 249 223 250 Real BysMcmc::Bsr::DynHlm::DBApi::Mod.Create( 224 251 \end_layout 225 252 226 \begin_layout Standard253 \begin_layout Plain Layout 227 254 228 255 DBConnection::BsrHlm::_.defaultDB, id_model, ds_model); … … 232 259 233 260 Inserción de la sesión en la base de datos: 234 \newline 261 \begin_inset Newline newline 262 \end_inset 263 235 264 236 265 \begin_inset listings … … 238 267 status open 239 268 240 \begin_layout Standard269 \begin_layout Plain Layout 241 270 242 271 Real BysMcmc::Bsr::DynHlm::DBApi::Ses.Create( 243 272 \end_layout 244 273 245 \begin_layout Standard274 \begin_layout Plain Layout 246 275 247 276 DBConnection::BsrHlm::_.defaultDB, id_session, ds_session, 248 277 \end_layout 249 278 250 \begin_layout Standard279 \begin_layout Plain Layout 251 280 252 281 ds_authors); … … 256 285 257 286 Inserción del modelo-sesión en la base de datos: 258 \newline 287 \begin_inset Newline newline 288 \end_inset 289 259 290 260 291 \begin_inset listings … … 262 293 status open 263 294 264 \begin_layout Standard295 \begin_layout Plain Layout 265 296 266 297 Real BysMcmc::Bsr::DynHlm::DBApi::ModSes.Create( 267 298 \end_layout 268 299 269 \begin_layout Standard300 \begin_layout Plain Layout 270 301 271 302 DBConnection::BsrHlm::_.defaultDB, id_model, id_session); … … 275 306 276 307 Se crean en la base da datos los niveles de jerarquÃa . 277 \newline 308 \begin_inset Newline newline 309 \end_inset 310 278 311 279 312 \begin_inset listings … … 281 314 status open 282 315 283 \begin_layout Standard316 \begin_layout Plain Layout 284 317 285 318 Real BysMcmc::Bsr::DynHlm::DBApi::ModSes.SetLevels( 286 319 \end_layout 287 320 288 \begin_layout Standard321 \begin_layout Plain Layout 289 322 290 323 DBConnection::BsrHlm::_.defaultDB,id_model,id_session, 291 324 \end_layout 292 325 293 \begin_layout Standard326 \begin_layout Plain Layout 294 327 295 328 Real maxLatLevel = 1, 296 329 \end_layout 297 330 298 \begin_layout Standard331 \begin_layout Plain Layout 299 332 300 333 Real hasPrior = True, 301 334 \end_layout 302 335 303 \begin_layout Standard336 \begin_layout Plain Layout 304 337 305 338 Real hasMixture = False)}; … … 317 350 NameBlock, los comentarios realizados con ## indican variables que son 318 351 obligatorias: 319 \newline 352 \begin_inset Newline newline 353 \end_inset 354 320 355 321 356 \begin_inset listings … … 323 358 status open 324 359 325 \begin_layout Standard360 \begin_layout Plain Layout 326 361 327 362 ///////////////////////////////////////////////////////// 328 363 \end_layout 329 364 330 \begin_layout Standard365 \begin_layout Plain Layout 331 366 332 367 NameBlock node.series.handler (Real node) 333 368 \end_layout 334 369 335 \begin_layout Standard370 \begin_layout Plain Layout 336 371 337 372 ///////////////////////////////////////////////////////// 338 373 \end_layout 339 374 340 \begin_layout Standard375 \begin_layout Plain Layout 341 376 342 377 { [[ 343 378 \end_layout 344 379 345 \begin_layout Standard380 \begin_layout Plain Layout 346 381 347 382 // Se forma la etiqueta del nodo. 348 383 \end_layout 349 384 350 \begin_layout Standard385 \begin_layout Plain Layout 351 386 352 387 Text _node = FormatReal(node,"%1.0f"); 353 388 \end_layout 354 389 355 \begin_layout Standard390 \begin_layout Plain Layout 356 391 357 392 //## Nombre del nodo 358 393 \end_layout 359 394 360 \begin_layout Standard395 \begin_layout Plain Layout 361 396 362 397 Text _.description = "Nodo observacional referido al output "+_node; 363 398 \end_layout 364 399 365 \begin_layout Standard400 \begin_layout Plain Layout 366 401 367 402 //# Contiene todas las series output e input con nombres únicos dentro 368 403 \end_layout 369 404 370 \begin_layout Standard405 \begin_layout Plain Layout 371 406 372 407 //de cada nodo 373 408 \end_layout 374 409 375 \begin_layout Standard410 \begin_layout Plain Layout 376 411 377 412 Set _.series = { SetOfSerie ( 378 413 \end_layout 379 414 380 \begin_layout Standard415 \begin_layout Plain Layout 381 416 382 417 Output = ..... 383 418 \end_layout 384 419 385 \begin_layout Standard420 \begin_layout Plain Layout 386 421 387 422 Input1 = ..... 388 423 \end_layout 389 424 390 \begin_layout Standard425 \begin_layout Plain Layout 391 426 392 427 Input2 = ..... 393 428 \end_layout 394 429 395 \begin_layout Standard430 \begin_layout Plain Layout 396 431 397 432 .... 398 433 \end_layout 399 434 400 \begin_layout Standard435 \begin_layout Plain Layout 401 436 402 437 ) 403 438 \end_layout 404 439 405 \begin_layout Standard440 \begin_layout Plain Layout 406 441 407 442 }; 408 443 \end_layout 409 444 410 \begin_layout Standard445 \begin_layout Plain Layout 411 446 412 447 //# Se indexa para acelerar búsquedas 413 448 \end_layout 414 449 415 \begin_layout Standard450 \begin_layout Plain Layout 416 451 417 452 Real _check_unique = SetIndexByName(_.series); 418 453 \end_layout 419 454 420 \begin_layout Standard455 \begin_layout Plain Layout 421 456 422 457 //## Devuelve serie del nodo dado un identificaador único 423 458 \end_layout 424 459 425 \begin_layout Standard460 \begin_layout Plain Layout 426 461 427 462 GetSerie (Text id_serie) 428 463 \end_layout 429 464 430 \begin_layout Standard465 \begin_layout Plain Layout 431 466 432 467 { 433 468 \end_layout 434 469 435 \begin_layout Standard470 \begin_layout Plain Layout 436 471 437 472 _.series[id_serie] 438 473 \end_layout 439 474 440 \begin_layout Standard475 \begin_layout Plain Layout 441 476 442 477 } 443 478 \end_layout 444 479 445 \begin_layout Standard480 \begin_layout Plain Layout 446 481 447 482 //##Información adicional del modelo sobre el output 448 483 \end_layout 449 484 450 \begin_layout Standard485 \begin_layout Plain Layout 451 486 452 487 NameBlock _.output = 453 488 \end_layout 454 489 455 \begin_layout Standard490 \begin_layout Plain Layout 456 491 457 492 {[[ 458 493 \end_layout 459 494 460 \begin_layout Standard495 \begin_layout Plain Layout 461 496 462 497 //##Nombre con el que reconoce la serie en la base de datos 463 498 \end_layout 464 499 465 \begin_layout Standard500 \begin_layout Plain Layout 466 501 467 502 Text _.name = "Output"; 468 503 \end_layout 469 504 470 \begin_layout Standard505 \begin_layout Plain Layout 471 506 472 507 //##Serie output 473 508 \end_layout 474 509 475 \begin_layout Standard510 \begin_layout Plain Layout 476 511 477 512 Serie _.serie = _.series::Output; 478 513 \end_layout 479 514 480 \begin_layout Standard515 \begin_layout Plain Layout 481 516 482 517 //##Número de sigmas para la distribución a priori de los omitidos 483 518 \end_layout 484 519 485 \begin_layout Standard520 \begin_layout Plain Layout 486 521 487 522 Real _.mis_pri_sig_fac = 5; 488 523 \end_layout 489 524 490 \begin_layout Standard525 \begin_layout Plain Layout 491 526 492 527 //##Valor mÃnimo a priori para los omitidos 493 528 \end_layout 494 529 495 \begin_layout Standard530 \begin_layout Plain Layout 496 531 497 532 Real _.mis_pri_min = 0; 498 533 \end_layout 499 534 500 \begin_layout Standard535 \begin_layout Plain Layout 501 536 502 537 //##Valor máximo a priori para los omitidos 503 538 \end_layout 504 539 505 \begin_layout Standard540 \begin_layout Plain Layout 506 541 507 542 Real _.mis_pri_max = 2; 508 543 \end_layout 509 544 510 \begin_layout Standard545 \begin_layout Plain Layout 511 546 512 547 //##Fecha inicial de estimación del nodo 513 548 \end_layout 514 549 515 \begin_layout Standard550 \begin_layout Plain Layout 516 551 517 552 Date _.firstDate = y2001m01; 518 553 \end_layout 519 554 520 \begin_layout Standard555 \begin_layout Plain Layout 521 556 522 557 //##Fecha final de estimación del nodo 523 558 \end_layout 524 559 525 \begin_layout Standard560 \begin_layout Plain Layout 526 561 527 562 Date _.lastDate = y2013m01; 528 563 \end_layout 529 564 530 \begin_layout Standard565 \begin_layout Plain Layout 531 566 532 567 //Desviación tÃpica de los residuos. … … 534 569 \end_layout 535 570 536 \begin_layout Standard571 \begin_layout Plain Layout 537 572 538 573 Real _.sigma = ?; 539 574 \end_layout 540 575 541 \begin_layout Standard576 \begin_layout Plain Layout 542 577 543 578 //##Parte ARIMA asociada 544 579 \end_layout 545 580 546 \begin_layout Standard581 \begin_layout Plain Layout 547 582 548 583 Set _.arima = SetOfSet ( 549 584 \end_layout 550 585 551 \begin_layout Standard586 \begin_layout Plain Layout 552 587 553 588 ARIMAStruct (1,1,1,1) 554 589 \end_layout 555 590 556 \begin_layout Standard591 \begin_layout Plain Layout 557 592 558 593 ) 559 594 \end_layout 560 595 561 \begin_layout Standard596 \begin_layout Plain Layout 562 597 563 598 ]]}; 564 599 \end_layout 565 600 566 \begin_layout Standard601 \begin_layout Plain Layout 567 602 568 603 //##Información adicional del modelo sobre los inputs 569 604 \end_layout 570 605 571 \begin_layout Standard606 \begin_layout Plain Layout 572 607 573 608 //Cada elemento es un NameBlock cuyo nombre será el identificador … … 575 610 \end_layout 576 611 577 \begin_layout Standard612 \begin_layout Plain Layout 578 613 579 614 //la base de datos de BsrHlm y es obligatorio que se llame igual que 580 615 \end_layout 581 616 582 \begin_layout Standard617 \begin_layout Plain Layout 583 618 584 619 //la corespondiente serie input 585 620 \end_layout 586 621 587 \begin_layout Standard622 \begin_layout Plain Layout 588 623 589 624 Set _.input = { 590 625 \end_layout 591 626 592 \begin_layout Standard627 \begin_layout Plain Layout 593 628 594 629 SetOfNameBlock( 595 630 \end_layout 596 631 597 \begin_layout Standard632 \begin_layout Plain Layout 598 633 599 634 NameBlock Input1= [[ 600 635 \end_layout 601 636 602 \begin_layout Standard637 \begin_layout Plain Layout 603 638 604 639 //##Serie input 605 640 \end_layout 606 641 607 \begin_layout Standard642 \begin_layout Plain Layout 608 643 609 644 Serie _.serie = _.series::Input1; 610 645 \end_layout 611 646 612 \begin_layout Standard647 \begin_layout Plain Layout 613 648 614 649 //##Si es falso no se usará este input 615 650 \end_layout 616 651 617 \begin_layout Standard652 \begin_layout Plain Layout 618 653 619 654 Real _.enabled = 1; 620 655 \end_layout 621 656 622 \begin_layout Standard657 \begin_layout Plain Layout 623 658 624 659 //##Número de sigmas para la distribución a priori de los omitidos 625 660 \end_layout 626 661 627 \begin_layout Standard662 \begin_layout Plain Layout 628 663 629 664 Real _.mis_pri_sig_fac = 5; 630 665 \end_layout 631 666 632 \begin_layout Standard667 \begin_layout Plain Layout 633 668 634 669 //##Valor mÃnimo a priori para los omitidos 635 670 \end_layout 636 671 637 \begin_layout Standard672 \begin_layout Plain Layout 638 673 639 674 Real _.mis_pri_min = 0; 640 675 \end_layout 641 676 642 \begin_layout Standard677 \begin_layout Plain Layout 643 678 644 679 //##Valor máximo a priori para los omitidos 645 680 \end_layout 646 681 647 \begin_layout Standard682 \begin_layout Plain Layout 648 683 649 684 Real _.mis_pri_max = 2; 650 685 \end_layout 651 686 652 \begin_layout Standard687 \begin_layout Plain Layout 653 688 654 689 //##Valor inicial del parámetro 655 690 \end_layout 656 691 657 \begin_layout Standard692 \begin_layout Plain Layout 658 693 659 694 Real _.initValue = 0.1; 660 695 \end_layout 661 696 662 \begin_layout Standard697 \begin_layout Plain Layout 663 698 664 699 //##Valor mÃnimo a priori del parámetro 665 700 \end_layout 666 701 667 \begin_layout Standard702 \begin_layout Plain Layout 668 703 669 704 Real _.minimum = -1; 670 705 \end_layout 671 706 672 \begin_layout Standard707 \begin_layout Plain Layout 673 708 674 709 //##Valor máximo a priori del parámetro 675 710 \end_layout 676 711 677 \begin_layout Standard712 \begin_layout Plain Layout 678 713 679 714 Real _.maximum = 1 680 715 \end_layout 681 716 682 \begin_layout Standard717 \begin_layout Plain Layout 683 718 684 719 ]], 685 720 \end_layout 686 721 687 \begin_layout Standard722 \begin_layout Plain Layout 688 723 689 724 NameBlock Input2 = [[ 690 725 \end_layout 691 726 692 \begin_layout Standard727 \begin_layout Plain Layout 693 728 694 729 ..... 695 730 \end_layout 696 731 697 \begin_layout Standard732 \begin_layout Plain Layout 698 733 699 734 ..... 700 735 \end_layout 701 736 702 \begin_layout Standard737 \begin_layout Plain Layout 703 738 704 739 ]], 705 740 \end_layout 706 741 707 \begin_layout Standard742 \begin_layout Plain Layout 708 743 709 744 ..... 710 745 \end_layout 711 746 712 \begin_layout Standard747 \begin_layout Plain Layout 713 748 714 749 // Se indexa para acelerar busquedas 715 750 \end_layout 716 751 717 \begin_layout Standard752 \begin_layout Plain Layout 718 753 719 754 Real _checkUniqueInput = SetIndexByName(_.input) 720 755 \end_layout 721 756 722 \begin_layout Standard757 \begin_layout Plain Layout 723 758 724 759 ]] 725 760 \end_layout 726 761 727 \begin_layout Standard762 \begin_layout Plain Layout 728 763 729 764 }; … … 738 773 Ahora se llama al manejador de series del modelo, notar que el bucle For 739 774 debe correr a todos los nodos observacionales que se quieran calcular: 740 \newline 775 \begin_inset Newline newline 776 \end_inset 777 741 778 742 779 \begin_inset listings … … 744 781 status open 745 782 746 \begin_layout Standard783 \begin_layout Plain Layout 747 784 748 785 /////////////////////////////////////////////////////// 749 786 \end_layout 750 787 751 \begin_layout Standard788 \begin_layout Plain Layout 752 789 753 790 NameBlock series.handler = 754 791 \end_layout 755 792 756 \begin_layout Standard793 \begin_layout Plain Layout 757 794 758 795 BysMcmc::Bsr::DynHlm::DBApi::CreateSeriesHandler( 759 796 \end_layout 760 797 761 \begin_layout Standard798 \begin_layout Plain Layout 762 799 763 800 For (1,num_nodos, NameBlock (Real node) 764 801 \end_layout 765 802 766 \begin_layout Standard803 \begin_layout Plain Layout 767 804 768 805 { 769 806 \end_layout 770 807 771 \begin_layout Standard808 \begin_layout Plain Layout 772 809 773 810 WriteLn("[series.handler] creando de series del nodo "+ IntText(node)); 774 811 \end_layout 775 812 776 \begin_layout Standard813 \begin_layout Plain Layout 777 814 778 815 NameBlock aux = node.series.handler(node); 779 816 \end_layout 780 817 781 \begin_layout Standard818 \begin_layout Plain Layout 782 819 783 820 Eval(aux::_.id_node+"=aux") 784 821 \end_layout 785 822 786 \begin_layout Standard823 \begin_layout Plain Layout 787 824 788 825 })); … … 792 829 793 830 Ahora se crea en la base de datos los nodos observacionales : 794 \newline 831 \begin_inset Newline newline 832 \end_inset 833 795 834 796 835 \begin_inset listings … … 798 837 status open 799 838 800 \begin_layout Standard839 \begin_layout Plain Layout 801 840 802 841 Real BysMcmc::Bsr::DynHlm::DBApi::ModSes.Obs.CreateAll( 803 842 \end_layout 804 843 805 \begin_layout Standard844 \begin_layout Plain Layout 806 845 807 846 DBConnection::BsrHlm::_.defaultDB, id_model, id_session, 808 847 \end_layout 809 848 810 \begin_layout Standard849 \begin_layout Plain Layout 811 850 812 851 series.handler::_.obs.node); … … 822 861 para implementar en el modelo los nodos latentes, nodos a priori etc... 823 862 Incluimos algunos ejemplos del uso de estas funciones 824 \newline 825 826 \newline 863 \begin_inset Newline newline 864 \end_inset 865 866 867 \begin_inset Newline newline 868 \end_inset 869 827 870 828 871 \series bold … … 838 881 status open 839 882 840 \begin_layout Standard883 \begin_layout Plain Layout 841 884 842 885 Real { 843 886 \end_layout 844 887 845 \begin_layout Standard888 \begin_layout Plain Layout 846 889 847 890 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Lat.Homog_1.Create 848 891 \end_layout 849 892 850 \begin_layout Standard893 \begin_layout Plain Layout 851 894 852 895 (DBConnection::BsrHlm::_.defaultDB, 853 896 \end_layout 854 897 855 \begin_layout Standard898 \begin_layout Plain Layout 856 899 857 900 id_model, 858 901 \end_layout 859 902 860 \begin_layout Standard903 \begin_layout Plain Layout 861 904 862 905 id_session, 863 906 \end_layout 864 907 865 \begin_layout Standard908 \begin_layout Plain Layout 866 909 867 910 // identificación del nodo latente 868 911 \end_layout 869 912 870 \begin_layout Standard913 \begin_layout Plain Layout 871 914 872 915 id_node = "Lat."+child_input, 873 916 \end_layout 874 917 875 \begin_layout Standard918 \begin_layout Plain Layout 876 919 877 920 // descripción del node latente 878 921 \end_layout 879 922 880 \begin_layout Standard923 \begin_layout Plain Layout 881 924 882 925 description = "Fuerza la homogeneidad de la variable ...", 883 926 \end_layout 884 927 885 \begin_layout Standard928 \begin_layout Plain Layout 886 929 887 930 // Nivel de latencia en la jerarquÃa 888 931 \end_layout 889 932 890 \begin_layout Standard933 \begin_layout Plain Layout 891 934 892 935 Real level = 1, 893 936 \end_layout 894 937 895 \begin_layout Standard938 \begin_layout Plain Layout 896 939 897 940 //Orden de aparición dentro del nivel 898 941 \end_layout 899 942 900 \begin_layout Standard943 \begin_layout Plain Layout 901 944 902 945 Copy(level.1_number := level.1_number+1), 903 946 \end_layout 904 947 905 \begin_layout Standard948 \begin_layout Plain Layout 906 949 907 950 //Nombre del hiperparámetro 908 951 \end_layout 909 952 910 \begin_layout Standard953 \begin_layout Plain Layout 911 954 912 955 Text id_parameter = "hiper", 913 956 \end_layout 914 957 915 \begin_layout Standard958 \begin_layout Plain Layout 916 959 917 960 //Valor inicial del hiperparámetro 918 961 \end_layout 919 962 920 \begin_layout Standard963 \begin_layout Plain Layout 921 964 922 965 Real initValue = -0.1, 923 966 \end_layout 924 967 925 \begin_layout Standard968 \begin_layout Plain Layout 926 969 927 970 //Desviación tÃpica de los residuos. … … 929 972 \end_layout 930 973 931 \begin_layout Standard974 \begin_layout Plain Layout 932 975 933 976 Real sigma = 0.05, 934 977 \end_layout 935 978 936 \begin_layout Standard979 \begin_layout Plain Layout 937 980 938 981 //Valor mÃnimo del hiperparámetro 939 982 \end_layout 940 983 941 \begin_layout Standard984 \begin_layout Plain Layout 942 985 943 986 Real minimum = -1, 944 987 \end_layout 945 988 946 \begin_layout Standard989 \begin_layout Plain Layout 947 990 948 991 //Valor máximo del hiperparámetro 949 992 \end_layout 950 993 951 \begin_layout Standard994 \begin_layout Plain Layout 952 995 953 996 Real maximum = 10, 954 997 \end_layout 955 998 956 \begin_layout Standard999 \begin_layout Plain Layout 957 1000 958 1001 //Selección de los parámetros y nodos hijos con el input habilitado 959 1002 \end_layout 960 1003 961 \begin_layout Standard1004 \begin_layout Plain Layout 962 1005 963 1006 //Es un Set formado por tantos NameBlocks como parémetroas hijos 964 1007 \end_layout 965 1008 966 \begin_layout Standard1009 \begin_layout Plain Layout 967 1010 968 1011 //(betas) formen el nodo latente homogéneo 969 1012 \end_layout 970 1013 971 \begin_layout Standard1014 \begin_layout Plain Layout 972 1015 973 1016 [[ 974 1017 \end_layout 975 1018 976 \begin_layout Standard1019 \begin_layout Plain Layout 977 1020 978 1021 NameBlock beta1 = [[ 979 1022 \end_layout 980 1023 981 \begin_layout Standard1024 \begin_layout Plain Layout 982 1025 983 1026 Text _.id_parameter = "Nombre del nodo donde está beta1" 984 1027 \end_layout 985 1028 986 \begin_layout Standard1029 \begin_layout Plain Layout 987 1030 988 1031 Text _.id_node = "Nodo donde está situado el beta1" 989 1032 \end_layout 990 1033 991 \begin_layout Standard1034 \begin_layout Plain Layout 992 1035 993 1036 Real _.sigma_factor = 1 994 1037 \end_layout 995 1038 996 \begin_layout Standard1039 \begin_layout Plain Layout 997 1040 998 1041 ]], 999 1042 \end_layout 1000 1043 1001 \begin_layout Standard1044 \begin_layout Plain Layout 1002 1045 1003 1046 NameBlock beta2 = [[ ... 1004 1047 \end_layout 1005 1048 1006 \begin_layout Standard1049 \begin_layout Plain Layout 1007 1050 1008 1051 ...]], 1009 1052 \end_layout 1010 1053 1011 \begin_layout Standard1054 \begin_layout Plain Layout 1012 1055 1013 1056 ... 1014 1057 \end_layout 1015 1058 1016 \begin_layout Standard1059 \begin_layout Plain Layout 1017 1060 1018 1061 ... 1019 1062 \end_layout 1020 1063 1021 \begin_layout Standard1064 \begin_layout Plain Layout 1022 1065 1023 1066 ]] 1024 1067 \end_layout 1025 1068 1026 \begin_layout Standard1069 \begin_layout Plain Layout 1027 1070 1028 1071 )}; … … 1041 1084 status open 1042 1085 1043 \begin_layout Standard1086 \begin_layout Plain Layout 1044 1087 1045 1088 Real { 1046 1089 \end_layout 1047 1090 1048 \begin_layout Standard1091 \begin_layout Plain Layout 1049 1092 1050 1093 // Set de hiperparámetros. … … 1052 1095 \end_layout 1053 1096 1054 \begin_layout Standard1097 \begin_layout Plain Layout 1055 1098 1056 1099 // hiperparámetros tiene el nodo lantente. 1057 1100 \end_layout 1058 1101 1059 \begin_layout Standard1102 \begin_layout Plain Layout 1060 1103 1061 1104 Set father_parameters = [[ 1062 1105 \end_layout 1063 1106 1064 \begin_layout Standard1107 \begin_layout Plain Layout 1065 1108 1066 1109 NameBlock Lam1 = ModSes.Lat.Father.Param.Def ( 1067 1110 \end_layout 1068 1111 1069 \begin_layout Standard1112 \begin_layout Plain Layout 1070 1113 1071 1114 Text id_parameter = "hiper1", 1072 1115 \end_layout 1073 1116 1074 \begin_layout Standard1117 \begin_layout Plain Layout 1075 1118 1076 1119 Real init_value = 0.1, 1077 1120 \end_layout 1078 1121 1079 \begin_layout Standard1122 \begin_layout Plain Layout 1080 1123 1081 1124 Real min = 0, 1082 1125 \end_layout 1083 1126 1084 \begin_layout Standard1127 \begin_layout Plain Layout 1085 1128 1086 1129 Real max = 1 1087 1130 \end_layout 1088 1131 1089 \begin_layout Standard1132 \begin_layout Plain Layout 1090 1133 1091 1134 ), 1092 1135 \end_layout 1093 1136 1094 \begin_layout Standard1137 \begin_layout Plain Layout 1095 1138 1096 1139 NameBlock Lam2 = ModSes.Lat.Father.Param.Def ( 1097 1140 \end_layout 1098 1141 1099 \begin_layout Standard1142 \begin_layout Plain Layout 1100 1143 1101 1144 ...... 1102 1145 \end_layout 1103 1146 1104 \begin_layout Standard1147 \begin_layout Plain Layout 1105 1148 1106 1149 ...... 1107 1150 \end_layout 1108 1151 1109 \begin_layout Standard1152 \begin_layout Plain Layout 1110 1153 1111 1154 ), 1112 1155 \end_layout 1113 1156 1114 \begin_layout Standard1157 \begin_layout Plain Layout 1115 1158 1116 1159 ........ 1117 1160 \end_layout 1118 1161 1119 \begin_layout Standard1162 \begin_layout Plain Layout 1120 1163 1121 1164 ........ 1122 1165 \end_layout 1123 1166 1124 \begin_layout Standard1167 \begin_layout Plain Layout 1125 1168 1126 1169 ]]; 1127 1170 \end_layout 1128 1171 1129 \begin_layout Standard1172 \begin_layout Plain Layout 1130 1173 1131 1174 // Set de parámetros hijo. … … 1133 1176 \end_layout 1134 1177 1135 \begin_layout Standard1178 \begin_layout Plain Layout 1136 1179 1137 1180 // paramétros hijo tenga el nodo latente regresivo. 1138 1181 \end_layout 1139 1182 1140 \begin_layout Standard1183 \begin_layout Plain Layout 1141 1184 1142 1185 Set node_childs = [[ 1143 1186 \end_layout 1144 1187 1145 \begin_layout Standard1188 \begin_layout Plain Layout 1146 1189 1147 1190 NameBlock beta1 = ModSes.Lat.Child.Param.Def ( 1148 1191 \end_layout 1149 1192 1150 \begin_layout Standard1193 \begin_layout Plain Layout 1151 1194 1152 1195 Text id_node = "node1", 1153 1196 \end_layout 1154 1197 1155 \begin_layout Standard1198 \begin_layout Plain Layout 1156 1199 1157 1200 Text id_parameter = "beta1", 1158 1201 \end_layout 1159 1202 1160 \begin_layout Standard1203 \begin_layout Plain Layout 1161 1204 1162 1205 Real sigma_factor = 1 1163 1206 \end_layout 1164 1207 1165 \begin_layout Standard1208 \begin_layout Plain Layout 1166 1209 1167 1210 ), 1168 1211 \end_layout 1169 1212 1170 \begin_layout Standard1213 \begin_layout Plain Layout 1171 1214 1172 1215 NameBlock beta2 = ModSes.Lat.Child.Param.Def ( 1173 1216 \end_layout 1174 1217 1175 \begin_layout Standard1218 \begin_layout Plain Layout 1176 1219 1177 1220 ..... 1178 1221 \end_layout 1179 1222 1180 \begin_layout Standard1223 \begin_layout Plain Layout 1181 1224 1182 1225 ..... 1183 1226 \end_layout 1184 1227 1185 \begin_layout Standard1228 \begin_layout Plain Layout 1186 1229 1187 1230 ), 1188 1231 \end_layout 1189 1232 1190 \begin_layout Standard1233 \begin_layout Plain Layout 1191 1234 1192 1235 ...... 1193 1236 \end_layout 1194 1237 1195 \begin_layout Standard1238 \begin_layout Plain Layout 1196 1239 1197 1240 ...... 1198 1241 \end_layout 1199 1242 1200 \begin_layout Standard1243 \begin_layout Plain Layout 1201 1244 1202 1245 ]]; 1203 1246 \end_layout 1204 1247 1205 \begin_layout Standard1248 \begin_layout Plain Layout 1206 1249 1207 1250 Real BysMcmc::Bsr::DynHlm::DBApi::ModSes.Lat.Create ( 1208 1251 \end_layout 1209 1252 1210 \begin_layout Standard1253 \begin_layout Plain Layout 1211 1254 1212 1255 DBConnection::BsrHlm::_.defaultDB, 1213 1256 \end_layout 1214 1257 1215 \begin_layout Standard1258 \begin_layout Plain Layout 1216 1259 1217 1260 id_model, 1218 1261 \end_layout 1219 1262 1220 \begin_layout Standard1263 \begin_layout Plain Layout 1221 1264 1222 1265 id_session, 1223 1266 \end_layout 1224 1267 1225 \begin_layout Standard1268 \begin_layout Plain Layout 1226 1269 1227 1270 // Nombre del nodo latente 1228 1271 \end_layout 1229 1272 1230 \begin_layout Standard1273 \begin_layout Plain Layout 1231 1274 1232 1275 id_node = "Lat.Reg", 1233 1276 \end_layout 1234 1277 1235 \begin_layout Standard1278 \begin_layout Plain Layout 1236 1279 1237 1280 // Descripcion del nodo latente 1238 1281 \end_layout 1239 1282 1240 \begin_layout Standard1283 \begin_layout Plain Layout 1241 1284 1242 1285 description = "Establece un nodo regresivo latente...", 1243 1286 \end_layout 1244 1287 1245 \begin_layout Standard1288 \begin_layout Plain Layout 1246 1289 1247 1290 //Nivel de latencia en la jerarquÃa 1248 1291 \end_layout 1249 1292 1250 \begin_layout Standard1293 \begin_layout Plain Layout 1251 1294 1252 1295 Real level = 1, 1253 1296 \end_layout 1254 1297 1255 \begin_layout Standard1298 \begin_layout Plain Layout 1256 1299 1257 1300 // Orden de aparición dentro del nivel 1258 1301 \end_layout 1259 1302 1260 \begin_layout Standard1303 \begin_layout Plain Layout 1261 1304 1262 1305 Copy(level.1_number := level.1_number+1), 1263 1306 \end_layout 1264 1307 1265 \begin_layout Standard1308 \begin_layout Plain Layout 1266 1309 1267 1310 father_parameters, 1268 1311 \end_layout 1269 1312 1270 \begin_layout Standard1313 \begin_layout Plain Layout 1271 1314 1272 1315 node_childs, 1273 1316 \end_layout 1274 1317 1275 \begin_layout Standard1318 \begin_layout Plain Layout 1276 1319 1277 1320 // Valor de la sigma del bloque latente conjunto 1278 1321 \end_layout 1279 1322 1280 \begin_layout Standard1323 \begin_layout Plain Layout 1281 1324 1282 1325 Real sigma = 0.1, 1283 1326 \end_layout 1284 1327 1285 \begin_layout Standard1328 \begin_layout Plain Layout 1286 1329 1287 1330 // Matrix X del nodo latente 1288 1331 \end_layout 1289 1332 1290 \begin_layout Standard1333 \begin_layout Plain Layout 1291 1334 1292 1335 Matrix X 1293 1336 \end_layout 1294 1337 1295 \begin_layout Standard1338 \begin_layout Plain Layout 1296 1339 1297 1340 ) 1298 1341 \end_layout 1299 1342 1300 \begin_layout Standard1343 \begin_layout Plain Layout 1301 1344 1302 1345 }; … … 1315 1358 status open 1316 1359 1317 \begin_layout Standard1360 \begin_layout Plain Layout 1318 1361 1319 1362 Real { 1320 1363 \end_layout 1321 1364 1322 \begin_layout Standard1365 \begin_layout Plain Layout 1323 1366 1324 1367 Set father_parameters = [[ 1325 1368 \end_layout 1326 1369 1327 \begin_layout Standard1370 \begin_layout Plain Layout 1328 1371 1329 1372 NameBlock Lam1 = ModSes.Lat.Father.Param.Def ( 1330 1373 \end_layout 1331 1374 1332 \begin_layout Standard1375 \begin_layout Plain Layout 1333 1376 1334 1377 Text id_parameter = "hiper1", 1335 1378 \end_layout 1336 1379 1337 \begin_layout Standard1380 \begin_layout Plain Layout 1338 1381 1339 1382 Real init_value = 0.1, 1340 1383 \end_layout 1341 1384 1342 \begin_layout Standard1385 \begin_layout Plain Layout 1343 1386 1344 1387 Real min = 0, 1345 1388 \end_layout 1346 1389 1347 \begin_layout Standard1390 \begin_layout Plain Layout 1348 1391 1349 1392 Real max = 1 1350 1393 \end_layout 1351 1394 1352 \begin_layout Standard1395 \begin_layout Plain Layout 1353 1396 1354 1397 ), 1355 1398 \end_layout 1356 1399 1357 \begin_layout Standard1400 \begin_layout Plain Layout 1358 1401 1359 1402 NameBlock Lam2 = ModSes.Lat.Father.Param.Def ( 1360 1403 \end_layout 1361 1404 1362 \begin_layout Standard1405 \begin_layout Plain Layout 1363 1406 1364 1407 ...... 1365 1408 \end_layout 1366 1409 1367 \begin_layout Standard1410 \begin_layout Plain Layout 1368 1411 1369 1412 ...... 1370 1413 \end_layout 1371 1414 1372 \begin_layout Standard1415 \begin_layout Plain Layout 1373 1416 1374 1417 ), 1375 1418 \end_layout 1376 1419 1377 \begin_layout Standard1420 \begin_layout Plain Layout 1378 1421 1379 1422 ........ 1380 1423 \end_layout 1381 1424 1382 \begin_layout Standard1425 \begin_layout Plain Layout 1383 1426 1384 1427 ........ 1385 1428 \end_layout 1386 1429 1387 \begin_layout Standard1430 \begin_layout Plain Layout 1388 1431 1389 1432 ]]; 1390 1433 \end_layout 1391 1434 1392 \begin_layout Standard1435 \begin_layout Plain Layout 1393 1436 1394 1437 // Set de parámetros hijo. … … 1396 1439 \end_layout 1397 1440 1398 \begin_layout Standard1441 \begin_layout Plain Layout 1399 1442 1400 1443 // paramétros hijo tenga el nodo latente regresivo. 1401 1444 \end_layout 1402 1445 1403 \begin_layout Standard1446 \begin_layout Plain Layout 1404 1447 1405 1448 Set node_childs = [[ 1406 1449 \end_layout 1407 1450 1408 \begin_layout Standard1451 \begin_layout Plain Layout 1409 1452 1410 1453 NameBlock beta1 = ModSes.Lat.Child.Param.Def ( 1411 1454 \end_layout 1412 1455 1413 \begin_layout Standard1456 \begin_layout Plain Layout 1414 1457 1415 1458 Text id_node = "node1", 1416 1459 \end_layout 1417 1460 1418 \begin_layout Standard1461 \begin_layout Plain Layout 1419 1462 1420 1463 Text id_parameter = "beta1", 1421 1464 \end_layout 1422 1465 1423 \begin_layout Standard1466 \begin_layout Plain Layout 1424 1467 1425 1468 Real sigma_factor = 1 1426 1469 \end_layout 1427 1470 1428 \begin_layout Standard1471 \begin_layout Plain Layout 1429 1472 1430 1473 ), 1431 1474 \end_layout 1432 1475 1433 \begin_layout Standard1476 \begin_layout Plain Layout 1434 1477 1435 1478 NameBlock beta2 = ModSes.Lat.Child.Param.Def ( 1436 1479 \end_layout 1437 1480 1438 \begin_layout Standard1481 \begin_layout Plain Layout 1439 1482 1440 1483 ..... 1441 1484 \end_layout 1442 1485 1443 \begin_layout Standard1486 \begin_layout Plain Layout 1444 1487 1445 1488 ..... 1446 1489 \end_layout 1447 1490 1448 \begin_layout Standard1491 \begin_layout Plain Layout 1449 1492 1450 1493 ), 1451 1494 \end_layout 1452 1495 1453 \begin_layout Standard1496 \begin_layout Plain Layout 1454 1497 1455 1498 ...... 1456 1499 \end_layout 1457 1500 1458 \begin_layout Standard1501 \begin_layout Plain Layout 1459 1502 1460 1503 ...... 1461 1504 \end_layout 1462 1505 1463 \begin_layout Standard1506 \begin_layout Plain Layout 1464 1507 1465 1508 ]]; 1466 1509 \end_layout 1467 1510 1468 \begin_layout Standard1469 1470 \end_layout 1471 1472 \begin_layout Standard1511 \begin_layout Plain Layout 1512 1513 \end_layout 1514 1515 \begin_layout Plain Layout 1473 1516 1474 1517 Real ModSes.Lat.OutComb.Create ( 1475 1518 \end_layout 1476 1519 1477 \begin_layout Standard1520 \begin_layout Plain Layout 1478 1521 1479 1522 DBConnection::BsrHlm::_.defaultDB, 1480 1523 \end_layout 1481 1524 1482 \begin_layout Standard1525 \begin_layout Plain Layout 1483 1526 1484 1527 id_model, 1485 1528 \end_layout 1486 1529 1487 \begin_layout Standard1530 \begin_layout Plain Layout 1488 1531 1489 1532 id_session, 1490 1533 \end_layout 1491 1534 1492 \begin_layout Standard1535 \begin_layout Plain Layout 1493 1536 1494 1537 // Nombre del nodo latente 1495 1538 \end_layout 1496 1539 1497 \begin_layout Standard1540 \begin_layout Plain Layout 1498 1541 1499 1542 id_node = "Lat.Reg", 1500 1543 \end_layout 1501 1544 1502 \begin_layout Standard1545 \begin_layout Plain Layout 1503 1546 1504 1547 // Descripción del nodo latente 1505 1548 \end_layout 1506 1549 1507 \begin_layout Standard1550 \begin_layout Plain Layout 1508 1551 1509 1552 description = "Establece un nodo regresivo latente...", 1510 1553 \end_layout 1511 1554 1512 \begin_layout Standard1555 \begin_layout Plain Layout 1513 1556 1514 1557 // Nivel de latencia en la jerarquÃa 1515 1558 \end_layout 1516 1559 1517 \begin_layout Standard1560 \begin_layout Plain Layout 1518 1561 1519 1562 Real level = 1, 1520 1563 \end_layout 1521 1564 1522 \begin_layout Standard1565 \begin_layout Plain Layout 1523 1566 1524 1567 // Orden de aparición dentro del nivel 1525 1568 \end_layout 1526 1569 1527 \begin_layout Standard1570 \begin_layout Plain Layout 1528 1571 1529 1572 Copy(level.1_number := level.1_number+1), 1530 1573 \end_layout 1531 1574 1532 \begin_layout Standard1575 \begin_layout Plain Layout 1533 1576 1534 1577 father_parameters, 1535 1578 \end_layout 1536 1579 1537 \begin_layout Standard1580 \begin_layout Plain Layout 1538 1581 1539 1582 node_childs, 1540 1583 \end_layout 1541 1584 1542 \begin_layout Standard1585 \begin_layout Plain Layout 1543 1586 1544 1587 // Valor de Sigma para todo el nodo latente 1545 1588 \end_layout 1546 1589 1547 \begin_layout Standard1590 \begin_layout Plain Layout 1548 1591 1549 1592 Real sigma = 0.1, 1550 1593 \end_layout 1551 1594 1552 \begin_layout Standard1595 \begin_layout Plain Layout 1553 1596 1554 1597 // Matriz X del nodo latente 1555 1598 \end_layout 1556 1599 1557 \begin_layout Standard1600 \begin_layout Plain Layout 1558 1601 1559 1602 Matrix X, 1560 1603 \end_layout 1561 1604 1562 \begin_layout Standard1605 \begin_layout Plain Layout 1563 1606 1564 1607 // Matriz Y del nodo latente 1565 1608 \end_layout 1566 1609 1567 \begin_layout Standard1610 \begin_layout Plain Layout 1568 1611 1569 1612 Matrix Y, 1570 1613 \end_layout 1571 1614 1572 \begin_layout Standard1615 \begin_layout Plain Layout 1573 1616 1574 1617 // Un Set de Reales. … … 1576 1619 \end_layout 1577 1620 1578 \begin_layout Standard1621 \begin_layout Plain Layout 1579 1622 1580 1623 // de sigma de la i-ésima ecuación del nodo latente 1581 1624 \end_layout 1582 1625 1583 \begin_layout Standard1626 \begin_layout Plain Layout 1584 1627 1585 1628 Set SigmaLat = [[ 1586 1629 \end_layout 1587 1630 1588 \begin_layout Standard1631 \begin_layout Plain Layout 1589 1632 1590 1633 Real sigma1 = 0.1 1591 1634 \end_layout 1592 1635 1593 \begin_layout Standard1636 \begin_layout Plain Layout 1594 1637 1595 1638 Real sigma2 = 0.2 1596 1639 \end_layout 1597 1640 1598 \begin_layout Standard1641 \begin_layout Plain Layout 1599 1642 1600 1643 .... 1601 1644 \end_layout 1602 1645 1603 \begin_layout Standard1646 \begin_layout Plain Layout 1604 1647 1605 1648 .... 1606 1649 \end_layout 1607 1650 1608 \begin_layout Standard1651 \begin_layout Plain Layout 1609 1652 1610 1653 ]]) 1611 1654 \end_layout 1612 1655 1613 \begin_layout Standard1656 \begin_layout Plain Layout 1614 1657 1615 1658 }; … … 1623 1666 \series default 1624 1667 . 1625 \newline 1668 \begin_inset Newline newline 1669 \end_inset 1670 1626 1671 1627 1672 \begin_inset listings … … 1629 1674 status open 1630 1675 1631 \begin_layout Standard1676 \begin_layout Plain Layout 1632 1677 1633 1678 Real{ 1634 1679 \end_layout 1635 1680 1636 \begin_layout Standard1681 \begin_layout Plain Layout 1637 1682 1638 1683 BysMcmc::Bsr::DynHlm::DPApi::ModSes.Pri.Homog_1.Create( 1639 1684 \end_layout 1640 1685 1641 \begin_layout Standard1686 \begin_layout Plain Layout 1642 1687 1643 1688 DBConnection::BsrHlm::_.defaultDB, 1644 1689 \end_layout 1645 1690 1646 \begin_layout Standard1691 \begin_layout Plain Layout 1647 1692 1648 1693 id_model, 1649 1694 \end_layout 1650 1695 1651 \begin_layout Standard1696 \begin_layout Plain Layout 1652 1697 1653 1698 id_session, 1654 1699 \end_layout 1655 1700 1656 \begin_layout Standard1701 \begin_layout Plain Layout 1657 1702 1658 1703 // identificación del nodo 1659 1704 \end_layout 1660 1705 1661 \begin_layout Standard1706 \begin_layout Plain Layout 1662 1707 1663 1708 id_node = "Pri", 1664 1709 \end_layout 1665 1710 1666 \begin_layout Standard1711 \begin_layout Plain Layout 1667 1712 1668 1713 // descripción del nodo 1669 1714 \end_layout 1670 1715 1671 \begin_layout Standard1716 \begin_layout Plain Layout 1672 1717 1673 1718 description = "Prior para..." 1674 1719 \end_layout 1675 1720 1676 \begin_layout Standard1721 \begin_layout Plain Layout 1677 1722 1678 1723 // Conjunto de NameBlock. … … 1680 1725 \end_layout 1681 1726 1682 \begin_layout Standard1727 \begin_layout Plain Layout 1683 1728 1684 1729 // parámetro o hiperparámetro es el que tiene el a priori. 1685 1730 \end_layout 1686 1731 1687 \begin_layout Standard1732 \begin_layout Plain Layout 1688 1733 1689 1734 [[ 1690 1735 \end_layout 1691 1736 1692 \begin_layout Standard1737 \begin_layout Plain Layout 1693 1738 1694 1739 NameBlock hiper1 = [[ 1695 1740 \end_layout 1696 1741 1697 \begin_layout Standard1742 \begin_layout Plain Layout 1698 1743 1699 1744 // Nombre del nodo donde está hiper1 1700 1745 \end_layout 1701 1746 1702 \begin_layout Standard1747 \begin_layout Plain Layout 1703 1748 1704 1749 Text _.id_node = "node_hiper1", 1705 1750 \end_layout 1706 1751 1707 \begin_layout Standard1752 \begin_layout Plain Layout 1708 1753 1709 1754 // Nombre del parámetro que tiene el prior 1710 1755 \end_layout 1711 1756 1712 \begin_layout Standard1757 \begin_layout Plain Layout 1713 1758 1714 1759 Text _.id_parameter = "Lam1", 1715 1760 \end_layout 1716 1761 1717 \begin_layout Standard1762 \begin_layout Plain Layout 1718 1763 1719 1764 // Valor medio de la Normal prior 1720 1765 \end_layout 1721 1766 1722 \begin_layout Standard1767 \begin_layout Plain Layout 1723 1768 1724 1769 Real _.average = 0.1, 1725 1770 \end_layout 1726 1771 1727 \begin_layout Standard1772 \begin_layout Plain Layout 1728 1773 1729 1774 // Valor de sigma de la Normla prior 1730 1775 \end_layout 1731 1776 1732 \begin_layout Standard1777 \begin_layout Plain Layout 1733 1778 1734 1779 Real _.sigma = 0.01 1735 1780 \end_layout 1736 1781 1737 \begin_layout Standard1782 \begin_layout Plain Layout 1738 1783 1739 1784 ]] 1740 1785 \end_layout 1741 1786 1742 \begin_layout Standard1787 \begin_layout Plain Layout 1743 1788 1744 1789 NameBlock hiper2 = [[ 1745 1790 \end_layout 1746 1791 1747 \begin_layout Standard1792 \begin_layout Plain Layout 1748 1793 1749 1794 .... 1750 1795 \end_layout 1751 1796 1752 \begin_layout Standard1797 \begin_layout Plain Layout 1753 1798 1754 1799 .... … … 1756 1801 \end_layout 1757 1802 1758 \begin_layout Standard1803 \begin_layout Plain Layout 1759 1804 1760 1805 ]] 1761 1806 \end_layout 1762 1807 1763 \begin_layout Standard1808 \begin_layout Plain Layout 1764 1809 1765 1810 .... 1766 1811 \end_layout 1767 1812 1768 \begin_layout Standard1769 1770 \end_layout 1771 1772 \begin_layout Standard1813 \begin_layout Plain Layout 1814 1815 \end_layout 1816 1817 \begin_layout Plain Layout 1773 1818 1774 1819 ]] 1775 1820 \end_layout 1776 1821 1777 \begin_layout Standard1822 \begin_layout Plain Layout 1778 1823 1779 1824 ) 1780 1825 \end_layout 1781 1826 1782 \begin_layout Standard1827 \begin_layout Plain Layout 1783 1828 1784 1829 }; … … 1796 1841 \series default 1797 1842 . 1798 \newline 1843 \begin_inset Newline newline 1844 \end_inset 1845 1799 1846 1800 1847 \begin_inset listings … … 1802 1849 status open 1803 1850 1804 \begin_layout Standard1851 \begin_layout Plain Layout 1805 1852 1806 1853 Real { 1807 1854 \end_layout 1808 1855 1809 \begin_layout Standard1856 \begin_layout Plain Layout 1810 1857 1811 1858 BysMcmc::Bsr::DynHlm::DPApi::ModSes.Pri.Out.Comb.Create( 1812 1859 \end_layout 1813 1860 1814 \begin_layout Standard1861 \begin_layout Plain Layout 1815 1862 1816 1863 DBConnection::BsrHlm::_.defaultDB, 1817 1864 \end_layout 1818 1865 1819 \begin_layout Standard1866 \begin_layout Plain Layout 1820 1867 1821 1868 id_model, 1822 1869 \end_layout 1823 1870 1824 \begin_layout Standard1871 \begin_layout Plain Layout 1825 1872 1826 1873 id_session, 1827 1874 \end_layout 1828 1875 1829 \begin_layout Standard1876 \begin_layout Plain Layout 1830 1877 1831 1878 // identificación del nodo 1832 1879 \end_layout 1833 1880 1834 \begin_layout Standard1881 \begin_layout Plain Layout 1835 1882 1836 1883 id_node = "Pri.OutComb", 1837 1884 \end_layout 1838 1885 1839 \begin_layout Standard1886 \begin_layout Plain Layout 1840 1887 1841 1888 // descripción del nodo 1842 1889 \end_layout 1843 1890 1844 \begin_layout Standard1891 \begin_layout Plain Layout 1845 1892 1846 1893 description = "Prior para...", 1847 1894 \end_layout 1848 1895 1849 \begin_layout Standard1896 \begin_layout Plain Layout 1850 1897 1851 1898 Copy(level.2_number := level.2_number+1), 1852 1899 \end_layout 1853 1900 1854 \begin_layout Standard1901 \begin_layout Plain Layout 1855 1902 1856 1903 // Set de sets, cada set contiene dos reales que especifican 1857 1904 \end_layout 1858 1905 1859 \begin_layout Standard1906 \begin_layout Plain Layout 1860 1907 1861 1908 // el valor de la media y sigma para cada ecuacion del nodo a priori 1862 1909 \end_layout 1863 1910 1864 \begin_layout Standard1911 \begin_layout Plain Layout 1865 1912 1866 1913 [[ 1867 1914 \end_layout 1868 1915 1869 \begin_layout Standard1916 \begin_layout Plain Layout 1870 1917 1871 1918 [[ mu_1, sigma_1 ]], 1872 1919 \end_layout 1873 1920 1874 \begin_layout Standard1921 \begin_layout Plain Layout 1875 1922 1876 1923 [[ mu_2, sigma_2 ]], 1877 1924 \end_layout 1878 1925 1879 \begin_layout Standard1926 \begin_layout Plain Layout 1880 1927 1881 1928 ............ 1882 1929 \end_layout 1883 1930 1884 \begin_layout Standard1931 \begin_layout Plain Layout 1885 1932 1886 1933 ]], 1887 1934 \end_layout 1888 1935 1889 \begin_layout Standard1936 \begin_layout Plain Layout 1890 1937 1891 1938 // Set de NameBlocks, tantos NameBlocks como parámetros entran 1892 1939 \end_layout 1893 1940 1894 \begin_layout Standard1941 \begin_layout Plain Layout 1895 1942 1896 1943 // en la combinación lineal del output 1897 1944 \end_layout 1898 1945 1899 \begin_layout Standard1946 \begin_layout Plain Layout 1900 1947 1901 1948 [[ 1902 1949 \end_layout 1903 1950 1904 \begin_layout Standard1951 \begin_layout Plain Layout 1905 1952 1906 1953 NameBlock param1 = [[ 1907 1954 \end_layout 1908 1955 1909 \begin_layout Standard1956 \begin_layout Plain Layout 1910 1957 1911 1958 // Nombre de ese parámetro 1912 1959 \end_layout 1913 1960 1914 \begin_layout Standard1961 \begin_layout Plain Layout 1915 1962 1916 1963 Text _.id_node = "param1", 1917 1964 \end_layout 1918 1965 1919 \begin_layout Standard1966 \begin_layout Plain Layout 1920 1967 1921 1968 // Localización de ese parámetro 1922 1969 \end_layout 1923 1970 1924 \begin_layout Standard1971 \begin_layout Plain Layout 1925 1972 1926 1973 Text _.id_parameter = "node.param1" 1927 1974 \end_layout 1928 1975 1929 \begin_layout Standard1976 \begin_layout Plain Layout 1930 1977 1931 1978 ]], 1932 1979 \end_layout 1933 1980 1934 \begin_layout Standard1981 \begin_layout Plain Layout 1935 1982 1936 1983 NameBlock param2 = [[ 1937 1984 \end_layout 1938 1985 1939 \begin_layout Standard1986 \begin_layout Plain Layout 1940 1987 1941 1988 ..... … … 1943 1990 \end_layout 1944 1991 1945 \begin_layout Standard1992 \begin_layout Plain Layout 1946 1993 1947 1994 ]] 1948 1995 \end_layout 1949 1996 1950 \begin_layout Standard1997 \begin_layout Plain Layout 1951 1998 1952 1999 ]], 1953 2000 \end_layout 1954 2001 1955 \begin_layout Standard2002 \begin_layout Plain Layout 1956 2003 1957 2004 // Matriz Y responsable de la combinación lineal del output 1958 2005 \end_layout 1959 2006 1960 \begin_layout Standard2007 \begin_layout Plain Layout 1961 2008 1962 2009 Matrix Y 1963 2010 \end_layout 1964 2011 1965 \begin_layout Standard2012 \begin_layout Plain Layout 1966 2013 1967 2014 ) 1968 2015 \end_layout 1969 2016 1970 \begin_layout Standard2017 \begin_layout Plain Layout 1971 2018 1972 2019 } … … 1984 2031 \series default 1985 2032 1986 \newline 2033 \begin_inset Newline newline 2034 \end_inset 2035 1987 2036 1988 2037 \begin_inset listings … … 1990 2039 status open 1991 2040 2041 \begin_layout Plain Layout 2042 2043 Real { 2044 \end_layout 2045 2046 \begin_layout Plain Layout 2047 2048 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Mix.OrderRelation.Create( 2049 \end_layout 2050 2051 \begin_layout Plain Layout 2052 2053 DBConnection::BsrHlm::_.defaultDB, 2054 \end_layout 2055 2056 \begin_layout Plain Layout 2057 2058 id_model, 2059 \end_layout 2060 2061 \begin_layout Plain Layout 2062 2063 id_session, 2064 \end_layout 2065 2066 \begin_layout Plain Layout 2067 2068 id_node_param1, "param1", 2069 \end_layout 2070 2071 \begin_layout Plain Layout 2072 2073 /* <= */ // param1 <= param2 2074 \end_layout 2075 2076 \begin_layout Plain Layout 2077 2078 id_node_param2, "param2") 2079 \end_layout 2080 2081 \begin_layout Plain Layout 2082 2083 }; 2084 \end_layout 2085 2086 \end_inset 2087 2088 2089 \end_layout 2090 1992 2091 \begin_layout Standard 1993 2092 1994 Real { 1995 \end_layout 1996 1997 \begin_layout Standard 1998 1999 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Mix.OrderRelation.Create( 2000 \end_layout 2001 2002 \begin_layout Standard 2003 2004 DBConnection::BsrHlm::_.defaultDB, 2005 \end_layout 2006 2007 \begin_layout Standard 2008 2009 id_model, 2010 \end_layout 2011 2012 \begin_layout Standard 2013 2014 id_session, 2015 \end_layout 2016 2017 \begin_layout Standard 2018 2019 id_node_param1, "param1", 2020 \end_layout 2021 2022 \begin_layout Standard 2023 2024 /* <= */ // param1 <= param2 2025 \end_layout 2026 2027 \begin_layout Standard 2028 2029 id_node_param2, "param2") 2030 \end_layout 2031 2032 \begin_layout Standard 2033 2034 }; 2035 \end_layout 2036 2037 \end_inset 2038 2039 2040 \end_layout 2041 2042 \begin_layout Standard 2043 Finalmente la llamada al estimador BSR se realiza por el siguiente código: 2044 \newline 2093 \series bold 2094 Nodo restricción de orden con combinación lineales. 2095 \begin_inset Newline newline 2096 \end_inset 2097 2098 2099 \series default 2045 2100 2046 2101 \begin_inset listings … … 2048 2103 status open 2049 2104 2105 \begin_layout Plain Layout 2106 2107 Real{ 2108 \end_layout 2109 2110 \begin_layout Plain Layout 2111 2112 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Mix.Constraint.Create( 2113 \end_layout 2114 2115 \begin_layout Plain Layout 2116 2117 DBConnection::BsrHlm::_.defaultDB, 2118 \end_layout 2119 2120 \begin_layout Plain Layout 2121 2122 id_model, 2123 \end_layout 2124 2125 \begin_layout Plain Layout 2126 2127 id_session, 2128 \end_layout 2129 2130 \begin_layout Plain Layout 2131 2132 id_session, 2133 \end_layout 2134 2135 \begin_layout Plain Layout 2136 2137 // El lÃmite por la izquierda puede ser -1/0 o ? en el caso de 2138 \end_layout 2139 2140 \begin_layout Plain Layout 2141 2142 // que no haya lÃmite por la izquierda 2143 \end_layout 2144 2145 \begin_layout Plain Layout 2146 2147 Real leftBound = -1/0, 2148 \end_layout 2149 2150 \begin_layout Plain Layout 2151 2152 // Set de NameBlocks que especifica la información de cada 2153 \end_layout 2154 2155 \begin_layout Plain Layout 2156 2157 // uno de los parámetros que entran en la combinación lineal 2158 \end_layout 2159 2160 \begin_layout Plain Layout 2161 2162 [[ 2163 \end_layout 2164 2165 \begin_layout Plain Layout 2166 2167 NameBlock param1 = [[ 2168 \end_layout 2169 2170 \begin_layout Plain Layout 2171 2172 // Localización del parámetro 2173 \end_layout 2174 2175 \begin_layout Plain Layout 2176 2177 Text _.id_node = 2178 \begin_inset Quotes eld 2179 \end_inset 2180 2181 node.param1 2182 \begin_inset Quotes erd 2183 \end_inset 2184 2185 , 2186 \end_layout 2187 2188 \begin_layout Plain Layout 2189 2190 // Nombre del parámetro 2191 \end_layout 2192 2193 \begin_layout Plain Layout 2194 2195 Text _.id_parameter = 2196 \begin_inset Quotes eld 2197 \end_inset 2198 2199 param1 2200 \begin_inset Quotes erd 2201 \end_inset 2202 2203 , 2204 \end_layout 2205 2206 \begin_layout Plain Layout 2207 2208 // Coeficiente asociado a la combinación lineal 2209 \end_layout 2210 2211 \begin_layout Plain Layout 2212 2213 Real _.coef = 0.3 2214 \end_layout 2215 2216 \begin_layout Plain Layout 2217 2218 ]] 2219 \end_layout 2220 2221 \begin_layout Plain Layout 2222 2223 NameBlock param2 = [[ 2224 \end_layout 2225 2226 \begin_layout Plain Layout 2227 2228 ..... 2229 \end_layout 2230 2231 \begin_layout Plain Layout 2232 2233 ..... 2234 \end_layout 2235 2236 \begin_layout Plain Layout 2237 2238 ]] 2239 \end_layout 2240 2241 \begin_layout Plain Layout 2242 2243 2244 \end_layout 2245 2246 \begin_layout Plain Layout 2247 2248 \end_layout 2249 2250 \begin_layout Plain Layout 2251 2252 ]], 2253 \end_layout 2254 2255 \begin_layout Plain Layout 2256 2257 // El lÃmite por la derecha puede ser -1/0 o ? en el caso de 2258 \end_layout 2259 2260 \begin_layout Plain Layout 2261 2262 // que no haya lÃmite por la derecha 2263 \end_layout 2264 2265 \begin_layout Plain Layout 2266 2267 Real rightBound = 0 2268 \end_layout 2269 2270 \begin_layout Plain Layout 2271 2272 ) 2273 \end_layout 2274 2275 \begin_layout Plain Layout 2276 2277 } 2278 \end_layout 2279 2280 \end_inset 2281 2282 2283 \end_layout 2284 2050 2285 \begin_layout Standard 2286 Finalmente la llamada al estimador BSR se realiza por el siguiente código: 2287 \begin_inset Newline newline 2288 \end_inset 2289 2290 2291 \begin_inset listings 2292 inline false 2293 status open 2294 2295 \begin_layout Plain Layout 2051 2296 2052 2297 NameBlock bsr.config = 2053 2298 \end_layout 2054 2299 2055 \begin_layout Standard2300 \begin_layout Plain Layout 2056 2301 2057 2302 [[ 2058 2303 \end_layout 2059 2304 2060 \begin_layout Standard2305 \begin_layout Plain Layout 2061 2306 2062 2307 //MCMC dimensions 2063 2308 \end_layout 2064 2309 2065 \begin_layout Standard2310 \begin_layout Plain Layout 2066 2311 2067 2312 Real mcmc.burnin = 100; 2068 2313 \end_layout 2069 2314 2070 \begin_layout Standard2315 \begin_layout Plain Layout 2071 2316 2072 2317 Real mcmc.sampleLength = 2000; 2073 2318 \end_layout 2074 2319 2075 \begin_layout Standard2320 \begin_layout Plain Layout 2076 2321 2077 2322 Real mcmc.cacheLength = 100; 2078 2323 \end_layout 2079 2324 2080 \begin_layout Standard2325 \begin_layout Plain Layout 2081 2326 2082 2327 //Basic master configuration 2083 2328 \end_layout 2084 2329 2085 \begin_layout Standard2330 \begin_layout Plain Layout 2086 2331 2087 2332 Real basic.cholesky.epsilon = 1.E-10; 2088 2333 \end_layout 2089 2334 2090 \begin_layout Standard2335 \begin_layout Plain Layout 2091 2336 2092 2337 Real basic.cholesky.warningFreq = 100; 2093 2338 \end_layout 2094 2339 2095 \begin_layout Standard2340 \begin_layout Plain Layout 2096 2341 2097 2342 Real basic.truncMNormal.gibbsNumIter = 5; 2098 2343 \end_layout 2099 2344 2100 \begin_layout Standard2345 \begin_layout Plain Layout 2101 2346 2102 2347 //Report configuration 2103 2348 \end_layout 2104 2349 2105 \begin_layout Standard2350 \begin_layout Plain Layout 2106 2351 2107 2352 Real report.raftery.diag.q = 0.025; 2108 2353 \end_layout 2109 2354 2110 \begin_layout Standard2355 \begin_layout Plain Layout 2111 2356 2112 2357 Real report.raftery.diag.r = 0.007; 2113 2358 \end_layout 2114 2359 2115 \begin_layout Standard2360 \begin_layout Plain Layout 2116 2361 2117 2362 Real report.raftery.diag.s = 0.950; 2118 2363 \end_layout 2119 2364 2120 \begin_layout Standard2365 \begin_layout Plain Layout 2121 2366 2122 2367 Real report.raftery.diag.eps = 0.001; 2123 2368 \end_layout 2124 2369 2125 \begin_layout Standard2370 \begin_layout Plain Layout 2126 2371 2127 2372 Real report.acf.lag = 20, 2128 2373 \end_layout 2129 2374 2130 \begin_layout Standard2375 \begin_layout Plain Layout 2131 2376 2132 2377 Real report.histogram.parts = 100; 2133 2378 \end_layout 2134 2379 2135 \begin_layout Standard2380 \begin_layout Plain Layout 2136 2381 2137 2382 Real report.kerDens.points = 0; 2138 2383 \end_layout 2139 2384 2140 \begin_layout Standard2385 \begin_layout Plain Layout 2141 2386 2142 2387 Real report.kerDens.numIter = 2; 2143 2388 \end_layout 2144 2389 2145 \begin_layout Standard2390 \begin_layout Plain Layout 2146 2391 2147 2392 Real report.kerDens.epsilon = 0.001; 2148 2393 \end_layout 2149 2394 2150 \begin_layout Standard2395 \begin_layout Plain Layout 2151 2396 2152 2397 //Generic flags 2153 2398 \end_layout 2154 2399 2155 \begin_layout Standard2400 \begin_layout Plain Layout 2156 2401 2157 2402 Real do.resume = False; 2158 2403 \end_layout 2159 2404 2160 \begin_layout Standard2405 \begin_layout Plain Layout 2161 2406 2162 2407 Real do.report = True; 2163 2408 \end_layout 2164 2409 2165 \begin_layout Standard2410 \begin_layout Plain Layout 2166 2411 2167 2412 Real do.eval = True; 2168 2413 \end_layout 2169 2414 2170 \begin_layout Standard2415 \begin_layout Plain Layout 2171 2416 2172 2417 Real do.linear.effects = True 2173 2418 \end_layout 2174 2419 2175 \begin_layout Standard2420 \begin_layout Plain Layout 2176 2421 2177 2422 ]]; 2178 2423 \end_layout 2179 2424 2180 \begin_layout Standard2425 \begin_layout Plain Layout 2181 2426 2182 2427 /////////////////////////////////////////////////////////// 2183 2428 \end_layout 2184 2429 2185 \begin_layout Standard2186 2187 \end_layout 2188 2189 \begin_layout Standard2430 \begin_layout Plain Layout 2431 2432 \end_layout 2433 2434 \begin_layout Plain Layout 2190 2435 2191 2436 /////////////////////////////////////////////////////////// 2192 2437 \end_layout 2193 2438 2194 \begin_layout Standard2439 \begin_layout Plain Layout 2195 2440 2196 2441 // Estimación del modelo con el sistema Bsr::DynHlm 2197 2442 \end_layout 2198 2443 2199 \begin_layout Standard2444 \begin_layout Plain Layout 2200 2445 2201 2446 /////////////////////////////////////////////////////////// 2202 2447 \end_layout 2203 2448 2204 \begin_layout Standard2449 \begin_layout Plain Layout 2205 2450 2206 2451 Set bsr.estim = {BysMcmc::Bsr::DynHlm::DBApi::Estim( 2207 2452 \end_layout 2208 2453 2209 \begin_layout Standard2454 \begin_layout Plain Layout 2210 2455 2211 2456 DBConnection::BsrHlm::_.defaultDB, 2212 2457 \end_layout 2213 2458 2214 \begin_layout Standard2459 \begin_layout Plain Layout 2215 2460 2216 2461 id_model, 2217 2462 \end_layout 2218 2463 2219 \begin_layout Standard2464 \begin_layout Plain Layout 2220 2465 2221 2466 id_session, 2222 2467 \end_layout 2223 2468 2224 \begin_layout Standard2469 \begin_layout Plain Layout 2225 2470 2226 2471 Path::_.data.out, 2227 2472 \end_layout 2228 2473 2229 \begin_layout Standard2474 \begin_layout Plain Layout 2230 2475 2231 2476 series.handler, 2232 2477 \end_layout 2233 2478 2234 \begin_layout Standard2479 \begin_layout Plain Layout 2235 2480 2236 2481 bsr.config 2237 2482 \end_layout 2238 2483 2239 \begin_layout Standard2484 \begin_layout Plain Layout 2240 2485 2241 2486 )}; 2242 2487 \end_layout 2243 2488 2244 \begin_layout Standard2245 2246 \end_layout 2247 2248 \begin_layout Standard2489 \begin_layout Plain Layout 2490 2491 \end_layout 2492 2493 \begin_layout Plain Layout 2249 2494 2250 2495 // Desconectamos de la base de datos 2251 2496 \end_layout 2252 2497 2253 \begin_layout Standard2498 \begin_layout Plain Layout 2254 2499 2255 2500 Real DBConnection::BsrHlm::Close(0);
Note: See TracChangeset
for help on using the changeset viewer.
