Regressão Logística Multinomial

EST024 - Pesquisa de Opinião e Mercado

Helgem de Souza

Introdução

Antes de iniciar nossa aula:

  1. Abra o RStudio.

  2. Crie um novo script.

  3. Crie uma pasta na área de trabalho com seu nome.

  4. Defina a pasta como diretório de trabalho

  5. Salve o script criado na pasta com o nome "aula14_est024.R".

  6. Baixe do Moodle o arquivo Pesquisa Secom 07/2022.rar e extraia na pasta criada.

  7. Leia o arquivo Rodada 02_F2F_BDvFinal.xlsx para o objeto pesquisa_secom e limpe os nomes com a função clean_names do pacote janitor.

Introdução

Um modelo estatístico é uma entidade matemática que busca explicar relações existentes entre duas ou mais variáveis.

De modo geral, em um modelo temos dois tipos de variáveis:

  • Dependentes ou resposta - Variáveis sob as quais se deseja compreender o comportamento.

  • Independentes ou explicativas - Variáveis que, em hipótese, afetam o comportamento das variáveis dependentes.

O tipo de modelo utilizado depende de uma série de fatores:

  • Natureza das variáveis dependentes.

  • Tipo de relação teórica entre variáveis dependentes e independentes.

  • Pressupostos relacionados a ambas as variáveis, dentre outros.

Modelos para variáveis qualitativas

Quando a variável dependente é qualitativa, temos inicialmente duas possibilidades:

  1. A variável dependente possui dois níveis (dicotômica)
  2. A variável dependente possui mais de dois níveis (politômica)

Quando a variável dependente é qualitativa é dicotômica, utiliza-se o clássico modelo de Regressão Logística.

Porém, esse modelo é útil apenas em casos dicotômicos, pois a base de sua modelagem é a distribuição binomial, que modela eventos do tipo sucesso/fracasso:

  • Paciente ficar doente ou não.

  • Vendas de um produto aumentam sim ou não.

  • Eleitor escolhe candidato A ou B no segundo turno de uma eleição.

Modelos para variáveis qualitativas

Suponha a seguinte situação:

Na pesquisa da SECOM, a variável 17 apresenta 5 respostas possíveis para a seguinte pergunta:

Na sua opinião, qual dessas ações deve ser a prioridade do Governo Federal?

  • Diminuir a inflação.

  • Investir mais em educação pública.

  • Combater mais a corrupção.

  • Ampliar os programas sociais.

  • Melhorar a situação da economia do país.

Será que as características socioeconômicas influenciam nessa resposta? Como temos mais de dois níveis de variáveis, a regressão logística não é uma opção.

Regressão Logística Multinomial

Em situaçõs como essa, em que a resposta possui mais de dois níveis qualitativos, podemos ter variáveis nominais ou ordinais.

No nosso exemplo, as variáveis são nominais. Nesse caso, o modelo mais adequado é o modelo de Regressão Logística Multinomial.

Distribuição Multinomial

Seja \(Y\) uma variável aleatória com \(k\) categorias, em que \(\pi_1, \pi_2, \cdots, \pi_k\) são as respectivas probabilidades de ocorrência e \(\sum\limits_{i = 1}^k\pi_i = 1\).

Suponha \(n\) realizações dessa variável. Teremos \(Y_1\) observações na categoria 1, \(Y_2\) observações na categoria 2, e assim sucessivamente, até que tenhamos \(Y_k\) observações na categoria \(k\), de modo que \(\sum\limits_{k=1}^n Y_k = n\).

Nesse contexto, temos que

\[ P(Y_1 = y_1, Y_2 = y_2, \cdots, Y_k = y_k|n) = \dfrac{n!}{y_1!y_2!\cdots y_k!}\pi_1^{y_1} \pi_2^{y_2} \cdots \pi_k^{y_k} \]

e dizemos que \(Y \sim Multinomial (n, \pi_1, \pi_2, \cdots, \pi_k)\), com

