——————————————————————————————————

load(file.path(dir.dados, "Microdados Alunos SP Enem 2015.RData"))

   

P.1. É solicitado que se faça uma análise descritiva das variáveis da base, onde se encontram variáveis como INSE, índice de complexidade de gestão, etc. Temos que descrever o significado desses indicadores?

 

R: Análise descritiva é feita com base nas medidas resumo das variáveis da base - média, mínimo, máximo, etc, para variáveis quantitativas; tabelas de frequência, para variáveis categorias; ambos os tipos admitem também métodos gráficos.

   

P.2. Como reportar os coeficientes associados a múltiplas categorias de uma variável categórica? Tendo em vista que alguns coeficientes são positivos e outros são negativos, existe alguma forma “correta” de reportar os coeficientes?

R: De fato, os coeficientes para variáveis categóricas podem ser positivos para algumas categorias e negativo para outras. É importante observar que os coeficientes mostrados se referem ao efeito da presenca da categoria com relação à categoria de referência, que fica oculta. Se vc pegar sexo, por exemplo, verá que só é mostrado o coeficente de uma das categorias (masculino ou feminino). A outra categoria está implícita, pois o coeficiente mostrado se refere ao efeito da categoria mostrada em relação à categoria implícita.

Quando tem mais de duas categorias, os coeficientes devem ser sempre interpretados em relação à categoria de referência (implícita). Nem sempre é óbvio qual é a categoria de referência; quando tiver dúvidas, tire uma tabela de frequência e observe qual das categorias mostradas na tabela de frequência não aparece na tabela de coeficientes - esta será a categoria de referência.

Para reportar os coeficientes, na forma da equação de regressão, por exemplo, perceba que cada coeficiente das categorias de uma variável categórica se refere ao efeito da variável dummy (criada internamente pelo R durante a estimação do modelo) que representa o efeito daquela categoria com relação à categoria de referência.

   

P.3. Podemos colocar no R duas variáveis dummy ou mais, ao mesmo tempo, para calcular um modelo?

 

R: Sim, pode-se colocar quantas variáveis quiserem, independentemente do tipo.

   

P.4. Como transformamos variáveis no banco de dados que estão como palavras (ex: sim ou não) em números (0 e 1) para fazermos os cálculos?

 

R: Não é necessário transformar em 0 ou 1, basta inserir as variáveis no modelo, o R se encarregada de detectar o tipo. No caso de variáveis categóricas (definidas no R como tipo ‘factor’), o R mesmo cria (internamente) as variáveis dummy para calcular os coefificentes.

Mesmo que a variável esteja definida como tipo texto (‘character’, na nomenclatura do R), o lm a tratará como categórica (‘factor’).

Mais informações sobre os tipos de variáveis, veja a Seção 2.5 Tipos de variáveis do livro (disponivel no e-Disciplinas):

Jakson Alves de Aquino, R para Cientistas Sociais, Editora UESC, 2014

   

P.5. Como transformamos variáveis que estão em faixas (ex: entre 1 e 3; entre 4 e 6) ou em categorias (ex: branco, preto, pardo, indígena ou ex: casado, solteiro, viúvo) em variáveis dummy para fazer os cálculos?

 

R: Não é necessário transformar em dummy, use a variável no formato original. Mas se você quer, por exemplo, fundir categorias de uma variável ‘factor’, você pode fazer algo como:

  1. liste os níveis da variável:
 levels(dados$tp.cor.raca)
## [1] "Não declarado"            "Branca"                  
## [3] "Preta"                    "Parda"                   
## [5] "Amarela"                  "Indígena"                
## [7] "Não dispõe da informação"

Ou analise a própria tabela de frequência da variável:

 table(dados$tp.cor.raca)
## 
##            Não declarado                   Branca                    Preta 
##                      778                    36614                     6534 
##                    Parda                  Amarela                 Indígena 
##                    19535                     1961                      260 
## Não dispõe da informação 
##                      162
  1. Suponha que você quer fundir as categorias “Preta”, “Parda” e “Indígena” numa categoria “PPI”, e as categorias e “Branca” e “Amarela” numa categoria “Branca/Amarela”. Vamos criar uma nova variável chamada “cor.raca”, e atribuir seus valores de acordo com os valores da variável original “tp.cor.raca”:
