O objetivo deste estudo é analisar os dados sobre a violência contra a mulher no Brasil em 2015.

Os dados foram coletados do Instituto DataSenado. Eles trazem uma série de perguntas relacionadas à percepção de desrespeito, sensação de proteção, experiências de violência e de denúncias, perfil dos agressores, entre outros. O levantamento foi realizado por telefone, a partir de amostra probabilística de mulheres com acesso a telefone fixo.

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('dados_corrigido_2015.csv')
df.shape
## (1102, 71)

O conjunto de dados tem 1.102 observações e 71 colunas.

df.head()
##     ANO  UF  REGIAO  SEXO  IDADE  ESC  ...  P28  P29  P30  P31  LIXO             PESO
## 0  2015  11       3     2      1    2  ...                       NaN  947233504124293
## 1  2015  11       3     2      2    1  ...                       NaN  947233504124293
## 2  2015  11       3     2      2    3  ...                       NaN  947233504124293
## 3  2015  11       3     2      3    2  ...                       NaN  947233504124293
## 4  2015  11       3     2      3    2  ...                       NaN  947233504124293
## 
## [5 rows x 71 columns]

Somente serão analisados 7 variáveis, portanto as outras serão removidas.

Variável Descrição Valores
UF Código da UF de ocorrêncio do óbito(IBGE) Ver IBGE
SEXO Sexo 0: Ignorado; 1: Masculino; 2: Feminino
IDADE Idade (em categorias) 1: 16 a 19 anos; 2: 20 a 29 anos; 3: 30 a 39 anos; 4: 40 a 49 anos; 5: 50 a 59 anos; 6: 60 anos ou mais; 99: NS/NR
ESC Escolaridade (nível de instrução) 1: Até Ensino Fundamental completo; 2: Ensino Médio; 3: Ensino Superior; 99: NS/NR
RENDA Renda (em salários mínimos) 1: Sem renda;2: Até 2 Salários Mínimos;3: Mais de 2 a 5 S.M.;4: Mais de 5 a 10 S.M.;5: Mais de 10 S.M.;99: NS/NR
P19 Você já foi vitima ou sofreu algum tipo de violência doméstica ou familiar provocada por um homem? 1: Sim; 2: Não; 3: NS/NR
colunas_apagar = ['P04', 'P05', 'P06', 'P071', 'P072', 'P073', 'P074', 'P08', 'P091', 'P092', 'P093', 'P094', 'P095', 'P096', 'P097', 'P098', 'P099', 'P10', 'P11', 'P12', 'P13', 'P14', 'P15', 'P16', 'P17', 'P181', 'P182', 'P183', 'P184', 'P185', 'P186', 'P187', 'P2001', 'P2002', 'P2003', 'P2004', 'P2005', 'P2006', 'P2007', 'P2008', 'P2009', 'P2010', 'P2011', 'P211', 'P212', 'P213', 'P214', 'P215', 'P216', 'P217', 'P22', 'P23', 'P24', 'P25', 'P26', 'P27', 'P28', 'P29', 'P30', 'P31', 'PESO', 'SEXO', 'ANO', 'LIXO']
df = df.drop(colunas_apagar, axis=1)
df.head()
##    UF  REGIAO  IDADE  ESC  RENDA  RACACOR  P19
## 0  11       3      1    2      1        4    2
## 1  11       3      2    1      1        2    2
## 2  11       3      2    3      1        4    2
## 3  11       3      3    2      1        1    2
## 4  11       3      3    2      2        4    2
df["P19"] = df["P19"].astype(str)
value_count = df["P19"].value_counts()
df_contagem = pd.DataFrame({'Valor': value_count.index, 'Contagem': value_count.values})
df_contagem
##   Valor  Contagem
## 0     2       900
## 1     1       201
## 2     3         1
plt.bar(value_count.index, value_count.values, color=['red', 'blue', 'orange'])
plt.xlabel('Categoria (1 - SIM, 2-NÃO)')
plt.ylabel('Contagem')
plt.title('Contagem de mulheres que sofreram violência.')
plt.show()

Podemos perceber que a grande maioria das mulheres que responderam a pesquisa informaram que NÃO sofreram violência. Especificamente, 201 mulheres informaram que sofreram violência e 900 informaram que NÃO sofreram violência.

plt.pie(value_count , labels=value_count.index, autopct='%1.1f%%', startangle=140)
## ([<matplotlib.patches.Wedge object at 0x0000015B7331D810>, <matplotlib.patches.Wedge object at 0x0000015B7331DEA0>, <matplotlib.patches.Wedge object at 0x0000015B7331E530>], [Text(0.32170892572119275, -1.0519046378409576, '2'), Text(-0.3187089080420003, 1.0528174732282305, '1'), Text(-0.8406298428419235, 0.7094656209595804, '3')], [Text(0.1754775958479233, -0.5737661660950677, '81.7%'), Text(-0.1738412225683638, 0.5742640763063075, '18.2%'), Text(-0.4585253688228673, 0.38698124779613474, '0.1%')])
plt.title('Distribuição de Categorias')
plt.axis('equal')  # Deixa o gráfico circular
## (-1.0999999724602407, 1.0999999985158435, -1.0999997792636285, 1.099995425911441)
plt.show()