| 94 | == Variables aleatorias de tipo Real.SampleBBM == |
| 95 | |
| 96 | Este tipo de variables surgen de la necesidad de almacenar las cadenas de simulación de la estimación de los parámetros de los modelos, ya que éstos se guardan en variables de tipo muestra, es decir, son instancias de la clase @Real.Sample. [[BR]] |
| 97 | Uno de los atributos de esta clase es la matriz de la muestra, entonces, si tenemos simulaciones muy grandes de estimaciones con muchos parámetros queda un archivo muy pesado y en realidad, no es necesario guardar toda la matriz cuando los datos más demandados suelen ser la media, la varianza….etc. |
| 98 | |
| 99 | Entonces se ideó un tipo de variable que tuviera las características de una variable muestral @Real.Sample pero que en vez de almacenar toda la matriz de datos tan solo guardara una ruta donde se encuentra un archivo .bbm que guarda la matriz de los datos. [[BR]] |
| 100 | Entonces, cada vez que se requirieran los datos llamamos al archivo .bbm y cargamos la matriz. [[BR]] |
| 101 | También guardamos algunos estadísticos básicos (media, varianza, mínimo y máximo) como atributos y así no es necesario cargar la matriz para calcularlos. |
| 102 | |
| 103 | Pero como ya hemos dicho antes, @Real.Sample y @Real.SampleBBM tienen los mismos métodos y por lo tanto a efectos de usuario son prácticamente iguales, donde mas difieren son en los métodos estáticos de creación. |
| 104 | |
| 105 | Por ejemplo, si queremos crear una variable a partir de una matriz, necesitamos introducir una ruta con extensión .bbm para que guarde la matriz |
| 106 | |
| 107 | {{{ RandVar::@Real.SampleBBM v1 = RandVar::@Real.SampleBBM::Sample(Matrix sample, Text "C:/filename.bbm") }}} |
| 108 | |
| 109 | También podemos crear una variable de este tipo a partir de una instancia de la clase RandVar::@Real.Sample |
| 110 | |
| 111 | {{{ |
| 112 | RandVar::@Real.Sample r1 = RandVar::@Real.Sample::Default(sample); |
| 113 | RandVar::@Real.SampleBBM v2 = RandVar::@Real.Sample::Real.Sample(r1, Text "C:/filename.bbm") |
| 114 | }}} |
| 115 | |
| 116 | '''¿Cómo se utilizan en la estimación?''' |
| 117 | |
| 118 | Es muy sencillo, tan solo es necesario introducir una variable en el ‘Settings’ de la estimación bayesiana cuando se crea ésta. [[BR]] |
| 119 | La variable de definición es un atributo de la clase @SettingsBSR y se utiliza de la siguiente forma: |
| 120 | |
| 121 | Si queremos que los parámetros se guarden en variables @Real.SampleBBM: [[BR]] |
| 122 | {{{ |
| 123 | Text _.parametersType = "SampleBBM"; |
| 125 | Si queremos que los parámetros se guarden en variables @Real.Sample (como antes): [[BR]] |
| 126 | {{{ |
| 127 | Text _.parametersType = "Sample"; |
| 128 | }}} |
| 129 | |
| 130 | Ejemplo de estimación: |
| 131 | {{{ |
| 132 | MMS::@Estimation estimation = MMS::Container::ReplaceEstimation([[ |
| 133 | Text _.name = "BSR"; |
| 134 | MMS::@Model _.model = MMS::Container::GetModel([["ModelA","1"]]); |
| 135 | MMS::@SettingsBSR _.settings = [[ |
| 136 | Real mcmc.sampleLength = 200; |
| 137 | Text _.parametersType = "SampleBBM" |
| 138 | ]] |
| 139 | ]]); |
| 140 | |
| 141 | }}} |
| 142 | |
| 143 | '''Importante''' |
| 144 | |
| 145 | Cuando guardamos la estimación, se nos guardará el archivo .bbm que contiene las cadenas |
| 146 | de la estimación al lado del archivo .oza de la estimación. [[BR]] |
| 147 | Entonces, si queremos mover el .oza de sitio tenemos que arrastrar con él, el archivo .bbm siempre que |
| 148 | queramos conservar las cadenas, si no, los únicos valores de la estimación de los parámetros que se nos |
| 149 | guardarán serán los estadísticos básicos (media, varianza, mínimo y máximo). |
| 150 | |
| 151 | Lo mismo para las previsiones, ya que las previsiones contienen estos parámetros y por lo tanto su archivo .bbm. |
| 152 | |
| 153 | |
| 154 | }}} |