dados$cor.raca <- NA
i <- which(dados$tp.cor.raca %in% c("Preta", "Parda", "Indígena"))
dados$cor.raca[i] <-  "PPI"
i <- which(dados$tp.cor.raca %in% c("Branca", "Amarela"))
dados$cor.raca[i] <-  "Branca/Amarela"
i <- which(dados$tp.cor.raca %in% c("Não declarado", "Não dispõe da informação"))
dados$cor.raca[i] <- "Não informado"
  1. Você criou uma variável tipo texto; agora transforme-a em categórica:
dados$cor.raca <- factor(dados$cor.raca)
table(dados$cor.raca)
## 
## Branca/Amarela  Não informado            PPI 
##          38575            940          26329

       

P.6. Com relação ao modelo reportado na figura abaixo, nossa dúvida está nos “coeficientes de renda” (salários mínimos). Por que, ao invés de apenas um coeficiente, a saída do modelo reporta os coeficientes estimados de cada faixa salarial? Como devemos reportar esse resultado?

   

   

R: A variável q006.b é categórica, com as faixas etárias correspondendo às categorias.

table(dados$q006.b)
## 
##   [0, 1] Salários Mínimos   (1, 2] Salários Mínimos 
##                      4147                     19924 
##   (2, 4] Salários Mínimos   (4, 8] Salários Mínimos 
##                     19717                     11694 
##  (8, 15] Salários Mínimos (15, + ] Salários Mínimos 
##                      5527                      3134 
##  (15, +] Salários Mínimos 
##                      1701

   

Observe que a primeira faixa de renda, “[0 , 1] Salários Mínimos” não aparece na tabela de coeficientes. Isso ocorre porque essa faixa é a categoria de referência; os coeficientes que aparecem na tabela devem ser interpretados com relação à categoria de referência. Por exemplo, 8,48922 é incremento esperado na nota média do enem quando a renda do indivíduo é (1,2] S.M., em comparação com um indivíduo cuja renda é [0,1] S.M.

É análogo o que ocorre com a variável “tp.cor.raca”, incluída no modelo. Nesse caso, a categoria de referência é “Não declarado”. Os coeficientes de “Branca”, “Preta”, “Parda”, etc, devem ser interpretados como a diferença esperada na nota com relação à pessoa de cor/raça não declarada.

table(dados$tp.cor.raca)
## 
##            Não declarado                   Branca                    Preta 
##                      778                    36614                     6534 
##                    Parda                  Amarela                 Indígena 
##                    19535                     1961                      260 
## Não dispõe da informação 
##                      162

Na verdade, essa é uma maneira ruim de avaliar, primeiro porque essa categoria é muito pouco frequente (apenas 778 pessoas entre as 65844), e depois porque não facilita a comparação direta entre “Branca” e “Preta” (ou Parda, etc), que frequentemente é o que importa.

Para mudar a categoria de referência, vocês poderiam fazer:

dados$tp.cor.raca <- relevel(dados$tp.cor.raca, ref = "Branca")
table(dados$tp.cor.raca)
## 
##                   Branca            Não declarado                    Preta 
##                    36614                      778                     6534 
##                    Parda                  Amarela                 Indígena 
##                    19535                     1961                      260 
## Não dispõe da informação 
##                      162

Ao rodar o modelo de novo, vocês perceberão que o coeficiente da categoria “Branca” não será reportado, justamente porque “Branca” será tratada como categoria de referência e balizará o cálculo dos coeficientes das demais categorias.

lm(nota.media.enem ~ tp.cor.raca, data = dados)
## 
## Call:
## lm(formula = nota.media.enem ~ tp.cor.raca, data = dados)
## 
## Coefficients:
##                         (Intercept)             tp.cor.racaNão declarado  
##                            549.4026                              -0.7372  
##                    tp.cor.racaPreta                     tp.cor.racaParda  
##                            -42.7682                             -39.9163  
##                  tp.cor.racaAmarela                  tp.cor.racaIndígena  
##                             34.2628                             -51.8006  
## tp.cor.racaNão dispõe da informação  
##                            -34.4372

 