\[ E(Y_k) = n\pi_k ~~\text{e}~~ Var(Y_k) = n\pi_k(1-\pi_k) \]

Regressão Logística Multinomial

A Regressão Logística Multinomial carrega muitas semelhanças com a regressão logística binária.

Enquanto na regressão logística binária testamos as chances de uma resposta versos a outra, na regressão logística multinomial é necessário definir uma categoria de referência, que será comparada com as demais.

Após essa definição, em termos práticos, para um modelo cuja variável resposta tem \(k\) níveis, é como se ajustássemos \(k-1\) modelos de regressão logística binária.

Regressão Logística Multinomial

Em um modelo de \(K\) níveis, supondo que a primeira variável seja escolhida como referência, teríamos os seguintes logitos para as demais categorias:

\[ logito(\pi_k) = \log\left(\frac{\pi_k}{\pi_1}\right) = x^T\beta_k,~~k = 2, 3, \cdots, K \]

Assim, são geradas \(K-1\) equações logísticas, que são otimizadas simultaneamente para a obtenção dos parâmetros \(\beta_k\).

Os valores ajustados para cada nível fica dado por

\[ \hat{\pi_k} = \dfrac{exp(x^T\hat{\beta_k})}{1 + \sum_{k=2}^Kexp(x^T\hat{\beta_k})},~~k = 2, 3, \cdots, K \]

Regressão Logística Multinomial

Para o modelo simples,

\[ \log\left(\frac{\pi_k}{\pi_1}\right) = \beta_{0k} + \beta_{1k}x,~~k = 2, 3, \cdots, K \]

as chances são dados por

\[ \dfrac{\pi_{ka}}{\pi_{1a}}=\exp(\beta_{0k}), \ \ \text{ para } x=0, \ \text{indicando ausência do fator} \]

\[ \dfrac{\pi_{kp}}{\pi_{1p}}=\exp(\beta_{0k} + \beta_{1k}), \ \ \text{ para } x=0, \ \text{indicando presença do fator} \]

Logo, a razão de chances da categoria \(k\) em relação à categoria de referência é dada por

\[ RC_k = \dfrac{exp(\beta_{0k}+\beta_{1k})}{exp(\beta_{0k})} = exp(\beta_{1k}), \]

é estimada por \(\exp(\hat{\beta}_{1k})\) e sua interpretação é similar à regressão logística convencional.

Regressão Logística Multinomial - Exemplo

A variável P17 do questionário é a seguinte:

Na sua opinião, qual dessas ações deve ser a prioridade do Governo Federal?

Será que essa avaliação de prioridades varia conforme o sexo e a escolaridade?

Primeiramente vamos fazer algumas transformações nas variáveis, pois elas possuem muitos níveis:

  • Escolaridade: Vamos agrupar em até ensino fundamental, ensino médio (completo ou incompleto) e ensino superior (incompleto, completo ou pós-graduado).

  • Prioridades:

    • Economia (Diminuir a inflação, melhorar a economia).

    • Investimento (Investir em educação ou programas sociais).

    • Combate à corrupção.

Regressão Logística Multinomial - Exemplo

pesquisa_secom <- pesquisa_secom %>% 
  mutate(escolaridade = case_when(
  pf3 %in% c("Analfabeto", "Sabe ler e escrever", "Ensino Fundamental Incompleto", "Ensino Fundamental Completo") ~ "Até Ensino Fundamental",
  pf3 %in% c("Ensino Médio Incompleto", "Ensino Médio Completo") ~ "Ensino Médio",
  pf3 %in% c("Ensino Superior Incompleto", "Ensino Superior Completo", "Pós Graduado: Especialização, Mestrado ou Doutorado") ~ "Ensino Superior"),
         prioridade = case_when(
  p17 %in% c("Investir mais em educação pública", "Ampliar os programas sociais") ~ "Investimento",
  p17 %in% c("Diminuir a inflação", "Melhorar a situação da economia do país") ~ "Economia",
  p17 == "Combater mais a corrupção" ~ "Combate à Corrupção",
  .default = NA))

