Corrección por exposición del modelo logístico

He tropezado con una extensión curiosa y que no conocía del modelo logístico que lo emparenta un tanto con los modelos de supervivencia. Es un problema que aparece en los modelos de los actuarios, por ejemplo, y en la supervivencia de nidos (sí, nidos de bichos alados), parece.

Es el siguiente: supongamos que unos sujetos están expuestos a un cierto suceso cuya probabilidad, p_i, depende del sujeto a través del esquema habitual de la regresión logística (es decir, depende de algunas variables como el sexo, etc., a través de una fórmula lineal cuyos coeficientes interesa estimar).

Supongamos también, y esta es la novedad, que no todos los sujetos están expuestos al factor de riesgo el mismo tiempo. Pero si el sujeto i está expuesto al riesgo durante t_i periodos, la probabilidad de que no le ocurra cierta calamidad es p_i^{t_i}.

Planteemos el problema en R:

# número de sujetos
n <- 10000
 
# coeficientes "verdaderos"
beta.0 <- 1
beta.1 <- -2
 
# un factor que afecta a la probabilidad
x <- factor( sample( c("a", "b"), n, replace = T ) )
 
# número de días de "exposición"
days <- sample( c( 1,2,3,4 ), n, replace = T )
 
# probabilidad de que *no* ocurra el suceso
p <- plogis( beta.0 + beta.1 * (x == "b") )^days
 
# variable objetivo (1 significa que *no* ocurre el suceso)
y <- rbinom( n, 1, p )
 
# ¡gráfico!
mosaicplot( table( days, x, y ) )
 
 
# modelo logístico "normal"
dat <- data.frame( x = x, y = y, days = days )
m.0 <- glm( y ~ x, family = binomial(), data = dat )
m.0$coefficients

Adaptando código ajeno a nuestro contexto, podemos escribir:

logexp <- function(days)
{
    linkfun <- function(mu) qlogis(mu^(1/days))
    linkinv <- function(eta) plogis(eta)^(days)
    mu.eta <- function(eta) days * plogis(eta)^(days-1) * .Call("logit_mu_eta", eta, PACKAGE = "stats")
    valideta <- function(eta) TRUE
    link <- paste("logexp(", days, ")", sep="")
    structure(list(linkfun = linkfun, linkinv = linkinv,
                   mu.eta = mu.eta, valideta = valideta, name = link),
              class = "link-glm")
}

Esta definición de la función de enlace es bastante peculiar: depende del sujeto no sólo a través de mu_i, como es habitual y nos enseñan los libros, sino también a través de la variable tiempo, que depende del sujeto.

Et voilá:

m.1 <- glm( y ~ x, family=binomial(logexp(days=dat$days)), data=dat )
m.1$coefficients

Prácticamente (y, en gran medida, gracias a que el número de observaciones es grande), recobramos el valor original de los coeficientes (cosa que como habrán comprobado los más diligentes de mis lectores, no ocurre con el primer modelo).

4 comentarios sobre “Corrección por exposición del modelo logístico

  1. Jose Luis 11 abril, 2012 11:45

    Te copio el código y lo miro esta noche. La verdad es que me interesa el tema por temas académicos.

  2. Francisco J 11 abril, 2012 23:22

    He visto el código, en principio el problema que trata es interesante y en mi caso me interesa por el tratamiento y aplicaciones que se le puede dar al caso de carteras donde se trata de predecir impago, especialmente en las de tipo low default portfolio, donde ante la poca cantidad de «malos» un tratamiento como este tipo permitiría ampliar la cantidad de defaults mediante observaciones prolongadas en el tiempo y cuyos parámetros (de un modelo logístico o credit scoring asociado) serían estimados con cierta seguridad y más que preguntar por la posibilidad de que no ocurra una calamidad en ti, en mi caso sería lo complementario, es decir, probabilidad de que ocurra al menos una en ti.

    En este sentido, el código hace un muestreo, pero habría que ver (veré este tema personalmente), qué ocurre al meter más coeficientes y cómo deben de ser estos (además de la fórmula de aproximación en sí). En principio he visto que si los coeficientes son ambos pequeños en general el ajuste es muy potente, si tienen signo contrario y son más o menos pequeños en valor absoluto el ajuste sigue siendo potente, sin embargo, si los beta son parecidos y mayore a 5 (por ejemplo 5 y 5.5) en muchas ocasiones el ajuste se te va, por otro lado si algún beta es muy negativo, tienes el problema de una probabilidad tan baja que es prácticamente 0 y el método peta.

    No obstante ante lo anteriormente dicho, desde mi punto de vista tendría que analizar más detenidamente en una aplicación real:

    (1) Cómo son los coeficientes beta que salen
    (2) En todo caso tratar de hacer una simulaciones y construir, aunque sea empíricamente la distribución de los beta que se obtienen en m1 con intervalos e error
    (3) …

    En todo caso, como puntos a favor, se observa que ajusta en todos los caso mejor que el modelo logístico «tradicional» y como he apuntado anteriormente creo que permite no sólo una aplicación académica como se cita en el comentario anterior, sino bastantes aplicaciones prácticas

    Un saludo

  3. datanalytics 11 abril, 2012 23:45

    @Francisco J Práctico es: me enteré del mismo leyendo sobre la aplicación de la regresión logística en los seguros, donde los clientes han tomado una póliza en periodos distintos.

    Supón que dos grupos de asegurados tienen la misma siniestralidad pero uno lleva 1 año como cliente y el otro 2. Obviamente, las betas son iguales, pero la siniestralidad en los dos grupos es distinta (cabe esperar que en uno se cuente el doble de accidentes que en el otro).

    Eso sí, no tengo claro hasta qué punto es extrapolable a las carteras de crédito, en las que las entradas en mora tienen una dinámica distinta (correlaciones, ciclos económicos, etc.) que la de quienes se salen de la autopista.

  4. Francisco J 12 abril, 2012 8:53

    Tengo que pensarlo bastante más, pero en todo caso no me estoy refiriendo exactamente a carteras de riesgo de crédito en sentido de la banca, más bien de Seguro de Riesgo de Crédito donde interviniendo también factores de correlación, ciclo económico, etc; el tratamiento se torna en algunos aspectos diferente en cuanto que lo que se hace es no prestar dinero, sino asegurar transacciones con distintos plazos de pago que en un momento dado pueden o no cumplirse, no obstante, miro con detenimiento esto y si llego a algo más sólido respecto a este aspecto le comento

    Un saludo y gracias por compartir este tipo de enlaces

    @datanalytics

Los comentarios están desabilitados.