O “efeito” de ser Branco, deverá ser interpretado à luz da comparação com as outras raças/cores. Para ilustrar, -42.768 é a queda média na nota de um indivíduo de raça preta comparado a um indivíduo da raça branca (referência).

Este modelo poderia ser reportado da seguinte maneira:

\[\begin{eqnarray} \hat{nota} & = & 549.40 - 0.74 \ {Raça: Nao\ declarada} - 42.77 \ {Raça: Preta} -39.92 \ {Raça: Parda} \ + \\ & & + 34.26 \ {Raça: Amarela} -51.80 \ {Raça: Indígena} -34.44 \ {Raça: Nao \ informada} \end{eqnarray}\]

Como esperado, os coeficientes de Raça Preta, Parda e Inígena são negativos e com graus de magnitude semelhantes. Como o modelo acima não controla por outras variáveis socioeconômicas importantemente relacionadas a raça, não se pode ler esses coeficientes como efeitos ceteris paribus. De todo modo, para efeito de comunicação, é mais interessante usar a variável resumida “cor.raca” (construída na resposta da P.5), ainda que no modelo acima chame atenção que a Raça Amarela tenha notas médias maiores do que a Raça Branca.

lm(nota.media.enem ~ cor.raca, data = dados)
## 
## Call:
## lm(formula = nota.media.enem ~ cor.raca, data = dados)
## 
## Coefficients:
##           (Intercept)  cor.racaNão informado            cor.racaPPI  
##               551.144                 -8.287                -42.483

Talvez fosse o caso de construir outra variável resumida, separando raça amarela de branca…

De todo modo, é conveniente transformar a categoria “Não informado” em missing, o que de fato ela representa. Deve-se estar ciente, entrentato, que os indivíduos classificados nessa categoria serão eliminados da análise:

i <- which(dados$cor.raca == "Não informado")
dados$cor.raca[i] <- NA
lm(nota.media.enem ~ cor.raca, data = dados)
## 
## Call:
## lm(formula = nota.media.enem ~ cor.raca, data = dados)
## 
## Coefficients:
## (Intercept)  cor.racaPPI  
##      551.14       -42.48

Quando o interesse está em avaliar o significado prático/social dos efeitos (representados pelos coeficientes), esse tipo de manipulação das variáveis é altamente recomendado, pois ajuda a sintetizar os achados e reforçar seu significado.

       

P.7. Como descobrir que categoria de uma variável será usada pelo R como categoria de referência e que critério usar para definição da categoria de referência?

   

O R usa o primeiro nível de uma variável do tipo factor como categoria de referência. Para consultar as categorias (levels) de uma variável factor, use a função levels:

levels(dados$tp.estado.civil)
## [1] "Solteiro(a)"                            
## [2] "Casado(a)/Mora com um(a) companheiro(a)"
## [3] "Divorciado(a)/Desquitado(a)/Separado(a)"
## [4] "Viúvo(a)"

Por exemplo, no caso da variável tp.estado.civil, vemos que o primeiro nível, e portanto categoria de referência, é “Solteiro(a)”.

Como definir qual categoria deve ser usada como referência? Não há regra. É comum usar a categoria mais populosa, mas uma recomendação é escolher aquela categoria que torne a interpretação mais fácil. Como comentado na pergunta anterior, no caso de cor/raça, um interesse particular está em confrontar o desempenho de negros, pardos e índios (como um grupo) com o de brancos. Nesse caso, se justifica escolher um dos dois grupos como referência porque o coeficiente resultante associado ao outro grupo traduzirá diretamente essa comparação.

No caso específico de se tratar de uma variável categórica ordinal, é razoável usar como referência o primeiro nível da escala, mantendo os coeficientes resultantes na ordenação natural. Além disso, não é incomum a existência de um efeito linear da variável, situação em que cada nível a mais na escala implica um acréscimo/decréscimo médio regular na variável resposta. Manter os coeficientes na ordem natural facilita a interpretação e ajuda a avaliar essa hipótese, ou identificar algum tipo padrão no efeito ao longo da escala.

É comum a intenção de confrontar uma categoria específica com as demais. Quando se vai incorporar um número grande de variáveis explicativas, como potencialmente ocorre com este trabalho, é interessante criar variáveis dicotômicas em função da categoria de interesse.