Métodos Econométricos para el Análisis de
Políticas Públicas
Clase 3. Modelos de probabilidad
Nerys Ramírez Mordán
Economía Aplicada y Políticas Pública - MacroPol
28 July de 2022
Clase 3 MacroPol 28 July de 2022 1 / 59
Contenido
1 Modelos de respuesta binaria
2 Modelos lineales índice
3 Interpretación de coeficientes
4 Bondad de ajuste
5 Aplicaciones
6 Referencias
Clase 3 MacroPol 28 July de 2022 2 / 59
Modelos de respuesta binaria
Section 1
Modelos de respuesta binaria
Clase 3 MacroPol 28 July de 2022 3 / 59
Modelos de respuesta binaria
Introducción
Los modelos de probabilidad considerar intentan explicar (dependiente) toma
valores discretos, donde el MCO puede resultar no adecuado.
La variable dependiente asume valores discretos.
Binaria (trabajar o no; comprar o no; dejar de pagar un crédito o no, . . . ).
Nominales: discreta sin orden (elegir un medio de transporte).
Ordinales: discretas ordenadas (calificación de riesgo).
Clase 3 MacroPol 28 July de 2022 4 / 59
Modelos de respuesta binaria
Modelo lineal de probabilidad
En estos modelos (el caso más sencillo), la variable dependiente (Y ) puede
tomar dos valores, “siendo usualmente 1 la categoría de interés”:
(
1 Pr(y = 1) = p
Yi =
0 Pr(y = 0) = (1 − p)
Donde Yi ∼ Bernnulli, con esperanza:
E(Y ) = Pr(Y = 1) = p
Cuando se tiene una predictora X , la esperanza condicional de Yi también
sigue esta distribución. Es decir, dadas las características del individuo, cual
es la probabilidad de que Yi =1:
E(Y |X = x ) = Pr(Y = 1|X = x ) = p
Clase 3 MacroPol 28 July de 2022 5 / 59
Modelos de respuesta binaria
Modelo lineal de probabilidad
El modelo lineal, como primera aproximación, supone una función lineal de la
esperanza condicional de la variable binaria:
E(Y |X = x ) = Pr(Y = 1|X = x ) = β0 + β1 X
Es decir, estima una regresión múltiple en que la variable dependiente es
binaria:
Yi = β0 + β1 X1,i + ... + βk Xk,i + ui , i = 1, 2, 3, ..., n
Clase 3 MacroPol 28 July de 2022 6 / 59
Modelos de respuesta binaria
Modelo lineal de probabilidad
Se verifica:
E[Yi |X = x ] = Pr[Y = 1|X = x ] ∗ 1 + Pr[Y = 0|X = x ] ∗ 0
Siendo E[Yi |X = x ] = Pr[Y = 1|X = x ], se estima a partir de un modelo de
regresión lineal:
E[Yi |X = x ] = E[β0 + β1 X1,i + ... + βk Xk,i + ui |X = x ]
E[Yi |X = x ] = Pr[Y = 1|X = x ] = β0 + β1 X1,i + ... + βk Xk,i
Clase 3 MacroPol 28 July de 2022 7 / 59
Modelos de respuesta binaria
Modelo lineal de probabilidad
E[Yi |X = x ] = β0 + β1 X1,i + ... + βk Xk,i
Donde aplican los conocimientos de econometría vistos hasta el momento.
Los β ′ s recogen el efecto parcial de una variación de la variable explicativa
correspondiente sobre la probabilidad de ocurrencia del evento estudiado, una
vez controlado el resto de factores incluidos en el modelo.
Clase 3 MacroPol 28 July de 2022 8 / 59
Modelos de respuesta binaria
Modelo lineal de probabilidad. Dificultades
Heterocedasticidad. Dado que
Var (Y ) = p(x )(1 − p(x )) = (β0 + β1 X )(1 − β0 − β1 X ).
Valores de p(x ) no acotados [0,1]. Por lo que, la probabilidad esperada de Y
puede no tener sentido.
El modelo asume una relación lineal. Sin embargo, cuando y este cerca de 1,
se espera una menor variación en p(x ) proveniente de un cambio en x .
El carácter dicótomo de y, impide el error se comporte como una normal.
Clase 3 MacroPol 28 July de 2022 9 / 59
Modelos lineales índice
Section 2
Modelos lineales índice
Clase 3 MacroPol 28 July de 2022 10 / 59
Modelos lineales índice
Modelos lineales índice
Una alternativa al modelo anterior es utilizar los denominados modelos
lineales índices que utilizan la función de distribución acumulada, para
garantizar probabilidades condicionales acotadas entre 0 y 1.
(Y |X = x ) = Pr(Y = 1|X = x ) = F (β0 + β1 X ) + e(x )
Por tanto, como E [e(x )] = 0, el modelo se expresa en términos de esperanzas
condicionales, como:
Pr(x ) = Y = F(β0 + β1 X )
η(x) = g (E[Y | X = x])
Clase 3 MacroPol 28 July de 2022 11 / 59
Modelos lineales índice
Modelos lineales índice
Ahora se busca una función F (x ), cuya inversa transforme las probabilidades
condicionales p(x ), para luego modelar esta transformación.
F −1 (Pr(x )) = β0 + β1 X
Primero se utiliza una función lineal índice que ofrezca un único valor aunque
este fuera del intervalo [0,1], posteriormente se utiliza la función de
distribución.
Se busca una función F, cuya inversa transforme las probabilidades
condicionales p(x ) y posteriormente, se modela linealmente esta
transformación.
Clase 3 MacroPol 28 July de 2022 12 / 59
Modelos lineales índice
Variables aleatorias
Sea X una variable aleatoria definida en (Ω, σ, p), la función en el rango
[0,1], definida por:
F (xi ) = Px ((− inf, xi ]) = Pr(X ≤ xi ) xi ∈ X
Llamada Función de distribución de X , cumple las siguientes propiedades:
F(.) es no decreciente.
limxi →−∞ F (X ) = 0 y Limxi →+∞ F (X ) = 1
F(.) es continua por la derecha.
Clase 3 MacroPol 28 July de 2022 13 / 59
Modelos lineales índice
Variables aleatorias en R
par(mfrow=c(1,2))
my.normal <- function(x) dnorm(x, mean = 5, sd = 2)
curve(my.normal, xlim = c(0, 10), xlab = " ", ylab = "Probability")
my.normal2 <- function(x) pnorm(x, mean = 5, sd = 2)
curve(my.normal2, xlim = c(0, 10), xlab = " ", ylab = "Cumulative probability")
0.20
1.0
Cumulative probability
0.8
0.15
Probability
0.6
0.10
0.4
0.05
0.2
0.0
0 2 4 6 8 10 0 2 4 6 8 10
Clase 3 MacroPol 28 July de 2022 14 / 59
Modelos lineales índice
Modelos lineales índice
Posteriormente, se aplica una función acumulada al índice. De todas las
posibilidades de F (.), las más utilizadas suelen ser:
La función de distribución de la normal (Probit):
Z z Z z
1 − 1 x2
Φ(Z ) = ϕ(x )dx = e 2 dx
−∞ −∞ 2π
La función de distribución logística (Logit), que forma parte de los modelos
paramétricos lineales generalizados, introducidos por McCullagh y Nelder
(1989):
ez
Λ(Z ) =
1 − ez
Clase 3 MacroPol 28 July de 2022 15 / 59
Modelos lineales índice
Estimación de máxima verosimilitud
Debido a la naturaleza no lineal de E (y |x ), MCO no es aplicable. Por ende,
los parámetros del modelo se estiman a partir de la función de verosimilitud
L(β; y1 , ..., yn ), donde y ∼ B(p, p(1 − p)) es decir,
F (y ) = Pr (Y = y ) = p y (1 − p)(1−y ) .
Siempre que la serie sea iid, la probabilidad conjunta es:
N
Y
Pr(Yi = yi |xi ; βi , ..., βk )
i=1
N
Y
[ϕ(βX )]yi [1 − ϕ(βX )]1−yi
i=1
Suele ser conveniente utilizar la función en logaritmo:
i=1
X
log L(β; y1 , ..., yn ) = yi log(ϕ(βX )) + (1 − yi )log(1 − ϕ(βX ))
N
Clase 3 MacroPol 28 July de 2022 16 / 59
Modelos lineales índice
Estimación de máxima verosimilitud
Sea Y una variable binaria, la E [Y = 1|X = x ] = Pr[x ], se modeliza
mediante la regresión logística simple:
e α+βx
Logit(p(x )) = = exp(β0 + β1 x )
1 − e α+βx
Equivalente a la transformación Logit:
Pr(x )
Logit(Pr(x )) = ln = β0 + β1 x
1 − Pr(x )
Clase 3 MacroPol 28 July de 2022 17 / 59
Modelos lineales índice
Comparación de modelos
Fuente: Dalpiaz, 2022.
Ordinary vs Logistic Regression
1.0
Ordinary
Estimated Probability
Logistic
0.8
Data
0.6
0.4
0.2
0.0
−2 −1 0 1
Clase 3 MacroPol 28 July de 2022 18 / 59
Modelos lineales índice
Ejemplo: Modelos de probabilidad. Coca-Cola
Probabilidad de seleccionar Coca Cola en función de su precio relativo
(pratio) y de los productos mostrados durante las ventas (dispcoke, dispcoke).
Dependent variable: coke
OLS logistic probit
∗∗∗ ∗∗∗
pratio −0.40 −2.00 −1.15∗∗∗
(0.06) (0.31) (0.18)
dispcoke 0.08∗∗ 0.35∗∗ 0.22∗∗
(0.03) (0.16) (0.10)
disppepsi −0.17∗∗∗ −0.73∗∗∗ −0.45∗∗∗
(0.04) (0.17) (0.10)
Constant 0.89∗∗∗ 1.92∗∗∗ 1.11∗∗∗
(0.07) (0.33) (0.19)
Observations 1,140 1,140 1,140
Clase 3 MacroPol 28 July de 2022 19 / 59
Modelos lineales índice
Modelos de probabilidad en R
library(tidyverse)
coke<-read.csv("coke1.csv")
attach(coke)
head(coke)
## coke prpepsi prcoke disppepsi dispcoke pratio
## 1 1 1.79 1.79 0 0 1.000000
## 2 1 1.79 0.89 0 1 0.497207
## 3 1 1.41 0.89 0 0 0.631206
## 4 1 1.79 1.33 0 0 0.743017
## 5 1 1.79 1.79 0 0 1.000000
## 6 1 0.99 1.79 1 0 1.808081
Clase 3 MacroPol 28 July de 2022 20 / 59
Modelos lineales índice
Modelos de probabilidad en R
glm: Fitting Generalized Linear Models.
Y | X = x ∼ N(β0 + β1 x1 + . . . + βp−1 xp−1 , σ 2 )
coke.MLP <- lm(coke~pratio+dispcoke+disppepsi, data=coke) #mco
coke.logit <- glm(coke~pratio+dispcoke+disppepsi, #Logit
data=coke, family=binomial(link="logit"))
coke.Probit <- glm(coke~pratio+dispcoke+disppepsi, #Probit
data=coke, family=binomial(link="probit"))
summary(coke.logit)$coef
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.9229722 0.3258169 5.902003 3.591150e-09
## pratio -1.9957418 0.3145688 -6.344372 2.233341e-10
## dispcoke 0.3515994 0.1585345 2.217809 2.656784e-02
## disppepsi -0.7309858 0.1678302 -4.355509 1.327578e-05
Clase 3 MacroPol 28 July de 2022 21 / 59
Modelos lineales índice
Modelos de probabilidad en R
library(stargazer)
stargazer(coke.MLP, coke.logit, coke.Probit, type="text",
title="Tabla 1. Modelos de probabilidad", digits=2,
single.row=FALSE, intercept.bottom=TRUE, df = FALSE)
Table 1: Modelos de probabilidad
Dependent variable: coke
OLS logistic probit
pratio −0.40∗∗∗ −2.00∗∗∗ −1.15∗∗∗
(0.06) (0.31) (0.18)
dispcoke 0.08∗∗ 0.35∗∗ 0.22∗∗
(0.03) (0.16) (0.10)
disppepsi −0.17∗∗∗ −0.73∗∗∗ −0.45∗∗∗
(0.04) (0.17) (0.10)
Constant 0.89∗∗∗ 1.92∗∗∗ 1.11∗∗∗
(0.07) (0.33) (0.19)
Observations 1,140 1,140 1,140
Clase 3 MacroPol 28 July de 2022 22 / 59
Modelos lineales índice
Comparar coeficientes entre modelos
Las magnitudes de las estimaciones de los coeficientes a través de los
modelos no son comparables directamente (Wooldrige, 2009, p.584). Una
regla práctica seguida para comparar el logit con el probit, es multiplicar los
coeficientes probit por 1.6.
Para comparar las estimaciones logit y probit con las del MPL, Estos factores
escalares son de cerca de .301 (probit) y .179 (logit).
Clase 3 MacroPol 28 July de 2022 23 / 59
Modelos lineales índice
Test de significancia
H 0 : βj = 0 vs H1 : βj ̸= 0
β̂j − βj
z=
SE[β̂j ]
Intervalo de confianza
β̂j ± zα/2 · SE[β̂j ]
confint(coke.logit, level = 0.95)
## 2.5 % 97.5 %
## (Intercept) 1.29354162 2.5719347
## pratio -2.62458498 -1.3903293
## dispcoke 0.04170077 0.6636823
## disppepsi -1.06190761 -0.4034356
Clase 3 MacroPol 28 July de 2022 24 / 59
Interpretación de coeficientes
Section 3
Interpretación de coeficientes
Clase 3 MacroPol 28 July de 2022 25 / 59
Interpretación de coeficientes
Interpretación de coeficientes
Pr(Y = 1|x )
Logit i = ln = β′X + µ
1 − Pr(Y = 1|x )
Como βi se interpreta como un efecto aditivo derivado de un cambio unitario
en la variable Xi sobre el logaritmo natural de la ratio de probabilidades
(Scotti, 2012), no es directamente interpretable.
Por tanto, se suele recurrir a dos estrategias:
Razón de probabilidades.
Efectos marginales.
Clase 3 MacroPol 28 July de 2022 26 / 59
Interpretación de coeficientes
Ratios de probabilidad
Los ratios o cocientes de probabilidades, resultan del cociente entre la
probabilidad de que Pr[Y = 1], frente a la que no suceda Pr[Y = 1 − 1].
exp (zh)
= e β1 (xjh −xjl ) [0, ∞]
exp (zl)
El odd ratio indica el número de veces que es probable que ocurra el
fenómeno, frente a que no ocurra. El odd ratio asociado a un cambio de xjh a
xjl , en la variable xj , manteniendo el resto de variables constantes.
Clase 3 MacroPol 28 July de 2022 27 / 59
Interpretación de coeficientes
Ratios de probabilidad
El signo de β1 indica el sentido de cambio en la probabilidad de que Y = 1,
antes los cambios de x 1.
β1 = 0 indica independencia, por lo que, la estimación del modelo coincide
con la proporción de valores Y = 1. En términos de ventajas:
e α+βx
= exp(β0 + β1 x ) = e β0 ė β1 x
1 − e α+βx
La ventaja de de Y = 1 aumenta en e β1 por cada unidad de aumento de X .
p(x +1)
1−p(x +1) exp (β0 + β1 (x + 1)) e β0 e β1 x e β1
θ (x + 1, x ) = = = = e β1
p(x ) exp (β0 + β1 (x )) e β0 e β1 x
1−p(x )
Clase 3 MacroPol 28 July de 2022 28 / 59
Interpretación de coeficientes
Ratios de probabilidad en R
Estos se utilizan para facilitar la compresión de los coeficientes estimados. Su
interpretación se realiza en torno a la unidad.
Los coeficientes con signo positivo adquieren mayores superiores a 1,
contrario a los negativos que muestran valores inferiores a 1.
cbind(coeff=coef(coke.logit), odd=exp(coef(coke.logit)))
## coeff odd
## (Intercept) 1.9229722 6.8412616
## pratio -1.9957418 0.1359128
## dispcoke 0.3515994 1.4213390
## disppepsi -0.7309858 0.4814341
El coeficiente logit de -1.9957, tiene un odds de 0.1359 (odds ratio) indica qeu en la medida
en que pratio aumenta en una unidad, manteniendo todas las otras variables constantes, es
86.4% veces menos probable (0.1359 − 1) que se seleccione la coca-cola (y = 1).
Clase 3 MacroPol 28 July de 2022 29 / 59
Interpretación de coeficientes
Ratios de probabilidad en R
logit.odds = exp(coef(coke.logit))
# stargazer(coke.logit, coef=list(logit.odds), type = "text")
Table 2: Ratios de probabilidad
Dependent variable:
coke
pratio 0.136
(0.315)
dispcoke 1.421∗∗∗
(0.159)
disppepsi 0.481∗∗∗
(0.168)
Constant 6.841∗∗∗
(0.326)
Observations 1,140
Clase 3 Log Likelihood MacroPol −709.446 28 July de 2022 30 / 59
Interpretación de coeficientes
Ratios de probabilidad
library(mfx)
library(betareg)
coke.logitor<-logitor(coke~pratio+dispcoke+disppepsi, data=coke)
coke.logitor
## Call:
## logitor(formula = coke ~ pratio + dispcoke + disppepsi, data = coke)
##
## Odds Ratio:
## OddsRatio Std. Err. z P>|z|
## pratio 0.135913 0.042754 -6.3444 2.233e-10 ***
## dispcoke 1.421339 0.225331 2.2178 0.02657 *
## disppepsi 0.481434 0.080799 -4.3555 1.328e-05 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
Clase 3 MacroPol 28 July de 2022 31 / 59
Interpretación de coeficientes
Ratios de probabilidad
Intervalo de confianza de los odds ratios.
exp(confint(coke.logit))
## 2.5 % 97.5 %
## (Intercept) 3.64567533 13.0911274
## pratio 0.07246983 0.2489933
## dispcoke 1.04258246 1.9419300
## disppepsi 0.34579554 0.6680210
exp(cbind(OR = coef(coke.logit), confint(coke.logit)))
## OR 2.5 % 97.5 %
## (Intercept) 6.8412616 3.64567533 13.0911274
## pratio 0.1359128 0.07246983 0.2489933
## dispcoke 1.4213390 1.04258246 1.9419300
## disppepsi 0.4814341 0.34579554 0.6680210
Clase 3 MacroPol 28 July de 2022 32 / 59
Interpretación de coeficientes
Efectos marginales
Los efectos marginales muestran el cambio en probabilidad esperado tras un
cambio en una unidad de la variable independiente. En el caso de variables
binarias se expresa a partir del cambio 0 a 1 (Williams, 2018):
Xk = Pr(Y = 1|X , Xk = 1)˘ Pr(y = 1|X , Xk = 0)
En el caso de variables continuas, se presenta como un cambio instantáneo:
δE (Y |X = x ) Pr(Y = 1|X , Xk + ∆)˘ Pr(y = 1|X , Xk )
= lim [ ]
δX ∆→0 ∆
Clase 3 MacroPol 28 July de 2022 33 / 59
Interpretación de coeficientes
Efectos marginales
coke.logitMfx<-logitmfx(coke~pratio+dispcoke+disppepsi, data=coke)
coke.logitMfx
## Call:
## logitmfx(formula = coke ~ pratio + dispcoke + disppepsi, data = coke)
##
## Marginal Effects:
## dF/dx Std. Err. z P>|z|
## pratio -0.490596 0.077016 -6.3700 1.890e-10 ***
## dispcoke 0.086654 0.039059 2.2186 0.02652 *
## disppepsi -0.175207 0.038719 -4.5251 6.037e-06 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## dF/dx is for discrete change for the following variables:
##
## [1] "dispcoke" "disppepsi"
Clase 3 MacroPol 28 July de 2022 34 / 59
Interpretación de coeficientes
Efectos marginales
Según la definición del efecto marginal, este será diferente en función de los
valores de la variables independientes.
En el caso de variables categóricas con diferentes valores, el efecto marginal
indica el cambio en probabilidad de cada valor, respecto al indicador de
referencia, por lo que, los efectos marginales serán diferentes en función de
los valores de las variables (Williams, 2018).
Clase 3 MacroPol 28 July de 2022 35 / 59
Interpretación de coeficientes
Efectos marginales
Estiman probabilidades en dos momentos distintos. Dado:
Pr(xi )
log = β0 + β1 xi1 + · · · + βp−1 xi(p−1)
1 − Pr(xi ))
e β0 +β1 xi1 +···+βp−1 xi(p−1)
Pr(xi ) = Pr[Yi = 1 | Xi = xi ] =
1 + e β0 +β1 xi1 +···+βp−1 xi(p−1)
mfx = Pr[Yi = 1 | Xi = 1] − Pr[Yi = 1 | Xi = 0]
Clase 3 MacroPol 28 July de 2022 36 / 59
Interpretación de coeficientes
Efectos marginales
Estimando el efecto marginal manualmente: dispcoke.
El efeecto marginal estima el cambio en probabilidad estimado, dado un
cambio marginal en la variable de interés (δx = 1 − 0).
bx1<-(1.9230-1.9957*mean(pratio)-0.7310*mean(disppepsi) +0.3516*1)
(px1<- exp(bx1)/(1+exp(bx1)))
## [1] 0.4896041
bx0<-(1.9230-1.9957*mean(pratio)-0.7310*mean(disppepsi) +0.3516*0)
(px0<- exp(bx0)/(1+exp(bx0)))
## [1] 0.4029497
px1-px0
## [1] 0.08665439
Clase 3 MacroPol 28 July de 2022 37 / 59
Interpretación de coeficientes
Efectos marginales
En el caso de variables continuas, usamos la variación alrededor de la media
(δx = (x̄ + 1) − x̄ ).
bx1<-1.9230-1.9957*(mean(pratio)+1)-0.7310*mean(disppepsi) +0.3516*mean(dispcoke)
(px1<- exp(bx1)/(1+exp(bx1)))
## [1] 0.09486307
bx0<-1.9230-1.9957*mean(pratio)-0.7310*mean(disppepsi) +0.3516*mean(dispcoke)
(px0<- exp(bx0)/(1+exp(bx0)))
## [1] 0.4353756
px1-px0
## [1] -0.3405125
Clase 3 MacroPol 28 July de 2022 38 / 59
Interpretación de coeficientes
Efectos marginales
EN muchos casos puede más realista comparar efectos marginales usando
valores puntuales de variables que es poco probable que asuman la media
como valor.
bx1<-1.9230-1.9957*(mean(pratio)+1)-0.7310*1 +0.3516*1
(px1<- exp(bx1)/(1+exp(bx1)))
## [1] 0.0757055
bx0<-1.9230-1.9957*mean(pratio)-0.7310*1 +0.3516*1
(px0<- exp(bx0)/(1+exp(bx0)))
## [1] 0.3760191
px1-px0
## [1] -0.3003136
Clase 3 MacroPol 28 July de 2022 39 / 59
Interpretación de coeficientes
Efectos marginales
Entonces, tenemos coeficientes, odds y mfx.
cbind(coeff=coef(coke.logit),
odd=exp(coef(coke.logit)),
mfx=(coke.logitMfx$mfxest[,"dF/dx"]))
## coeff odd mfx
## (Intercept) 1.9229722 6.8412616 -0.49059642
## pratio -1.9957418 0.1359128 0.08665362
## dispcoke 0.3515994 1.4213390 -0.17520661
## disppepsi -0.7309858 0.4814341 -0.49059642
Clase 3 MacroPol 28 July de 2022 40 / 59
Interpretación de coeficientes
Efectos marginales robustos
coke.logitMfx<-logitmfx(coke~pratio+dispcoke+disppepsi, data=coke, robust = T)
coke.logitMfx
## Call:
## logitmfx(formula = coke ~ pratio + dispcoke + disppepsi, data = coke,
## robust = T)
##
## Marginal Effects:
## dF/dx Std. Err. z P>|z|
## pratio -0.490596 0.081925 -5.9883 2.120e-09 ***
## dispcoke 0.086654 0.038319 2.2614 0.02373 *
## disppepsi -0.175207 0.038083 -4.6006 4.212e-06 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## dF/dx is for discrete change for the following variables:
##
## [1] "dispcoke" "disppepsi"
Clase 3 MacroPol 28 July de 2022 41 / 59
Bondad de ajuste
Section 4
Bondad de ajuste
Clase 3 MacroPol 28 July de 2022 42 / 59
Bondad de ajuste
Tabla de clasificación
En este define un predictor binario de yi como uno si la probabilidad predicha
es de al menos .5, y cero en caso contrario (Wooldrige, 2009, p.581). Esta
proporción de aciertos se determina como A+D n .
Ŷi = 0 Ŷi = 0
Yi = 0 p(x ) < c A B
Yi = 1 p(x ) > c C D
Clase 3 MacroPol 28 July de 2022 43 / 59
Bondad de ajuste
Tabla de clasificación
Una alternativa usando la función predict, type = “response”:
ˆ
e f (x)
P̂r(x) =
1 + e fˆ(x)
(
1 p(x) > 0.5
P̂r(x) =
0 p(x) ≤ 0.5
prob_model <- predict(coke.logit, coke, type = "response")
prob_hat <- ifelse(prob_model > 0.5, 1, 0)
mean(prob_hat == coke$coke)
## [1] 0.6614035
Clase 3 MacroPol 28 July de 2022 44 / 59
Bondad de ajuste
Tabla de clasificación
Una primera medida de bondad de ajuste es verificar que porcentaje de los
datos son predichos correctamente. De forma alternativa, podemos acceder
al porcentaje predicho correctamente.
table1<- data.frame(table(true=coke$coke,
predicted=round(fitted(coke.logit))))
table1
## true predicted Freq
## 1 0 0 507
## 2 1 0 263
## 3 0 1 123
## 4 1 1 247
#porcentaje estimado correctamente
(table1[1,3]+table1[4,3])/sum(table1[,3])
## [1] 0.6614035
Clase 3 MacroPol 28 July de 2022 45 / 59
Bondad de ajuste
Tabla de clasificación
Aunque el porcentaje predicho correctamente es útil como una medida de la
bondad de ajuste, puede ser confuso.
Además, suponer Y = 1 cuando y ∗ > 0.5 puede llevarnos a predecir más
casos de los deseados, especialmente en casos improbables, siendo una
alternativa utilizar como umbral, la fracción de éxito de Pr[Y = 1] observada
en la muestra.
Clase 3 MacroPol 28 July de 2022 46 / 59
Bondad de ajuste
Tabla de clasificación
Podemos clasificar el criterio de clasificación en función de la probabilidad
esperada:
(
1 p(x) > c
P̂r(x) =
0 p(x) ≤ c
prediccion <- ifelse(fitted.values(coke.logit) >= 0.7, 1, 0)
table(prediccion)
## prediccion
## 0 1
## 1034 106
table1<- data.frame(table(true=coke$coke,
predicted=prediccion))
table1
## true predicted Freq
## 1 0 0 608
## 2 1 0 426
## 3 0 Clase 3 1 22 MacroPol 28 July de 2022 47 / 59
Bondad de ajuste
Bondad de ajuste: pseudo r-cuadrado
El p-seudo R 2 de McFadden (1974), utiliza la función de verosimilitud del
modelo no restringido y la del modelo restringido (solo con constante), que
es la probabilidad media incondicional.
En caso de las variables no tener poder explicativo, ambas variables son
iguales y la medida de ajuste es igual a cero.
ln β̂
R̂ 2 = 1 −
ln Ȳ
Clase 3 MacroPol 28 July de 2022 48 / 59
Bondad de ajuste
Pseudos R-Cuadrados
Las estimaciones de los pseudos r2 de los modelos binarios, se pueden
obtener a partir de la función pR2, del paquete pscl.
coke.logitConst <- glm(coke~1, data=coke, family=binomial(link="logit"))
(RsqrMcFadden <- 1 - coke.logit$deviance/coke.logitConst$null.deviance)
## [1] 0.09493292
#verificar dato estimado
library(pscl, MASS) #PSCL = Bondad de ajuste: McFadden
pR2(coke.logit)
## fitting null model for pseudo-r2
## llh llhNull G2 McFadden r2ML
## -709.44613816 -783.86028085 148.82828539 0.09493292 0.12238838
## r2CU
## 0.16379397
Clase 3 MacroPol 28 July de 2022 49 / 59
Aplicaciones
Section 5
Aplicaciones
Clase 3 MacroPol 28 July de 2022 50 / 59
Aplicaciones
Perfiles de probabilidad en la media
Los modelos permiten medir la probabilidad de que ocurra el acontecimiento
considerado, a partir del modelo estimado (Y = Pr (Y = 1|x )), lo que
permite crear perfiles de probabilidades.
Pr (Y = 1|x )
Logit i = ln = β′X
1 − Pr (Y = 1|x )
Y ′
= eβ X
1−Y
′
Y = (1 − Y )e β X
′ ′
Y = eβ X
− Ye β X
′ ′
Y + Ye β X
= eβ X
′ ′
(1 + e β X )Y = e β X
′
eβ X
Pr (Y = 1|x ) =
1 + e β′ X
Clase 3 MacroPol 28 July de 2022 51 / 59
Aplicaciones
Perfiles de probabilidad en la media
Estimada la probabilidad para cada individuo, es posible establecer perfiles de
probabilidad a nivel de grupos de la población estudiada.
CASO 0: Estimar la probabilidad a cada individuo y generar tablas de
volatilidad.
CASO 1: Obtención de probabilidades para todas las observaciones en el
promedio de las dependientes (Marginal Effects at the Means (MEMS)
CASO 2: Obtención de probabilidades para todas las observaciones en valores
específicos de las dependientes.
Clase 3 MacroPol 28 July de 2022 52 / 59
Aplicaciones
Perfiles de probabilidad en la media
yhat<-coke.logit$fitted.values
prob<-exp(yhat)/(1+exp(yhat))
library(tidyverse)
coke %>%
dplyr::mutate(proba = prob) %>%
group_by(disppepsi) %>%
summarise(mean(proba))
## # A tibble: 2 x 2
## disppepsi ‘mean(proba)‘
## <int> <dbl>
## 1 0 0.630
## 2 1 0.573
Clase 3 MacroPol 28 July de 2022 53 / 59
Aplicaciones
Perfiles de probabilidad en la media
Adicionalmente, se pueden estimar probabilidades para valores especifícos de
nuestra variable independiente.
allmeans <- data.frame(pratio=mean(pratio),
dispcoke=mean(dispcoke),
disppepsi=mean(disppepsi))
allmeans$predprob <- predict(coke.logit, newdata=allmeans, type="response")
allmeans
## pratio dispcoke disppepsi predprob
## 1 1.027249 0.3789474 0.3640351 0.4353594
Clase 3 MacroPol 28 July de 2022 54 / 59
Aplicaciones
Perfiles de probabilidad en la media
Aunque suele ser más realista suponer valores concretos de las variables.
allmeans <- data.frame(pratio=1,
dispcoke=1,
disppepsi=0)
allmeans$predprob <- predict(coke.logit, newdata=allmeans, type="response")
allmeans
## pratio dispcoke disppepsi predprob
## 1 1 1 0 0.5692593
Clase 3 MacroPol 28 July de 2022 55 / 59
Aplicaciones
Perfiles de probabilidad en la media
Aunque suele ser más realista suponer valores concretos de las variables.
allmeans <- data.frame(pratio=c(0.5,0.5,1,1,2,2),
dispcoke=c(1),
disppepsi=c(0,1))
allmeans$predprob <- predict(coke.logit, newdata=allmeans, type="response")
allmeans
## pratio dispcoke disppepsi predprob
## 1 0.5 1 0 0.78188763
## 2 0.5 1 1 0.63314082
## 3 1.0 1 0 0.56925930
## 4 1.0 1 1 0.38884826
## 5 2.0 1 0 0.15226934
## 6 2.0 1 1 0.07959241
Clase 3 MacroPol 28 July de 2022 56 / 59
Aplicaciones
Perfiles de probabilidad en la media
Aunque suele ser más realista suponer valores concretos de las variables.
means2 <- data.frame(pratio=seq(0,2,length.out = 10),
dispcoke=rep(1,10),
disppepsi=rep(1,10))
means2$predprob <- predict(coke.logit, newdata=means2, type="response")
means2
## pratio dispcoke disppepsi predprob
## 1 0.0000000 1 1 0.82398537
## 2 0.2222222 1 1 0.75027650
## 3 0.4444444 1 1 0.65849381
## 4 0.6666667 1 1 0.55307212
## 5 0.8888889 1 1 0.44265173
## 6 1.1111111 1 1 0.33762296
## 7 1.3333333 1 1 0.24649325
## 8 1.5555556 1 1 0.17351732
## 9 1.7777778 1 1 0.11874175
## 10 2.0000000 1 1 0.07959241
Clase 3 MacroPol 28 July de 2022 57 / 59
Referencias
Section 6
Referencias
Clase 3 MacroPol 28 July de 2022 58 / 59
Referencias
Referencias
Albarran, P. (2011). Modelos de Elección Discreta.
Cañadas, J. (2011). Heterocedasticidad en modelos de regresión ordinal con R. Instituto de
Estudios Sociales Avanzados IESA-CSIC.
Cameron, C.; Trivedi, P. (2005). Microeconometrics: Methods and applications.
Dalpiaz, D. (2022). Applied Statistics with R.
Escabias, M. (2013). Regresión logística. Tratamiento computacional con R. Universidad
de Granada.
Philip L. (2013). texreg: Conversion of Statistical Model Output in R to LaTeX and
HTML Tables. Journal of Statistical Software, 55(8), 1-24.
Torres, O. (2014). Logit, Probit and Multinomial Logit models in R. Princenton University.
Rodríguez, C. y Cáceres, J. (2007). Modelos de elección discreta y especificaciones
ordenadas: una reflexión metodológica. Universidad de La Laguna.
Sharyn, O. (s.f.d.). Logit/Probit. Econometrics II.
Torres, O. (2014). Logit, Probit and Multinomial Logit models in R. Princenton University.
Williams, R. (2018). Marginal Effects for Continuous Variables. University of Notre Dame.
Wooldridge, J. (2009). Introducción a la Econometría: un enfoque moderno. 4ta.
ed. Michigan State University. Cengage Learning
Clase 3 MacroPol 28 July de 2022 59 / 59