class: front <style>.shareagain-bar { --shareagain-foreground: rgb(255, 255, 255); --shareagain-background: rgba(0, 0, 0, 0.5); --shareagain-twitter: none; --shareagain-facebook: none; --shareagain-linkedin: none; --shareagain-pinterest: none; --shareagain-pocket: none; --shareagain-reddit: none; }</style> <!--- Para correr en ATOM - open terminal, abrir R (simplemente, R y enter) - rmarkdown::render('static/docpres/07_interacciones/7interacciones.Rmd', 'xaringan::moon_reader') About macros.js: permite escalar las imágenes como [scale 50%](path to image), hay si que grabar ese archivo js en el directorio. ---> .pull-left[ # Estadística Multivariada ## Juan Carlos Castillo ## Sociología FACSO - UChile ## 1er Sem 2022 ## [.purple[multivariada.netlify.com]](https://multivariada.netlify.com) ] .pull-right[ .right[ <br> ## .purple[Sesión 9: Regresión Logística (2)]  ] ] --- layout: true class: animated, fadeIn --- class: inverse, bottom, right, animated, slideInRight # .red[Contenidos] ## 1. Repaso de sesión anterior ## 2. Estimación regresión logística ## 3. Ajuste regresión logística --- class: roja bottom right slideInRight # 1. Repaso sesión anterior --- ## Variables - discretas (Rango finito de valores): - Dicotómicas - Politómicas - continuas: - Rango (teóricamente) infinito de valores. --- ## Tipos de análisis estadístico bivariado - Variable dependiente (y) : lo que quiero explicar - Variable independiente (x): lo que me permite explicar la dependiente .small[ | Variable independiente x | Variable dependiente Categórica | Variable dependiente Continua | |-------------------------- |----------------------------------- |-------------------------------------- | | Categórica | Análisis de tabla de Contigencia, Chi2 | Análisis de Varianza ANOVA, Prueba T | | Continua | Regresión Logística | Correlación / Regresión Lineal | ] ??? --- class: inverse, center, middle .pull-left[  ] ## ¿Se puede anticipar el final? ??? Si vas al cine a ver esta película, y si antes conoces los datos sobre el Titanic, puedes anticipar el final? --- # Titanic data .small[ <div class="container st-container"> <table class="table table-striped table-bordered st-table st-table-striped st-table-bordered st-multiline "> <thead> <tr> <th align="center" class="st-protect-top-border"><strong>No</strong></th> <th align="center" class="st-protect-top-border"><strong>Variable</strong></th> <th align="center" class="st-protect-top-border"><strong>Stats / Values</strong></th> <th align="center" class="st-protect-top-border"><strong>Freqs (% of Valid)</strong></th> <th align="center" class="st-protect-top-border"><strong>Graph</strong></th> <th align="center" class="st-protect-top-border"><strong>Valid</strong></th> <th align="center" class="st-protect-top-border"><strong>Missing</strong></th> </tr> </thead> <tbody> <tr> <td align="center">1</td> <td align="left">survived [factor]</td> <td align="left" style="padding:8;vertical-align:middle"><table style="border-collapse:collapse;border:none;margin:0"><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">1. No sobrevive</td></tr><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">2. Sobrevive</td></tr></table></td> <td align="left" style="padding:0;vertical-align:middle"><table style="border-collapse:collapse;border:none;margin:0"><tr style="background-color:transparent"><td style="padding:0 5px 0 7px;margin:0;border:0" align="right">619</td><td style="padding:0 2px 0 0;border:0;" align="left">(</td><td style="padding:0;border:0" align="right">59.2%</td><td style="padding:0 4px 0 2px;border:0" align="left">)</td></tr><tr style="background-color:transparent"><td style="padding:0 5px 0 7px;margin:0;border:0" align="right">427</td><td style="padding:0 2px 0 0;border:0;" align="left">(</td><td style="padding:0;border:0" align="right">40.8%</td><td style="padding:0 4px 0 2px;border:0" align="left">)</td></tr></table></td> <td align="left" style="vertical-align:middle;padding:0;background-color:transparent;"><img style="border:none;background-color:transparent;padding:0;max-width:max-content;" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAGUAAAA3BAMAAADnFJkAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEX////9/v2mpqbw8PD///+xh0SBAAAAAnRSTlMAAHaTzTgAAAABYktHRACIBR1IAAAAB3RJTUUH5gcHEyEKURRXQgAAAD9JREFUSMdjYBh+QIkEoADVo2xMPBjVM6pnVM/w1kNOGSJIAhCgsx4CXsCqB3+4GY3qGdUzqmcE6SGnDBlOAADPUVxOmytYlQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wNy0wN1QxOTozMzoxMCswMDowMDHu6k4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDctMDdUMTk6MzM6MTArMDA6MDBAs1LyAAAAAElFTkSuQmCC"></td> <td align="center">1046 (100.0%)</td> <td align="center">0 (0.0%)</td> </tr> <tr> <td align="center">2</td> <td align="left">sex [factor]</td> <td align="left" style="padding:8;vertical-align:middle"><table style="border-collapse:collapse;border:none;margin:0"><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">1. Hombre</td></tr><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">2. Mujer</td></tr></table></td> <td align="left" style="padding:0;vertical-align:middle"><table style="border-collapse:collapse;border:none;margin:0"><tr style="background-color:transparent"><td style="padding:0 5px 0 7px;margin:0;border:0" align="right">658</td><td style="padding:0 2px 0 0;border:0;" align="left">(</td><td style="padding:0;border:0" align="right">62.9%</td><td style="padding:0 4px 0 2px;border:0" align="left">)</td></tr><tr style="background-color:transparent"><td style="padding:0 5px 0 7px;margin:0;border:0" align="right">388</td><td style="padding:0 2px 0 0;border:0;" align="left">(</td><td style="padding:0;border:0" align="right">37.1%</td><td style="padding:0 4px 0 2px;border:0" align="left">)</td></tr></table></td> <td align="left" style="vertical-align:middle;padding:0;background-color:transparent;"><img style="border:none;background-color:transparent;padding:0;max-width:max-content;" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAGsAAAA3BAMAAAD53amzAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEX////9/v2mpqbw8PD///+xh0SBAAAAAnRSTlMAAHaTzTgAAAABYktHRACIBR1IAAAAB3RJTUUH5gcHEyEKURRXQgAAAEJJREFUSMdjYBjeQIk0oADVpmxMEhjVNqptVNuoNqzayCyCBEkDAgOiDZ9H8GjDE5JGo9pGtY1qG9VGrDYyi6DhCgCNyWWr8oQgJAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wNy0wN1QxOTozMzoxMCswMDowMDHu6k4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDctMDdUMTk6MzM6MTArMDA6MDBAs1LyAAAAAElFTkSuQmCC"></td> <td align="center">1046 (100.0%)</td> <td align="center">0 (0.0%)</td> </tr> <tr> <td align="center">3</td> <td align="left">age [numeric]</td> <td align="left" style="padding:8;vertical-align:middle"><table style="border-collapse:collapse;border:none;margin:0"><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">Mean (sd) : 29.9 (14.4)</td></tr><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">min ≤ med ≤ max:</td></tr><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">0.2 ≤ 28 ≤ 80</td></tr><tr style="background-color:transparent"><td style="padding:0;margin:0;border:0" align="left">IQR (CV) : 18 (0.5)</td></tr></table></td> <td align="left" style="vertical-align:middle">98 distinct values</td> <td align="left" style="vertical-align:middle;padding:0;background-color:transparent;"><img style="border:none;background-color:transparent;padding:0;max-width:max-content;" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAJgAAABuBAMAAAApJ8cWAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEX////9/v2mpqbw8PD///+xh0SBAAAAAnRSTlMAAHaTzTgAAAABYktHRACIBR1IAAAAB3RJTUUH5gcHEyEKURRXQgAAALtJREFUaN7t1+ENgyAQhmFWoBtINyj776YQSbQtcoen0fb9/pHoIyFwh86Rnvj3PMKUwetSxeIUMDAwMB2mLUOb2FM5OzAwMLCLYakmBissGS8wsDOxvIOtsDwAA/tvTHikZJhwdmBgYDJM8Ccrx2K7I4MdjTVuMTqs0RBmbPXJvdjqKTCwX8Pq57MDq8/uMKy0DBOsVCwzbPn+Wdj3JtqJlRUJVtjnDgYDuwMW5gwWWBlkcXlx2R1HejIC7qcE36kYv9kAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDctMDdUMTk6MzM6MTArMDA6MDAx7upOAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA3LTA3VDE5OjMzOjEwKzAwOjAwQLNS8gAAAABJRU5ErkJggg=="></td> <td align="center">1046 (100.0%)</td> <td align="center">0 (0.0%)</td> </tr> </tbody> </table> <p>Generated by <a href='https://github.com/dcomtois/summarytools'>summarytools</a> 1.0.0 (<a href='https://www.r-project.org/'>R</a> version 4.1.3)<br/>2022-07-07</p> </div> ] --- # Sobrevivientes & Sexo .pull-left[ .small[ <!-- --> ] ] .pull-right[ <!-- --> ] --- ## Sobrevivencia / sexo .center[  ] --- ## Limitaciones modelo de regresión lineal para dependientes dicotómicas (= modelo de probabilidad lineal) .pull-left[ <!-- --> ] .pull-right[ <!-- --> ] --- class: roja, right ## La .yellow[regresión logística] ofrece una solución a los problemas del .white[rango] de predicciones y de .orange[ajuste] a los datos del modelo de probabilidad lineal -- ## Se logra mediante: ### (a) expresión de coeficientes como odds-ratio ### (b) _transformación_ de lo(s) coeficientes a *LOGIT* --- ## Curvando la recta ... .pull-left[ <!-- --> ] .pull-right[ <!-- --> ] --- # Odds - **odds** (chances): probabilidad de que algo ocurra dividido por la probabilidad de que no ocurra `$$Odds=\frac{p}{1-p}$$` -- .medium[ Ej. Titanic: - 427 sobrevivientes (41%), 619 muertos (59%) `$$Odds_{sobrevivir}=427/619=0.41/0.59=0.69$$` **Es decir, las chances de sobrevivir son de 0.69**] --- ## Odds ratio (OR) .pull-left[ - los odds-ratio (o razón de chances) permiten reflejar la asociación entre las chances de dos variables dicotómicas **¿Tienen las mujeres más chances de sobrevivir que los hombres?** ] -- .pull-right[ .medium[ <table style="border-collapse:collapse; border:none;"> <tr> <th style="border-top:double; text-align:center; font-style:italic; font-weight:normal; border-bottom:1px solid;" rowspan="2">survived</th> <th style="border-top:double; text-align:center; font-style:italic; font-weight:normal;" colspan="2">sex</th> <th style="border-top:double; text-align:center; font-style:italic; font-weight:normal; font-weight:bolder; font-style:italic; border-bottom:1px solid; " rowspan="2">Total</th> </tr> <tr> <td style="border-bottom:1px solid; text-align:center; padding:0.2cm;">Hombre</td> <td style="border-bottom:1px solid; text-align:center; padding:0.2cm;">Mujer</td> </tr> <tr> <td style="padding:0.2cm; text-align:left; vertical-align:middle;">No sobrevive</td> <td style="padding:0.2cm; text-align:center; "><span style="color:black;">523</span><br><span style="color:#339933;">79.5 %</span></td> <td style="padding:0.2cm; text-align:center; "><span style="color:black;">96</span><br><span style="color:#339933;">24.7 %</span></td> <td style="padding:0.2cm; text-align:center; "><span style="color:black;">619</span><br><span style="color:#339933;">59.2 %</span></td> </tr> <tr> <td style="padding:0.2cm; text-align:left; vertical-align:middle;">Sobrevive</td> <td style="padding:0.2cm; text-align:center; "><span style="color:black;">135</span><br><span style="color:#339933;">20.5 %</span></td> <td style="padding:0.2cm; text-align:center; "><span style="color:black;">292</span><br><span style="color:#339933;">75.3 %</span></td> <td style="padding:0.2cm; text-align:center; "><span style="color:black;">427</span><br><span style="color:#339933;">40.8 %</span></td> </tr> <tr> <td style="padding:0.2cm; border-bottom:double; font-weight:bolder; font-style:italic; text-align:left; vertical-align:middle;">Total</td> <td style="padding:0.2cm; text-align:center; border-bottom:double;"><span style="color:black;">658</span><br><span style="color:#339933;">100 %</span></td> <td style="padding:0.2cm; text-align:center; border-bottom:double;"><span style="color:black;">388</span><br><span style="color:#339933;">100 %</span></td> <td style="padding:0.2cm; text-align:center; border-bottom:double;"><span style="color:black;">1046</span><br><span style="color:#339933;">100 %</span></td> </tr> </table> ] ] --- # Odds Ratio **¿Cuantas más chances de sobrevivir tienen las mujeres respecto de los hombres?** - OR supervivencia mujeres / OR supervivencia hombres .medium[ `$$OR=\frac{p_{m}/(1-p_{m})}{p_{h}/(1-p_{h})}=\frac{0.753/(1-0.753)}{0.205/(1-0.205)}=\frac{3.032}{0.257}=11.78$$` ] -- ### Las chances de sobrevivir de las mujeres son **11.78** veces más que las de los hombres. --- class: roja bottom right # 2. Regresión logística: Estimación --- # Regresión logística y odds .pull-left[ <!-- --> ] .pull-right[ Una de las transformaciones que permite realizar una estimación de regresión con variables dependientes dicotómicas es el **logit**, que es logaritmo de los odds. ] --- # Logit `$$Logit=ln(Odd)=ln(\frac{p}{1-p})$$` --- .small[ .pull-left[ ## Probabilidades, odds y logit ] .pull-right[ ``` ## prob odds logit ## 0.0010 ## 0.0564 ## 0.1119 ## 0.1673 ## 0.2228 ## 0.2782 ## 0.3337 ## 0.3891 ## 0.4446 ## 0.5000 ## 0.5554 ## 0.6109 ## 0.6663 ## 0.7218 ## 0.7772 ## 0.8327 ## 0.8881 ## 0.9436 ## 0.9990 ``` ] ] --- .small[ .pull-left[ ## Probabilidades, odds y logit ```r df$odds <- df$prob/(1-df$prob) df$logit <- log(df$odds) ``` ] .pull-right[ ``` ## prob odds logit ## 0.0010 0.0010 -6.907 ## 0.0564 0.0598 -2.816 ## 0.1119 0.1260 -2.072 ## 0.1673 0.2010 -1.605 ## 0.2228 0.2866 -1.250 ## 0.2782 0.3855 -0.953 ## 0.3337 0.5008 -0.692 ## 0.3891 0.6370 -0.451 ## 0.4446 0.8004 -0.223 ## 0.5000 1.0000 0.000 ## 0.5554 1.2494 0.223 ## 0.6109 1.5700 0.451 ## 0.6663 1.9970 0.692 ## 0.7218 2.5942 0.953 ## 0.7772 3.4888 1.250 ## 0.8327 4.9761 1.605 ## 0.8881 7.9374 2.072 ## 0.9436 16.7165 2.816 ## 0.9990 999.0000 6.907 ``` ] ] --- .small[ .pull-left[ ## Probabilidades, odds y logit ```r df$odds <- df$prob/(1-df$prob) df$logit <- log(df$odds) ``` ] .pull-right[ ```r ## prob odds logit ## 0.0010 0.0010 -6.907 ## 0.0564 0.0598 -2.816 ## 0.1119 0.1260 -2.072 ## 0.1673 0.2010 -1.605 ## 0.2228 0.2866 -1.250 ## 0.2782 0.3855 -0.953 ## 0.3337 0.5008 -0.692 ## 0.3891 0.6370 -0.451 ## 0.4446 0.8004 -0.223 *## 0.5000 1.0000 0.000 ## 0.5554 1.2494 0.223 ## 0.6109 1.5700 0.451 ## 0.6663 1.9970 0.692 ## 0.7218 2.5942 0.953 ## 0.7772 3.4888 1.250 ## 0.8327 4.9761 1.605 ## 0.8881 7.9374 2.072 ## 0.9436 16.7165 2.816 ## 0.9990 999.0000 6.907 ``` ] ] --- .small[ .pull-left[ ## Probabilidades, odds y logit ```r df$odds <- df$prob/(1-df$prob) df$logit <- log(df$odds) ``` ] .pull-right[ ```r ## prob odds logit *## 0.0010 0.0010 -6.907 ## 0.0564 0.0598 -2.816 ## 0.1119 0.1260 -2.072 ## 0.1673 0.2010 -1.605 ## 0.2228 0.2866 -1.250 ## 0.2782 0.3855 -0.953 ## 0.3337 0.5008 -0.692 ## 0.3891 0.6370 -0.451 ## 0.4446 0.8004 -0.223 *## 0.5000 1.0000 0.000 ## 0.5554 1.2494 0.223 ## 0.6109 1.5700 0.451 ## 0.6663 1.9970 0.692 ## 0.7218 2.5942 0.953 ## 0.7772 3.4888 1.250 ## 0.8327 4.9761 1.605 ## 0.8881 7.9374 2.072 ## 0.9436 16.7165 2.816 *## 0.9990 999.0000 6.907 ``` ] ] --- # Estimación en R: `glm` ``` modelo <- glm(dependiente ~ indep 1 + indep2 + ..., data=datos, family="binomial") ``` - `glm` (general lineal model) es la función para variables dependientes categóricas - `family="binomial"` indica que la dependiente es dicotómica --- # Ejemplo Titanic .pull-left[ ```r modelo_titanic <- glm(survived ~ sex, data = tt, family = "binomial") ``` ] .pull-right[.small[ <table class="texreg" style="margin: 10px auto;border-collapse: collapse;border-spacing: 0px;caption-side: bottom;color: #000000;border-top: 2px solid #000000;"> <caption> </caption> <thead> <tr> <th style="padding-left: 5px;padding-right: 5px;"> </th> <th style="padding-left: 5px;padding-right: 5px;">Logit</th> <th style="padding-left: 5px;padding-right: 5px;">OR</th> </tr> </thead> <tbody> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Intercepto</td> <td style="padding-left: 5px;padding-right: 5px;">-1.354<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">0.258<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.097)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Mujer (Ref=Hombre)</td> <td style="padding-left: 5px;padding-right: 5px;">2.467<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">11.784<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.152)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">AIC</td> <td style="padding-left: 5px;padding-right: 5px;">1106.008</td> <td style="padding-left: 5px;padding-right: 5px;">1106.008</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">BIC</td> <td style="padding-left: 5px;padding-right: 5px;">1115.914</td> <td style="padding-left: 5px;padding-right: 5px;">1115.914</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Log Likelihood</td> <td style="padding-left: 5px;padding-right: 5px;">-551.004</td> <td style="padding-left: 5px;padding-right: 5px;">-551.004</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Deviance</td> <td style="padding-left: 5px;padding-right: 5px;">1102.008</td> <td style="padding-left: 5px;padding-right: 5px;">1102.008</td> </tr> <tr style="border-bottom: 2px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Num. obs.</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> </tr> </tbody> <tfoot> <tr> <td style="font-size: 0.8em;" colspan="3"><sup>***</sup>p < 0.001; <sup>**</sup>p < 0.01; <sup>*</sup>p < 0.05</td> </tr> </tfoot> </table> ] ] --- ## Interpretación de asociaciones y contraste de hipótesis ### - Coeficiente logit asociado a sexo (mujer) = +2.467 : - El log-odds de sobrevivencia aumenta para las mujeres en 2.467 en comparación con los hombres. -- ### Contraste de hipótesis - La diferencia de las probabilidades de sobrevivir entre hombres y mujeres son estadísticamente significativas, por lo que se rechaza la hipótesis nula (de ausencia de diferencias entre hombres y mujeres) con un nivel de probabilidad `\(p<0.001\)`. --- ## Interpretación de coeficientes logit - Sustantivamente no nos dice mucho, ya que el logit es una transformación de la escala original. - Por lo tanto, para poder interpretar el sentido del coeficiente se requiere volver a la métrica de odds mediante una transformación inversa o **exponenciación** --- ## De logits a odds .pull-left[ `$$logit_x=log(Odds)$$` `$$e^{logit}=Odds_X$$` `$$e^{2.467}=11.78$$` ] .pull-right[ ```r exp(2.467) ``` ``` ## [1] 11.78703 ``` ### Las chances (odds) de sobrevivir siendo mujer son **11.78** veces más que las de un hombre. ] --- ## De logits a odds `$$Odds_X=e^{\beta_0 + \beta_jX_j}$$` <br> -- - Predicción para **mujeres**= -1.354 + (2.467 * Sexo=1) = 1.113 - Predicción para **hombres**= -1.354 + (2.467 * Sexo=0) = -1.354 -- <br> `$$Odds_{mujer}=e^{1.113}=3.032$$` `$$Odds_{hombre}=e^{-1.354}=0.257$$` --- ## Transformación a probabilidades predichas `$$p_{mujeres}=\frac{e^{1.113}}{1+e^{1.113}}=\frac{3.04}{4.04}=0.752$$` `$$p_{hombres}=\frac{e^{-1.354}}{1+e^{-1.354}}=\frac{0.258}{1.258}=0.205$$` --- ## Regresión logística simple para independientes continuas .pull-left[ ```r modelo_titanic_age <- glm(survived ~ age, data = tt, family = "binomial") ``` ] .pull-right[.small[ <table class="texreg" style="margin: 10px auto;border-collapse: collapse;border-spacing: 0px;caption-side: bottom;color: #000000;border-top: 2px solid #000000;"> <caption> </caption> <thead> <tr> <th style="padding-left: 5px;padding-right: 5px;"> </th> <th style="padding-left: 5px;padding-right: 5px;">Logit</th> <th style="padding-left: 5px;padding-right: 5px;">OR</th> </tr> </thead> <tbody> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Intercepto</td> <td style="padding-left: 5px;padding-right: 5px;">-0.137</td> <td style="padding-left: 5px;padding-right: 5px;">0.872</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.145)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Edad</td> <td style="padding-left: 5px;padding-right: 5px;">-0.008</td> <td style="padding-left: 5px;padding-right: 5px;">0.992</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.004)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">AIC</td> <td style="padding-left: 5px;padding-right: 5px;">1415.383</td> <td style="padding-left: 5px;padding-right: 5px;">1415.383</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">BIC</td> <td style="padding-left: 5px;padding-right: 5px;">1425.288</td> <td style="padding-left: 5px;padding-right: 5px;">1425.288</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Log Likelihood</td> <td style="padding-left: 5px;padding-right: 5px;">-705.691</td> <td style="padding-left: 5px;padding-right: 5px;">-705.691</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Deviance</td> <td style="padding-left: 5px;padding-right: 5px;">1411.383</td> <td style="padding-left: 5px;padding-right: 5px;">1411.383</td> </tr> <tr style="border-bottom: 2px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Num. obs.</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> </tr> </tbody> <tfoot> <tr> <td style="font-size: 0.8em;" colspan="3"><sup>***</sup>p < 0.001; <sup>**</sup>p < 0.01; <sup>*</sup>p < 0.05</td> </tr> </tfoot> </table> ] ] --- ## Plot probabilidades predichas .center[ <!-- --> ] --- # Regresión logística multiple .pull-left[ ```r modelo_titanic2 <- glm(survived ~ sex + age, data = tt, family = "binomial") ``` ] .pull-right[.small[ <table class="texreg" style="margin: 10px auto;border-collapse: collapse;border-spacing: 0px;caption-side: bottom;color: #000000;border-top: 2px solid #000000;"> <caption> </caption> <thead> <tr> <th style="padding-left: 5px;padding-right: 5px;"> </th> <th style="padding-left: 5px;padding-right: 5px;">Logit</th> <th style="padding-left: 5px;padding-right: 5px;">OR</th> </tr> </thead> <tbody> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Intercepto</td> <td style="padding-left: 5px;padding-right: 5px;">-1.23<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">0.29<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.18)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Mujer (Ref=Hombre)</td> <td style="padding-left: 5px;padding-right: 5px;">2.46<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">11.71<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.15)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Edad</td> <td style="padding-left: 5px;padding-right: 5px;">-0.00</td> <td style="padding-left: 5px;padding-right: 5px;">1.00</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.01)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">AIC</td> <td style="padding-left: 5px;padding-right: 5px;">1107.34</td> <td style="padding-left: 5px;padding-right: 5px;">1107.34</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">BIC</td> <td style="padding-left: 5px;padding-right: 5px;">1122.20</td> <td style="padding-left: 5px;padding-right: 5px;">1122.20</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Log Likelihood</td> <td style="padding-left: 5px;padding-right: 5px;">-550.67</td> <td style="padding-left: 5px;padding-right: 5px;">-550.67</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Deviance</td> <td style="padding-left: 5px;padding-right: 5px;">1101.34</td> <td style="padding-left: 5px;padding-right: 5px;">1101.34</td> </tr> <tr style="border-bottom: 2px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Num. obs.</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> </tr> </tbody> <tfoot> <tr> <td style="font-size: 0.8em;" colspan="3"><sup>***</sup>p < 0.001; <sup>**</sup>p < 0.01; <sup>*</sup>p < 0.05</td> </tr> </tfoot> </table> ] ] --- class: roja bottom right # 3. Regresión logística: Ajuste --- ## Ajuste: ¿Qué tan bueno es nuestro modelo? - **DISTINTO a regresión OLS** (no hay varianza en dependiente dicotomica) -- - Para evaluar ajuste se utiliza la **log-verosimilitud** (log-likelihood), que se asocia a la idea de **residuos** del modelo -- - La log verosimilitud del modelo se obtiene del proceso de estimación por .red[máxima verosimilitud] (...tema para otro curso) --- ## Ajuste: ¿Qué tan bueno es nuestro modelo? ```r logLik(modelo_titanic) # sexo ``` ``` ## 'log Lik.' -551.0042 (df=2) ``` ```r logLik(modelo_titanic2) # sexo + edad ``` ``` ## 'log Lik.' -550.6695 (df=3) ``` La inclusión de un predictor adicional (edad) hace que cambie la log-verosimilitud del modelo --- ## Ajuste: ¿Qué tan bueno es nuestro modelo? - No existe una **única forma** de estimar el ajuste en regresión logística -- - El ajuste de los modelos logísticos se evalúa en general en términos **.blue[comparativos]** con otros modelos -- - Estas medidas de comparación se basan en distintas fórmulas que consideran la **.red[log verosimilitud (o LL)]** y la **devianza** --- .pull-left-narrow[## Modelo saturado, nulo y logístico ]  --- ## Ajuste: ¿Qué tan bueno es nuestro modelo? - Entre las medidas/indicadores de ajuste usualmente se consideran: - Devianza - Test de razón de verosimilitud (likelihood ratio test) - R2s - Criterio de información de Akaike --- ## Devianza - Concepto: el modelo saturado es básicamente residuos, y la devianza nos indica cuánto se han reducido los residuos a medida que se introducen parámetros al modelo. Por eso también se conoce como devianza residual. -- - Formula: **.red[Devianza =-2*log likelihood]** --- ## Test de razón de verosimilitud (LRT) (...o de diferencia de devianzas) .pull-left-narrow[ .medium[] - Se comparan las devianzas de distintos modelos: si la devianza es significativamente menor, el modelo es mejor ] .pull-right-wide[ .small[ Obtención de devianzas ```r -2*logLik(modelo_titanic) ``` ``` ## 'log Lik.' 1102.008 (df=2) ``` ```r -2*logLik(modelo_titanic2) ``` ``` ## 'log Lik.' 1101.339 (df=3) ``` O directamente: ```r modelo_titanic$deviance ``` ``` ## [1] 1102.008 ``` ] ] --- .pull-left-narrow[ ## Test de razón de verosimilitud .medium[ Comando .red[`anova`] en .red[`R`] ] ] .pull-right-wide[ <br> .small[ ```r anova(modelo_titanic, modelo_titanic2, test ="Chisq") ``` ``` ## Analysis of Deviance Table ## ## Model 1: survived ~ sex ## Model 2: survived ~ sex + age ## Resid. Df Resid. Dev Df Deviance Pr(>Chi) ## 1 1044 1102.0 ## 2 1043 1101.3 1 0.6694 0.4133 ``` .purple[La diferencia entre los modelos no es estadísticamente significativa con una probabilidad. Por lo tanto el modelo con dos predictores (sexo + edad) no ofrece un mejor ajuste a los datos que un modelo con solo un predictor (sexo). ] ] ] --- .pull-left[ ## Test de razón de verosimilitud .medium[ Probemos ahora con otro modelo con la variable clase `pclass`: - alta (ref) - intermedia - baja ] .small[ ```r modelo_titanic3 <- glm(survived ~ sex + pclass, data = tt, family = "binomial") ``` ] ] .pull-right[.small[ <table class="texreg" style="margin: 10px auto;border-collapse: collapse;border-spacing: 0px;caption-side: bottom;color: #000000;border-top: 2px solid #000000;"> <caption> </caption> <thead> <tr> <th style="padding-left: 5px;padding-right: 5px;"> </th> <th style="padding-left: 5px;padding-right: 5px;">Logit</th> <th style="padding-left: 5px;padding-right: 5px;">OR</th> </tr> </thead> <tbody> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Intercepto</td> <td style="padding-left: 5px;padding-right: 5px;">-0.37<sup>*</sup></td> <td style="padding-left: 5px;padding-right: 5px;">0.69<sup>*</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.15)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Mujer (Ref=Hombre)</td> <td style="padding-left: 5px;padding-right: 5px;">2.53<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">12.53<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.16)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Clase Intermedia</td> <td style="padding-left: 5px;padding-right: 5px;">-0.90<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">0.41<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.21)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Clase Baja</td> <td style="padding-left: 5px;padding-right: 5px;">-1.72<sup>***</sup></td> <td style="padding-left: 5px;padding-right: 5px;">0.18<sup>***</sup></td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;"> </td> <td style="padding-left: 5px;padding-right: 5px;">(0.19)</td> <td style="padding-left: 5px;padding-right: 5px;"> </td> </tr> <tr style="border-top: 1px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">AIC</td> <td style="padding-left: 5px;padding-right: 5px;">1021.80</td> <td style="padding-left: 5px;padding-right: 5px;">1021.80</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">BIC</td> <td style="padding-left: 5px;padding-right: 5px;">1041.61</td> <td style="padding-left: 5px;padding-right: 5px;">1041.61</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Log Likelihood</td> <td style="padding-left: 5px;padding-right: 5px;">-506.90</td> <td style="padding-left: 5px;padding-right: 5px;">-506.90</td> </tr> <tr> <td style="padding-left: 5px;padding-right: 5px;">Deviance</td> <td style="padding-left: 5px;padding-right: 5px;">1013.80</td> <td style="padding-left: 5px;padding-right: 5px;">1013.80</td> </tr> <tr style="border-bottom: 2px solid #000000;"> <td style="padding-left: 5px;padding-right: 5px;">Num. obs.</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> <td style="padding-left: 5px;padding-right: 5px;">1046</td> </tr> </tbody> <tfoot> <tr> <td style="font-size: 0.8em;" colspan="3"><sup>***</sup>p < 0.001; <sup>**</sup>p < 0.01; <sup>*</sup>p < 0.05</td> </tr> </tfoot> </table> ] ] --- ## Test de razón de verosimilitud .small[ ```r anova(modelo_titanic, modelo_titanic3, test ="Chisq") ``` ``` ## Analysis of Deviance Table ## ## Model 1: survived ~ sex ## Model 2: survived ~ sex + pclass ## Resid. Df Resid. Dev Df Deviance Pr(>Chi) ## 1 1044 1102.0 ## 2 1042 1013.8 2 88.211 < 2.2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` ] .medium[ .purple[La diferencia entre los modelos es estadísticamente significativa con una probabilidad p < 0.001. Por lo tanto el modelo con dos predictores (sexo + pclass) ofrece un mejor ajuste a los datos que un modelo con solo un predictor (sexo).] ] --- ## Test de razón de verosimilitud .medium[ - También se puede realizar la comparación con el modelo nulo (sin predictores), que es equivalente al promedio en el caso de variables continuas ] .small[ ```r modelo_titanic_null <- glm(survived ~ 1, data = tt, family = "binomial") anova(modelo_titanic_null, modelo_titanic3, test ="Chisq") ``` ``` ## Analysis of Deviance Table ## ## Model 1: survived ~ 1 ## Model 2: survived ~ sex + pclass ## Resid. Df Resid. Dev Df Deviance Pr(>Chi) ## 1 1045 1414.6 ## 2 1042 1013.8 3 400.82 < 2.2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` ] --- ## McFadden (pseudo) R2 Se define como: `\(1−[LL(LM)/LL(L0)]\)`, donde .small[ - LL es el log likelihood del modelo - LM es el modelo posterior (con más predictores) - L0 es el modelo nulo ```r logLik(modelo_titanic); logLik(modelo_titanic_null) ``` ``` ## 'log Lik.' -551.0042 (df=2) ``` ``` ## 'log Lik.' -707.3102 (df=1) ``` ```r 1-(-551/-707) ``` ``` ## [1] 0.2206506 ``` ] --- # McFadden (pseudo) R2 También se puede obtener con la función `PseudoR2` de la librería `DescTools`, junto a otras versiones de pseudo R2s, como "Nagelkerke", "CoxSnell" y "Effron". --- ## Akaike (AIC) .medium[ **AIC - Akaike information criteria**, evalua la calidad del modelo a través de la comparación con otros modelos penalizando por la inclusión de predictores (análogo al R2 ajustado): `$$AIC=-2(log-likelihood)+2K$$` Donde K= número de parámetros del modelo (regresores + intercepto) ] A menor AIC, mejor ajuste --- ## Akaike (AIC) ```r logLik(modelo_titanic) ``` ``` ## 'log Lik.' -551.0042 (df=2) ``` ```r 2*551 ``` ``` ## [1] 1102 ``` `$$AIC=-2(-551)+2(2)=1102+4=1106$$` --- # Resumen Ajuste - diferentes aproximaciones - utilizar más de una forma - en general: LRT (test de razón de verosimilitud) y algún tipo de R2 --- class: inverse, left ## RESUMEN - Limitaciones de regresión tradicional (OLS) para variables dependientes dicotómicas - Logit permite implementar regresión (coeficientes e inferencia) con dependientes dicotómicas - En regresión logística la interpretación sustantiva de coeficientes se realiza con los odds-ratio (exponenciando los coeficientes logit) - Ajuste: medidas comparativas basadas en la log-verosimilitud de los modelos ??? Remember, though, just like in logistic regression, the difference in the probability isn’t equal for each 1-unit change in the predictor. The sigmoidal relationship between a predictor and probability is nearly identical in probit and logistic regression. A 1-unit difference in X will have a bigger impact on probability in the middle than near 0 or 1. --- class: roja right middle ### Próxima semana ## Revisión de supuestos del modelo de regresión --- class: front .pull-left[ # Estadística Multivariada ## Juan Carlos Castillo ## Sociología FACSO - UChile ## 1er Sem 2022 ## [multivariada.netlify.com](https://multivariada.netlify.com) ] .pull-right[ .right[ <br>  ] ]