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

Modelo Lineal Generalizado (Generalized Linear Model)

Los modelos lineales generalizados (GLM) son una extensión de las regresiones o modelos lineales a través de una función, denominada "función de enlace".

En los modelos GLM se asume que la variable dependiente Y está generada por una función de distribución de la familia exponencial. La media M de la distribución depende de las variables independientes X}, a través de la fórmula:

E(Y) = M = InvG(B'X)

donde B'X es el "predictor lineal", B la matriz de parámetros y InvG la inversa de la función de enlace.

Para más detalles, véase el artículo sobre el modelo lineal genearalizado en es.wikipedia.org.

Modelo Logit

La función de enlace del modelo logit es:

Logit(p) = Log(p/(1-p))

y su inversa:

InvLogit(z) = 1/(1+Exp(-z)) = Exp(z)/(Exp(z)+1)

conocida como la función de distribución logística.

Verosimilitud y derivadas

Log-Likelihood

El logaritmo de la verosimilitud (log-likelihood) es:

LogL = Sum_i( Y_i*Log(P_i) + (1-Y_i)*Log(1-P_i) )

donde el subíndice i hace referencia a la i-ésima observación.

Teniendo en cuenta que la probabilidad de la i-ésima observación viene dada por:

P_i = InvLogit(B'X_i) = 1/(1+Exp(-B'X_i))

podemos escribir:

LogL = Sum_i( Y_i*Log(1/(1+Exp(-B'X_i))) + (1-Y_i)*Log(1-1/(1+Exp(-B'X_i))) ) =

     = - Sum_i( Y_i*Log(1+Exp(-B'X_i)) + (1-Y_i)*Log(1+Exp(B'X_i)) )

Gradient

La primera derivada respecto a la matriz de parámetros (B) es el gradiente del logaritmo de la verosimilitud:

G(B) = d(LogL(B))/dB =

     = - Sum_i( Y_i*Exp(-B'X_i)*(-X_i)/(1+Exp(-B'X_i)) + (1-Y_i)*Exp(B'X_i)*X_i/(1+Exp(B'X_i)) ) =

     = Sum_i( Y_i*X_i/(1+Exp(B'X_i)) - (1-Y_i)*X_i/(1+Exp(-B'X_i)) ) =

     = Sum_i( ( Y_i/(1+Exp(B'X_i)) - (1-Y_i)/(1+Exp(-B'X_i)) ) * X_i )

Hessian

La segunda derivada respecto a la matriz de parámetros (B) es la hessiana del logaritmo de la verosimilitud:

H(B) = d^2(LogL(B))/(dB dB') =

     = Sum_i( ( - Y_i*Exp(B'X_i)/(1+Exp(B'X_i))^2 + (1-Y_i)*Exp(-B'X_i)/(1+Exp(-B'X_i))^2 ) * X_i * X'_i ) = 

     = - Sum_i( Exp(B'X_i)/(1+Exp(B'X_i))^2 * X_i * X'_i )

Nótese que la hessiana puede reescribirse como:

H(B) = - Sum_i( P_i*(1-P_i) * X_i * X'_i ) 

Modelo Probit

La función de enlace del modelo probit es la inversa de la función de distribución normal (con parámetros: media 0 y varianza 1):

Probit(p) = InvDistNormal(p)

cuya inversa es:

InvProbit(z) = DistNormal(z)

Así, la primera derivada de la inversa de la función de enlace, no es otra que la función de densidad normal:

d(InvProbit(z))/dz = DensNormal(z) = 1/Sqrt(2Pi) * Exp(-z^2/2)

Verosimilitud y derivadas

Log-Likelihood

El logaritmo de la verosimilitud (log-likelihood) es:

LogL = Sum_i( Y_i*Log(P_i) + (1-Y_i)*Log(1-P_i) )

donde el subíndice i hace referencia a la i-ésima observación.

Teniendo en cuenta que la probabilidad de la i-ésima observación viene dada por:

P_i = DistNormal(B'X_i)

podemos escribir:

LogL = Sum_i( Y_i*Log(DistNormal(B'X_i)) + (1-Y_i)*Log(1-DistNormal(B'X_i)) ) =

     = Sum_i( Y_i*Log(DistNormal(B'X_i)) + (1-Y_i)*Log(DistNormal(-B'X_i)) )

Gradient

La primera derivada respecto a la matriz de parámetros (B) es el gradiente del logaritmo de la verosimilitud:

G(B) = d(LogL(B))/dB =

     = Sum_i( ( Y_i*DensNormal(B'X_i)/DistNormal(B'X_i) - (1-Y_i)*DensNormal(-B'X_i)/DistNormal(-B'X_i) ) * X_i )

     = Sum_i( ( Y_i*Q(B'X_i) - (1-Y_i)*Q(-B'X_i) ) * X_i )

donde el cociente entre las funciones de densidad y distribución se ha definido como:

Q(x) = DensNormal(x)/DistNormal(x)

Hessian

La segunda derivada respecto a la matriz de parámetros (B) es la hessiana del logaritmo de la verosimilitud:

H(B) = d^2(LogL(B))/(dB dB') =

     = - Sum_i( ( Y_i*Q(B'X_i)*(Q(B'X_i)+B'X_i) + (1-Y_i)*Q(-B'X_i)*(Q(-B'X_i)-B'X_i) ) * X_i * X'_i )

donde se usado que:

d(Q(x))/dx = (-x*DensNormal(x)*DistNormal(x)-DensNormal(x)^2)/DistNormal(x)^2 =

           = - DensNormal(x)/DistNormal(x) * (x + DensNormal(x)/DistNormal(x))

           = - Q(x) * (Q(x) + x)
Last modified 10 years ago Last modified on Aug 7, 2014, 11:32:45 AM