class: center, middle, inverse, title-slide .title[ # ANÁLISE DE DADOS CATEGORIZADOS STA13833 ] .subtitle[ ## Regressão Logística Multinomial ] .author[ ### Nátaly A. Jiménez Monroy ] .institute[ ### LECON/DEST - UFES ] .date[ ### Vitória. ES ] --- class: animated, fadeIn <style> body {text-align: justify} </style> <!-- Justify text. --> #Características * Também chamada Regressão Logística Politômica. * Para respostas nominais se usam modelos logit binários separados para cada par de categorias da resposta. * Para respostas ordinais usam-se, entre outros, logits das probabilidades acumulativas. * Testes como o de independência condicional e Cochran-Mantel-Haenszel são generalizados para resposta multinomial. --- class: animated, fadeIn ##Resposta Nominal - I Seja `\(Y\)` a resposta com `\(J\)` categorias. O modelo logit politômico para resposta nominal descreve simultâneamente o `\(\log\)` odds para todos os `\(\binom J 2\)` pares de categorias. **Logit de categoria-base**: Seja `\(\pi_j(\mathbf{x})=P(Y=j|\mathbf{x})\)` no arranjo `\(\mathbf{x}\)` das covariáveis, com `\(\sum_j \pi_j(\mathbf{x})=1\)`. Para as observações nesse arranjo, tratam-se as contagens nas `\(J\)` categorias de `\(Y\)` como multinomiais com probabilidades `\(\{\pi_1(\mathbf{x}),\ldots,\pi_J(\mathbf{x})\}\)`. --- class: animated, fadeIn ##Resposta Nominal - II O modelo `$$\log\left[\dfrac{\pi_j(\mathbf{x})}{\pi_J(\mathbf{x})}\right]=\alpha_j+\mathbf{\beta}_j'\mathbf{x},\quad j=1,\ldots,J-1.$$` descreve simultaneamente os efeitos de `\(\mathbf{x}\)` nesses `\(J-1\)` logits. As `\(J-1\)` equações determinam parâmetros para logits com outros pares de categorias da resposta, pois `$$\log\left[\dfrac{\pi_a(\mathbf{x})}{\pi_b(\mathbf{x})}\right]=\log\left[\dfrac{\pi_a(\mathbf{x})}{\pi_J(\mathbf{x})}\right]-\log\left[ \dfrac{\pi_b(\mathbf{x})}{\pi_J(\mathbf{X})}\right].$$` Para este caso, as estatísticas de qualidade do ajuste podem ser usadas. --- class: animated, fadeIn ##Exemplo 1 - I Os dados correspondem a um estudo sobre os fatores que influenciam na seleção de alimento dos jacarés. A resposta nominal é o tipo de alimento primário, em volume, encontrado no estômago de jacarés. As categorias são: peixes, invertebrados, répteis, pássaros, outros. Os dados também foram classificados de acordo com: lago (L: Hancock, Oklawaha, Trafford, George), Gênero (G: macho, fêmea) e tamanho (S: `\(\leq 2,3\)` metros, `\(>2,3\)` metros). --- class: animated, fadeIn ##Exemplo 1 - II <img src="images/ex_alligator.png" width="65%" style="display: block; margin: auto;" /> --- class: animated, fadeIn ##Exemplo 1 - III ```r require('vcdExtra') data(Alligator) allitable <- xtabs(count~lake+sex+size+food, data=Alligator) structable(food~lake+sex+size, allitable) ``` ``` ## food bird fish invert other reptile ## lake sex size ## George female large 0 8 1 1 0 ## small 0 3 9 1 1 ## male large 1 9 0 2 0 ## small 2 13 10 2 0 ## Hancock female large 2 3 0 3 1 ## small 2 16 3 3 2 ## male large 1 4 0 2 0 ## small 0 7 1 5 0 ## Oklawaha female large 1 0 1 0 0 ## small 0 3 9 2 1 ## male large 0 13 7 0 6 ## small 0 2 2 1 0 ## Trafford female large 0 0 1 0 0 ## small 1 2 4 4 1 ## male large 3 8 6 5 6 ## small 0 3 7 1 1 ``` --- class: animated, fadeIn ##Exemplo 1 - IV ```r require(nnet) mod <- multinom(food ~ lake+size, data=Alligator, weights=count) ``` ``` ## # weights: 30 (20 variable) ## initial value 352.466903 ## iter 10 value 271.161880 ## iter 20 value 270.060188 ## final value 270.040139 ## converged ``` ```r summary(mod) ``` ``` ## Call: ## multinom(formula = food ~ lake + size, data = Alligator, weights = count) ## ## Coefficients: ## (Intercept) lakeHancock lakeOklawaha lakeTrafford sizesmall ## fish 2.0929906 -0.6951466 0.6529211 -1.08764377 0.6308607 ## invert 0.5439613 -2.3535280 1.5901541 0.03435528 2.0890800 ## other 0.1887161 0.1310280 0.6585231 0.42873394 0.9624274 ## reptile -1.2215892 0.5476069 3.1118287 1.84765700 0.2796424 ## ## Std. Errors: ## (Intercept) lakeHancock lakeOklawaha lakeTrafford sizesmall ## fish 0.6622265 0.7812640 1.201951 0.8416809 0.6424896 ## invert 0.7311028 0.9337166 1.227642 0.8631658 0.6939177 ## other 0.7902850 0.8919688 1.368459 0.9383104 0.7127188 ## reptile 1.2076995 1.3715178 1.585926 1.3173360 0.8062363 ## ## Residual Deviance: 540.0803 ## AIC: 580.0803 ``` --- class: animated, fadeIn ##Exemplo 1 - V ```r food1<-factor(Alligator$food, levels=c("fish","invert","bird","reptile","other")) mod1 <- multinom(food1 ~ lake+size, data=Alligator, weights=count) ``` ``` ## # weights: 30 (20 variable) ## initial value 352.466903 ## iter 10 value 271.607785 ## iter 20 value 270.046051 ## final value 270.040140 ## converged ``` ```r summary(mod1) ``` ``` ## Call: ## multinom(formula = food1 ~ lake + size, data = Alligator, weights = count) ## ## Coefficients: ## (Intercept) lakeHancock lakeOklawaha lakeTrafford sizesmall ## invert -1.549021 -1.6581178 0.937237973 1.122002 1.4581457 ## bird -2.093358 0.6954256 -0.652622721 1.088098 -0.6306329 ## reptile -3.314512 1.2428408 2.458913302 2.935262 -0.3512702 ## other -1.904343 0.8263115 0.005792737 1.516461 0.3315514 ## ## Std. Errors: ## (Intercept) lakeHancock lakeOklawaha lakeTrafford sizesmall ## invert 0.4249185 0.6128466 0.4719035 0.4905122 0.3959418 ## bird 0.6622972 0.7813123 1.2020025 0.8417085 0.6424863 ## reptile 1.0530577 1.1854031 1.1181000 1.1163844 0.5800207 ## other 0.5258313 0.5575446 0.7765655 0.6214371 0.4482504 ## ## Residual Deviance: 540.0803 ## AIC: 580.0803 ``` --- class: animated, fadeIn ##Exemplo 1 - VI | Logit || `\(\alpha_j\)` || Tamanho `\(<2,3\)` || Hancock | Oklawaha | Trafford || |:---------------------:||------------:||:----------------:||:------------:|:-------------:|:------------:|| | `\(\log (\pi_I/\pi_F)\)` || -1,55 || 1,46 (0,40) || -1,66 (0,61)| 0,94 (0,47)| 1,12 (0,49) || | `\(\log (\pi_R/\pi_F)\)` || -3,31 || -0,35 (0,58) || 1,24 (1,19)| 2,46 (1,12)| 2,94 (1,12) || | `\(\log (\pi_B/\pi_F)\)` || -2,09 || -0,63 (0,64) || 0,70 (0,78)| -0,65 (1,20)| 1,09 (0,84) || | `\(\log (\pi_O/\pi_F)\)` || -1,90 || 0,33 (0,45) || 0,83 (0,56)| 0,01 (0,78)| 1,52 (0,62) || -- > **Observações**: * Em um lago fixo, para jacarés pequenos, o odds de que o alimento primário seja um invertebrado é `\(\exp(1,46)=4,3\)` vezes o odds estimado dos jacarés grandes. >* Intervalo de 95\% de confiança: `\(\exp[1,46\pm 1,96\times(0,396)]=(2,0;9,3)\)`. -- `$$\begin{align*} \log(\hat{\pi}_I/\hat{\pi}_O)=&\log(\hat{\pi}_I/\hat{\pi}_F)-\log(\hat{\pi}_O/\hat{\pi}_F)\\ =&(-1,55+1,46s-1,66z_H+0,94z_O+1,12z_T)\\ &-(-1,90+0,33s+0,83z_H+0,01z_O+1,52z_T)\\ =&0,35+1,13s-2,48z_H+0,93z_O-0,39z_T. \end{align*}$$` --- class: animated, fadeIn ##Probabilidades de resposta `$$\pi_j(\mathbf{x})=\dfrac{\exp(\alpha_j+\mathbf{\beta}_j'\mathbf{x})}{1+\sum_{h=1}^{J-1}\exp(\alpha_h+\mathbf{\beta}_h'\mathbf{x})},$$` com `\(\alpha_J=0\)` e `\(\mathbf{\beta}_J=\mathbf{0}\)`. -- **No exemplo**: `$$\begin{align*} \hat{\pi}_I&=\dfrac{e^{-1,55-1,66}}{1+e^{-1,55-1,66}+e^{-3,31+1,24}+e^{-2,09+0.70}+e^{-1,90+0.83}}\\ &=0,023 \end{align*}$$` As probabilidades estimadas para répteis, pássaros, outros e peixes são: 0,072; 0,141; 0,194; 0,570. --- class: animated, bounceInDown ##Resposta Ordinal - I ###Logits de categorias adjacentes Definidos como `$$\begin{align*} L_1 &=\log\left(\dfrac{\pi_1}{\pi_2}\right)\\ L_2 &=\log\left(\dfrac{\pi_2}{\pi_3}\right)\\ &\vdots\\ L_{r-1} &=\log\left(\dfrac{\pi_{r-1}}{\pi_r}\right) \end{align*}$$` Este modelo é similar ao modelo de categoria-base, só que a categoria base muda de uma categoria para a seguinte. --- class: animated, fadeIn ##Resposta Ordinal - II Assumindo que o efeito de uma covariável em cada equação das categorias adjacentes é o mesmo, tem-se: `$$\begin{align*} L_1 &=\alpha_1+\beta_{1}x_1+\cdots+\beta_{p}x_p\\ L_2 &=\alpha_2+\beta_{1}x_1+\cdots+\beta_{p}x_p\\ &\vdots\\ L_{r-1} &=\alpha_{r-1}+\beta_{1}x_1+\cdots+\beta_{p}x_p \end{align*}$$` -- >**Observações**: >* A relação entre `\(x_1\)` e a resposta, permanecendo as outras covariáveis constantes, pode ser descrita como um conjunto de `\(r-1\)` odds ratios para cada par de categorias adjacentes da resposta. >* `\(\beta_1\)` é a mudança no log-odds de estar na categoria `\(j+1\)` versus a categoria `\(j\)` quando `\(x_1\)` aumenta em uma unidade, permanecendo as outras variáveis constantes. --- class: animated, fadeIn ##Modelo Logit cumulativo - I * É um dos modelos mais populares para dados ordinais. * O modelo usa probabilidades cumulativas até um limiar, tornando binário todo o intervalo das categorias ordinais nesse limiar. Seja `\(Y=1,2,\ldots,J\)` a resposta ordinal. Sejam as probabilidades associadas dadas por `\(\{\pi_1,\pi_2,\ldots,\pi_J\}\)` e seja `\(P(Y\leq j)=\pi_1+\ldots+\pi_j\)` a probabilidade acumulada de uma resposta ser menor ou igual a `\(j\)`. O logit cumulativo é definido como `$$\begin{align*} \log\left[\dfrac{P(Y\leq j)}{P(Y>j)}\right]&=\log\left[\dfrac{P(Y\leq j)}{1-P(Y\leq j)}\right]\\ &=\log\left[\dfrac{\pi_1+\ldots+\pi_j}{\pi_{j+1}+\ldots+\pi_J}\right] \end{align*}$$` --- class: animated, fadeIn ##Modelo Logit cumulativo - II A sequência de logits cumulativos pode ser definida como `$$\begin{align*} L_1 &=\log\left(\dfrac{\pi_1}{\pi_2+\ldots+\pi_r}\right)\\ L_2 &=\log\left(\dfrac{\pi_1+\pi_2}{\pi_3+\ldots+\pi_r}\right)\\ &\vdots\\ L_{J-1} &=\log\left(\dfrac{\pi_1+\pi_2+\ldots+\pi_{J-1}}{\pi_J}\right) \end{align*}$$` -- >**Observação**: `\(L_j\)` é o log-odds de estar em alguma categoria até `\(j\)` versus estar acima da mesma. --- class: animated, fadeIn ##Modelo Logit cumulativo - III Incorporando as covariáveis no modelo, tem-se `$$\begin{align} L_1 &=\alpha_1+\beta_1x_1+\cdots+\beta_px_p\\ L_2 &=\alpha_2+\beta_1x_1+\cdots+\beta_px_p\\ &\vdots\\ L_{J-1} &=\alpha_{J-1}+\beta_1x_1+\cdots+\beta_px_p \end{align}$$` Este modelo é chamado <span style="color:orange">logit cumulativo de odds proporcionais</span>. Tem um total de `\((J-1)\)` interceptos mais `\(p\)` inclinações, para um total de `\(J+p-1\)` parâmetros a serem estimados. -- >**Observação**: >* Note-se que este modelo não é uma reparametrização linear do modelo de categoria-base, pois os logits não são simples diferenças entre logits das categorias-base. >* Os interceptos são diferentes, mas a inclinação para cada variável permanece igual nas diferentes equações. Pode-se pensar como um conjunto de linhas (ou hiperplanos) paralelas com diferentes interceptos. --- class: animated, fadeIn ##Modelo Logit cumulativo - IV * O intercepto `\(\alpha_j\)` é o log-odds de estar em categoria menor ou igual a `\(j\)` quando `\(x_1=\cdots=x_p=0\)`. * O parâmetro `\(\beta_k\)` descreve o efeito de `\(x_k\)` em `\(Y\)`. É o incremento no log-odds de estar em qualquer categoria menor ou igual de `\(Y\)` associado a um incremento em uma unidade de `\(x_k\)`, permanecendo todas as outras variáveis constantes. * Se `\(\beta_1=\cdots=\beta_p\)`, o efeito de `\(X_k\)` é o mesmo para todas as `\(J-1\)` formas de dicotomizar a resposta. -- Por simplicidade, consideremos `\(\textrm{logit}[P(Y\leq j)]=\alpha_j+\beta x\)`. As probabilidades acumuladas são dadas por: `$$P(Y\leq j)=\dfrac{\exp(\alpha_j+\beta x)}{1+\exp(\alpha_j+\beta x)},$$` dado que `\(\beta\)` é contante, as curvas de probabilidades acumuladas versus `\(x\)` são paralelas. -- >**Observação**: O odds-ratio é proporcional à diferença entre `\(x_1\)` e `\(x_2\)` onde `\(\beta\)` é a constante de proporcionalidade: `\(\exp[\beta(x_1-x_2)]\)`, daí o nome <span style="color:orange">modelo de odds proporcional</span>. --- class: animated, fadeIn ##Exemplo 2 - I Um grupo de pessoas foi aleatoriamente selecionado para degustar um de quatro diferentes tipos de queijos. As categorias de resposta são: 1=Não gostou nada, até 9=Gostou fortemente. | Queijo || | | | | Resposta | | | | || |:--------:||----:|:---:|:----:|:---:|:-----------:|:----:|:---:|:---:|:---:|| | || 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 || | A || 0 | 0 | 1 | 7 | 8 | 8 | 19 | 8 | 1 || | B || 6 | 9 | 12 | 11 | 7 | 6 | 1 | 0 | 0 || | C || 1 | 1 | 6 | 8 | 23 | 7 | 5 | 1 | 0 || | D || 0 | 0 | 0 | 1 | 3 | 7 | 14 | 16 | 11 || >**Observações:** >* O queijo D é o favorito e o queijo B é o pior avaliado. >* O modelo de odds-cumulativos tem 8 interceptos e 3 inclinações (há três variáveis dummies para representar os queijos). --- class: animated, fadeIn ##Exemplo 2 - II
--- class: animated, fadeIn ##Exemplo 2 - III ```r ftable(xtabs(~ Queijo + Nota, data = dados)) ``` ``` ## Nota 1 2 3 4 5 6 7 8 9 ## Queijo ## A 0 0 1 7 8 8 19 8 1 ## B 6 9 12 11 7 6 1 0 0 ## C 2 0 6 8 23 7 5 1 0 ## D 0 0 0 1 3 7 14 16 11 ``` --- class: animated, fadeIn ##Exemplo 2 - IV Os logits são dados por: `$$\begin{align*} \log\left[\dfrac{P(Y\leq 1)}{P(Y>1)}\right]&=\alpha_1+\beta_1 x_1+\beta_2 x_2+\beta_3 x_3\\ \log\left[\dfrac{P(Y\leq 2)}{P(Y>2)}\right]&=\alpha_2+\beta_1 x_1+\beta_2 x_2+\beta_3 x_3\\ &\vdots\\ \log\left[\dfrac{P(Y\leq 8)}{P(Y>8)}\right]&=\alpha_8+\beta_1 x_1+\beta_2 x_2+\beta_3 x_3, \end{align*}$$` onde `\(x_1=1\)` para o queijo B e 0 em outro caso, `\(x_2=1\)` para o queijo C e zero em outro caso, e `\(x_3=1\)` para o queijo D e 0 em outro caso. > `\(\beta>0\)` indica que um incremento no valor de `\(X\)` tende a diminuir as categorias de resposta (ou seja, produz maior rejeição). --- class: animated, fadeIn ##Exemplo 2 - V ```r require(MASS) m <- polr(factor(Nota) ~ Queijo, data = dados, Hess=TRUE) m ``` ``` ## Call: ## polr(formula = factor(Nota) ~ Queijo, data = dados, Hess = TRUE) ## ## Coefficients: ## QueijoB QueijoC QueijoD ## -3.338959 -1.712961 1.612735 ## ## Intercepts: ## 1|2 2|3 3|4 4|5 5|6 6|7 7|8 ## -5.3207982 -4.4173604 -3.3125279 -2.2435742 -0.9077636 0.0441993 1.5458552 ## 8|9 ## 3.1057138 ## ## Residual Deviance: 712.2283 ## AIC: 734.2283 ``` --- class: animated, fadeIn ##Exemplo 2 - VI ```r ctable <- coef(summary(m)) p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2 (ctable <- cbind(ctable, "p value" = p)) ``` ``` ## Value Std. Error t value p value ## QueijoB -3.3389591 0.4282113 -7.7974563 6.316749e-15 ## QueijoC -1.7129607 0.3716417 -4.6091725 4.042747e-06 ## QueijoD 1.6127349 0.3805401 4.2380154 2.255043e-05 ## 1|2 -5.3207982 0.5059467 -10.5165200 7.250220e-26 ## 2|3 -4.4173604 0.4283188 -10.3132544 6.138670e-25 ## 3|4 -3.3125279 0.3700738 -8.9509926 3.523000e-19 ## 4|5 -2.2435742 0.3267006 -6.8673703 6.539618e-12 ## 5|6 -0.9077636 0.2833378 -3.2038210 1.356168e-03 ## 6|7 0.0441993 0.2645605 0.1670669 8.673174e-01 ## 7|8 1.5458552 0.3016753 5.1242354 2.987476e-07 ## 8|9 3.1057138 0.4057319 7.6545967 1.939198e-14 ``` --- class: animated, fadeIn ##Exemplo 2 - VII ```r (ci <- confint(m)) ``` ``` ## 2.5 % 97.5 % ## QueijoB -4.1995855 -2.518454 ## QueijoC -2.4542910 -0.994726 ## QueijoD 0.8793633 2.374629 ``` ```r exp(cbind(OR = coef(m), ci)) ``` ``` ## OR 2.5 % 97.5 % ## QueijoB 0.03547386 0.01500179 0.08058409 ## QueijoC 0.18033110 0.08592409 0.36982477 ## QueijoD 5.01651229 2.40936512 10.74702446 ``` --- class: animated, fadeIn ##Exemplo 2 - VIII **Observações**: * O modelo estimado pode ser escrito como: `$$\begin{align*} \log\left[\dfrac{P(Y\leq 1)}{P(Y>1)}\right]&=-5,32-3,34 x_1-1,713 x_2+1,613 x_3\\ \log\left[\dfrac{P(Y\leq 2)}{P(Y>2)}\right]&=-4,42-3,34 x_1-1,713 x_2+1,613 x_3\\ &\vdots\\ \log\left[\dfrac{P(Y\leq 8)}{P(Y>8)}\right]&=3,11-3,34 x_1-1,713 x_2+1,613 x_3, \end{align*}$$` * O queijo B está associado a uma menor avaliação, quando comparado com o queijo A. * A chance de atribuir uma nota 1 é `\(\exp(-5.3207982)=0.0048\)` vezes a chance de se atribuir qualquer outra nota. * A chance de atribuir uma nota menor ou igual a 7 é `\(\exp(1.5458552)=4,69\)` vezes a chance de se atribuir nota 8 ou 9. --- class: animated, hide-logo, bounceInDown ## Política de proteção aos direitos autorais > <span style="color:grey">O conteúdo disponível consiste em material protegido pela legislação brasileira, sendo certo que, por ser o detentor dos direitos sobre o conteúdo disponível na plataforma, o **LECON** e o **NEAEST** detém direito exclusivo de usar, fruir e dispor de sua obra, conforme Artigo 5<sup>o</sup>, inciso XXVII, da Constituição Federal e os Artigos 7<sup>o</sup> e 28<sup>o</sup>, da Lei 9.610/98. A divulgação e/ou veiculação do conteúdo em sites diferentes à plataforma e sem a devida autorização do **LECON** e o **NEAEST**, pode configurar violação de direito autoral, nos termos da Lei 9.610/98, inclusive podendo caracterizar conduta criminosa, conforme Artigo 184<sup>o</sup>, §1<sup>o</sup> a 3<sup>o</sup>, do Código Penal. É considerada como contrafação a reprodução não autorizada, integral ou parcial, de todo e qualquer conteúdo disponível na plataforma.</span> .pull-left[ <img src="images/logo_lecon.png" width="50%" style="display: block; margin: auto;" /> ] .pull-right[ <img src="images/logo_neaest.png" width="50%" style="display: block; margin: auto;" /> ] <br></br> .center[ [https://lecon.ufes.br](https://lecon.ufes.br/)         [https://analytics.ufes.br](https://analytics.ufes.br) ] <font size="2"><span style="color:grey">Material elaborado pela equipe LECON/NEAEST: Alessandro J. Q. Sarnaglia, Bartolomeu Zamprogno, Fabio A. Fajardo, Luciana G. de Godoi e Nátaly A. Jiménez.</span></font>