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 12 years ago Last modified on Aug 7, 2014, 11:32:45 AM