1
resposta

[Praticando] Variáveis qualitativas

Exercício Prático:

Considere um DataFrame dados com as seguintes variáveis:

  • Sexo: codificado como 0 para Masculino e 1 para Feminino.

  • Cor: codificada com os seguintes valores:

    • 0: Indígena
    • 2: Branca
    • 4: Preta
    • 6: Amarela
    • 8: Parda
    • 9: Sem declaração
  • Renda: representando a renda mensal em reais.

Construa uma tabela de distribuição de frequências cruzada para as variáveis "Sexo" e "Cor", e em seguida, crie a tabela de percentuais normalizados. Após isso, calcule a renda média para cada grupo de "Sexo" e "Cor".

Resolução Didática:

Passo 1: Criar um dicionário para as variáveis "Sexo" e "Cor"

Vamos transformar os valores numéricos em strings utilizando dicionários para facilitar a visualização.

sexo = {0: 'Masculino', 1: 'Feminino'}
cor = {0: 'Indígena', 2: 'Branca', 4: 'Preta', 6: 'Amarela', 8: 'Parda', 9: 'Sem declaração'}

Passo 2: Construir a tabela de frequências cruzada

Agora, usaremos o método pd.crosstab() para cruzar as variáveis "Sexo" e "Cor". Isso nos dará uma tabela de contagem de cada combinação.

frequencia = pd.crosstab(dados.Sexo, dados.Cor)
frequencia.rename(index=sexo, columns=cor, inplace=True)
frequencia

Explicação:

  • O pd.crosstab() cria uma tabela que cruza as categorias de "Sexo" nas linhas e "Cor" nas colunas, contando quantas vezes cada combinação aparece.
  • Renomeamos as categorias com os dicionários para que a tabela seja mais legível.

Passo 3: Criar a tabela de percentuais

Vamos agora normalizar a tabela, criando uma distribuição percentual.

percentual = pd.crosstab(dados.Sexo, dados.Cor, normalize=True) * 100
percentual.rename(index=sexo, columns=cor, inplace=True)
percentual

Explicação:

  • O parâmetro normalize=True normaliza os valores, convertendo-os em percentuais.
  • Multiplicamos por 100 para expressar os percentuais em uma escala de 0 a 100%.

Passo 4: Calcular a renda média por "Sexo" e "Cor"

Agora, vamos calcular a média da renda para cada combinação de "Sexo" e "Cor" usando o método aggfunc='mean' dentro de .crosstab().

renda_media = pd.crosstab(dados.Sexo, dados.Cor, aggfunc='mean', values=dados.Renda)
renda_media.rename(index=sexo, columns=cor, inplace=True)
renda_media

Explicação:

  • Utilizamos a função mean para calcular a média da coluna "Renda" para cada cruzamento entre "Sexo" e "Cor".
  • Assim, podemos analisar qual grupo tem a maior ou menor renda média.

Resultados:

  • Tabela de Frequências: mostra a quantidade de indivíduos em cada grupo.
  • Tabela de Percentuais: ilustra a proporção que cada grupo representa em relação ao total.
  • Renda Média: permite analisar disparidades salariais entre os grupos.
1 resposta

Bom dia Estudante, tudo bem com você?

É ótimo ver sua dedicação e empenho. Obrigado por compartilhar esse resumo detalhado sobre o que foi apresentado na atividade, certamente esse resumo ajudará outros estudantes.

Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!