close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 12 years ago

Closed 12 years ago

#1608 closed defect (fixed)

Ejemplo de modelos multiplicativos con efectos aditivos

Reported by: cescalonilla Owned by: Víctor de Buen Remiro
Priority: normal Milestone: BSR Documentation
Component: Kernel Version: 3.1
Severity: normal Keywords:
Cc: pgea@…, jsperez@…

Description (last modified by cescalonilla)

Hola,

Queremos documentar la estimación de un efecto aditivo en un modelo multiplicativo. Es un modelo con la transformación Log del output y en el cual tenemos además de los efectos multiplicativos un efecto aditivo en las observaciones originales.

Log(y+a*x) =beta*other_X + noise

Esto puede estimarse como un efecto multiplicativo aproximado

Log(y-a*x) = Log(y(1-a*(x/y)))= Log(y)+Log(1-a*(x/y))~Log(y)-a*(x/y)
cuando |x/y| proximo a cero

o mediante un bloque no lineal de BSR.

El ejercicio que queremos hacer consiste en simular un modelo controlado que contenga un efecto del tipo anterior y estimar ambas variantes (aproximada y no lineal). Con ello se quiere tratar también las condiciones sobre las cuales la estimación aproximada es válida.

Attachments (2)

ejemplo1.tol (6.3 KB) - added by cescalonilla 12 years ago.
Mixto_EstimateBSR2__1.0.bsr.zip (60.4 KB) - added by cescalonilla 12 years ago.
Estimación de un modelo mixto con BSR exacto

Download all attachments as: .zip

Change History (12)

comment:1 Changed 12 years ago by cescalonilla

Description: modified (diff)

comment:2 Changed 12 years ago by Pedro Gea

Owner: changed from vdbuen to Víctor de Buen Remiro
Status: newassigned

Changed 12 years ago by cescalonilla

Attachment: ejemplo1.tol added

comment:3 Changed 12 years ago by cescalonilla

Añado un archivo .tol con un ejemplo que muestra lo que se comenta en el ticket.

comment:4 Changed 12 years ago by Víctor de Buen Remiro

(In [5253]) Refs #1608

comment:5 Changed 12 years ago by Víctor de Buen Remiro

(In [5254]) Refs #1608

comment:6 Changed 12 years ago by Víctor de Buen Remiro

He estado haciendo pruebas utilizando BysMcmc a pelo (sin MMS), sustituyendo el filtro no lineal que proporciona MMS por el que desarrollé yo inicialmente, ya que con el de MMS no puedo depurar pues no tengo acceso al código por el momento.

Efectivamente el parámetro sale muy distinto, pues sale -1.657 cuando debería estar en torno a 2, mientras que el resto de parámetros salen bastante razonables.

source:/tolp/trunk/tol_tests/tol/Bugzilla/bug_001608/param_01.gif

Obsérvese que aunque pueda dar la impresión de ser una diferencia muy grande, pues es casi el efecto opuesto del esperado, no lo es tanto en términos de la desviación típica del parámetro que se sitúa en unas 3 sigmas, lo cual es bastante significativo pero no tan catastrófico como pudiera parecer a primera vista.

A la hora de comparar un modelo estimado con el real, las diferencias halladas entre los parámetros no suelen ser una buena medida de la calidad, y menos aún si se trata de modelos no lineales o con otras complicaciones.

La única medida incuestionable para comparar modelos es la verosimilitud, que en este caso viene determinada por los residuos y eso es lo que yo suelo comparar para construir métodos de contraste fiables en simulación masiva de modelos por ingeniería inversa.

En un modelo bayesiano, los residuos del modelo son en puridad variables aleatorias, por lo que habría que evaluarlos para cada realización de la cadena de Markov, pero como primera aproximación suele ser suficiente con calcular los residuos generados usando en la fórmula del modelo las esperanzas estimadas para los parámetros.

Si comparamos los residuos reales R con los estimados de esta forma R_ vemos que en realidad son muy semejantes

source:/tolp/trunk/tol_tests/tol/Bugzilla/bug_001608/chart_residuos_01.gif

De hecho, la desviación típica de los residuos reales (0.2016) es ligeramente mayor que la de los estimados (0.1926), así que en ningún caso se puede decir que la estimación sea mala, sino más bien que el modelo es malo, es decir, que no se trata de un buen ejemplo de la clase de modelos que se quiere analizar.

Lo que está ocurriendo es que la variable aditiva resulta mucho menos explicativa del output de lo que cabría esperar, por lo que la verosimilitud condicionada al resto de parámetros es muy plana y básicamente da lo mismo poner un valor que otro pues siempre se obtienen más o menos los mismos residuos.

Se trata de una clase de modelos muy poco estudiada con lo cual no me extraña en absoluto que sucedan estas cosas. En cuanto saque un rato trataré de ver qué es exactamente lo que no cuadra e intentaré generar un diseño congruente.

comment:7 Changed 12 years ago by Víctor de Buen Remiro

Estoy empezando a ver el problema. Si la variable input aditiva tiene media 0 entonces la estimación es correcta a nivel de parámetros, no sólo de residuos, y lo mismo pasa si las dos variables multiplicativas tiene media nula.

En cambio, si existe al menos una variable aditiva y una multiplicativa con media no nula, entonces los residuos siguen saliendo bien pero los parámetros divergen.

Así pues, en el diseño del modelo mixto aditivo-multiplicativo hay que elegir si los parámetros de nivel están en la parte aditiva o en la multiplicativa pues no pueden estar en los dos a la vez.

Intuitivamente me parece totalmente razonable pero aún no tengo una explicación formal de porqué ocurre así.

Changed 12 years ago by cescalonilla

Estimación de un modelo mixto con BSR exacto

comment:8 Changed 12 years ago by cescalonilla

Hola,

hemos probado modelos mixtos en los cuales se impone media cero en los inputs, ruido normal con una desviación muy pequeña, que las estimaciones con los tres métodos distintos salen resultados buenos.

Pero, en otros ejemplos, sin embargo, no es así, en los métodos de estimación aproximando el efecto aditivo salen correctamente, sin embargo, con el método BSR con bloque no lineal salen resultados raritos. No entiendo porque pasa eso.

Adjunto al ticket el zip de la estimación que te digo, para que le eches un vistazo, cuando haya tiempo claro.

comment:9 Changed 12 years ago by Víctor de Buen Remiro

Yo no consigo ejecutar este modelo. Me dice cosas como

Error: compensacion no es un objeto valido para el tipo Serie.

comment:10 Changed 12 years ago by Pedro Gea

Resolution: fixed
Status: assignedclosed

(In [5335]) Closes #1608
El problema se encontraba en el uso del noise sin diferenciar cuando el modelo presentaba diferencias (sin parte AR ni MA).
Se considera ese caso para evitar el error.
Se incrementa la versión baja del paquete BysMcmc.

Note: See TracTickets for help on using tickets.