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 14 years ago

Closed 13 years ago

#1246 closed doubt (fixed)

Estimación un modelo Logit con BSR

Reported by: imendez Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: BSR Version: 2.0.1
Severity: major Keywords:
Cc: jsperez, Pedro Gea, atorre@…

Description (last modified by Víctor de Buen Remiro)

Hola, ¿se puede estimar un modelo Logit con BSR?

Creo que los modelos Logit se pueden estimar con funciones como Logit (por máxima verosimilitud) y con el paquete GrzLinModel (de forma bayesiana y por máxima verosimilitud), pero tengo entendido que esas alternativas no permiten, por ejemplo, la introducción de jerarquías, ¿verdad?.

Si no se puede estimar actualmente un modelo Logit con BSR y es posible mejorar BSR para estimar este tipo de modelos, aprovecho este ticket para solicitar su implementación.

Un saludo.

Change History (13)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Description: modified (diff)

No es posible estimar un Logit con BSR porque BSR sólo admite la distribución normal para los residuos. En el caso Probit, mediante un filtro no lineal, es posible
transformar la regresión booleana en una regresión lineal normal, tal y como se explica en el apartado 6.3.4 de la página 51 del manual de BSR.

Pero eso no es posible con un Logit, o al menos a mí no se me ha ocurrido cómo. Quizás podría pesarse en alguna forma de aproximación mediante algún tipo de transformación. Lo pensaré.

comment:2 Changed 14 years ago by Víctor de Buen Remiro

Me temo que es del todo imposible retorcer un Logit para ser estimado con BSR.
La única forma de hacer lo que quieres sería introducir las jerarquías en GrzLinModel.
Voy a estudiar la viabilidad de este enfoque.

comment:3 Changed 14 years ago by Víctor de Buen Remiro

Cc: jsperez Pedro Gea added
Status: newaccepted

GrzLinModel está diseñado para funcionar como un sólo bloque de variables, el único que aparece en un modelo lineal generalizado, que es el del filtro lineal. Para introducir las jerarquías de una forma similar a lo que hace BSR habría que montar algo tan complejo o más como el propio BSR, pues habría de manejar distribuciones no normales. La complicación está pues en añadir nuevos bloques de variables.

Por eso GrzLinModel admite restricciones y prior sin problemas, pero no jerarquías ni omitidos, ni bloque de varianzas, ni ARIMA, ni filtros no lineales ni nada por el estilo. Esto es algo que habrá que hacer en su día pero será más bien otro sistema que tome a GrzLinModel como simulador de un bloque concreto y se ocupe luego del resto de cosas.

Sin embargo, a nivel interno resultaría relativamente sencillo añadir un tipo de prior normal vectorial sobre una combinación lineal cualquiera de las variables  \beta) del modelo lineal generalizado.

 C \beta \sim N \left(\mu, \Sigma \right)

Esto permitiría introducir algunos tipos de relaciones jerárquicas muy sencillas como las típicas en las que se quiere forzar que ciertas variables se parezcan entre sí. Normalmente se suelen expresar añadiendo una variable latente  \alpha) y un segmento de regresión normal para expresar la restricción estocástica:

 \beta_i \sim N \left(\alpha, \sigma^2 \right) \forall i = 1 \dots k

tal como sucede por ejemplo en BSR.

Sin embargo, dichas ecuaciones se pueden expresar de un modo alternativo que no precisa de ninguna variable latente, y es por tanto un prior puro, aunque vectorial en lugar de los típicos escalares que se suelen plantear

 \beta_{i+1} - \beta_{i}\sim N \left(0, 2\sigma^2 \right) \forall i = 1 \dots k-1

Este prior normal es expresable como un prior normal vectorial como el expresado antes tomando:

 C=\left(\begin{array}{ccccc} -1 & 1 &  &  & 0\\ & -1 & 1\\ &  & \ddots & \ddots\\ 0 &  &  & -1 & 1\end{array}\right)

 \mu=\left(\begin{array}{c}0\\0\\\vdots\\0\end{array}\right)\in\mathbb{R}^{k-1}

 \Sigma=\left(\begin{array}{cccc}2\sigma^{2} &  &  & 0\\ & 2\sigma^{2}\\ &  & \ddots\\0 &  &  & 2\sigma^{2}\end{array}\right)\in\mathbb{R}^{\left(k-1\right)\times\left(k-1\right)}

La varianza del nodo latente  \sigma^{2} no podría ya ser una variable sino que tendría que ser fija, y la media  \alpha no aparece por ningún lado aunque podría calcularse posteriormente como la media de los  \beta

Para otros tipos de relaciones jerárquicas o reticulares podría estudiarse si existe un diseño alternativo de este tipo.

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

Habría que determinar varias cosas antes de afrontar este problema:

  • ¿Se sabe que el modelo ha de ser Logit y no Probit o no se ha estudiado? Si sirve el probit se puede hacer con BSR sin problemas aunque GrzLinModel es mucho más rápido pues ataca el problema directamente sin subterfugios, ya que está diseñado precisamente para esa clase de modelos.
  • ¿Sería suficiente con el tipo de relaciones jerárquicas planteadas anteriormente?
  • ¿Cómo de urgente e importante sería implementarlo?

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

Cc: atorre@… added

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

Aunque la idea de eliminar la variable latente es correcta, hay un pequeño problema en la forma de eliminarla y en el diseño alternativo que se desprende de ello. Cada variable queda ligada a la anterior por lo que la distancia entre variables podría ir creciendo entre las más alejadas. Además de eso la matriz de covarianzas no podría ser diagonal sino tridiagonal, puesto que cada componente está relacionada con la siguiente.

Para evitarlo habría que sustituir las ecuaciones por otras más simétricas, que establecieran que cada variable se mantenga alrededor de la media del resto de variables.

He reescrito las ecuaciones en la página wiki del paquete BysPrior donde voy a programar la solución de este problema para que sea aplicable también en otros simuladores que puedan surgir fuera de GrzLinModel.

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

(In [3641]) Refs #1246
Including vectorial priors

comment:8 Changed 14 years ago by Víctor de Buen Remiro

(In [3643]) Refs #1246
Including vectorial priors

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

(In [3644]) Refs #1246
Setting version 3.1

comment:10 Changed 14 years ago by Víctor de Buen Remiro

(In [3645]) Refs #1246
Using simple homogenity priors

comment:11 Changed 14 years ago by Víctor de Buen Remiro

Este mismo enfoque puede ser aplicado en otros sistemas de simulación para incluir un prior vectorial sobre cualquier grupo de variables.

En particular, podría usarse en BSR para establecer relaciones de homogenidad simple entre los parámetros de filtros no lineales (#627) o los ARMA (#629)

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

(In [3681]) Refs #1246

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

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.