Vamos gerar uma tabela de contingência para analisar as variáveis

 

Regressão Logística Multinomial - Exemplo

pesquisa_secom %>% tbl_summary(by = prioridade, include = c(pf1, escolaridade))
Characteristic Combate à Corrupção
N = 3601
Economia
N = 9751
Investimento
N = 6081
pf1


    Feminino 142 (39%) 517 (53%) 325 (53%)
    Masculino 218 (61%) 458 (47%) 283 (47%)
escolaridade


    Até Ensino Fundamental 129 (36%) 388 (40%) 228 (38%)
    Ensino Médio 187 (52%) 459 (47%) 279 (46%)
    Ensino Superior 44 (12%) 128 (13%) 101 (17%)
1 n (%)

Regressão Logística Multinomial - Exemplo

Regressão Logística Multinomial - Exemplo

Aparentemente o sexo influencia mais a questão do que a escolaridade.

Para verificar a influência de cada variável, vamos ajustar um modelo de regressão logística multinomial.

No R, a regressão logística multinomial é realizada por meio da função multinom(), do pacote nnet.

Por padrão, a função escolhe a categoria por ordem alfabética. Mas vamos escolher a categoria “Economia” como categoria de referência. Para isso, utilizaremos a função relevel().

#Conversão para fator
pesquisa_secom <- pesquisa_secom %>% 
  mutate(prioridade = factor(prioridade) %>% 
           relevel(ref = "Economia"))

#Verificando os níveis
levels(pesquisa_secom$prioridade)
[1] "Economia"            "Combate à Corrupção" "Investimento"       

Regressão Logística Multinomial - Exemplo

Vamos agora ajustar nosso modelo de regressão logística multinomial. Os parâmetros da função multinom() são semelhantes aos da função lm(): formula e data:

#Carregando o pacote
pacman::p_load(nnet, sjPlot)

#Ajuste do modelo
modelo <- multinom(prioridade ~ pf1 + escolaridade, data = pesquisa_secom)
# weights:  15 (8 variable)
initial  value 2134.603677 
iter  10 value 1971.550591
final  value 1970.793912 
converged
#Coeficientes do modelo

Para visualizar os resultados do modelo, vamos utilizar a função tab_model() do pacote sjPlot. Essa função, além de apresentar os testes de hipóteses, já fornece o resultado das odds ratio

Regressão Logística Multinomial - Exemplo

tab_model(modelo)
  prioridade
Predictors Odds Ratios CI p Response
(Intercept) 0.24 0.19 – 0.31 <0.001 Combate à Corrupção
pf1 [Masculino] 1.74 1.36 – 2.23 <0.001 Combate à Corrupção
escolaridade [Ensino
Médio]
1.24 0.96 – 1.62 0.104 Combate à Corrupção
escolaridade [Ensino
Superior]
1.06 0.71 – 1.59 0.757 Combate à Corrupção
(Intercept) 0.59 0.49 – 0.72 <0.001 Investimento
pf1 [Masculino] 0.99 0.81 – 1.21 0.915 Investimento
escolaridade [Ensino
Médio]
1.03 0.83 – 1.29 0.767 Investimento
escolaridade [Ensino
Superior]
1.34 0.99 – 1.83 0.061 Investimento
Observations 1943
R2 / R2 adjusted 0.007 / 0.007

Regressão Logística Multinomial - Exemplo

Logo, do modelo em estudo, podemos concluir que:

  • A escolaridade não afeta a escolha da prioridade por parte dos entrevistados.

  • Homens tem uma chance 74% maior de escolher como prioridade o combate à corrupção em detrimento da melhora da economia, se comparados com as mulheres.

Exercício

Teste se as variáveis faixa etária, desempenho de trabalho remunerado e renda afetam a prioridade do entrevistado em relação à economia, investimento ou combate à corrupção, mas dessa vez, utilize o nível economia como categoria de referência. Lembre-se de excluir os níveis que não representam respostas válidas.