<jupyter_start><jupyter_text>---**Desafio 1: Plotar as médias, medianas e moda nas notas de LC e MT (procurar linha vertical no matplotlib) Desafio 2: Criar a matriz diagonal de correlação entre notas Desafio 3: Filtrar as notas do seu estado e refazer as análises da aula, verificando se são semelhantes ao geral. Desafio 4: O que causa a correlação de MT e LC?** ---<jupyter_code>import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
import numpy as np

dados = pd.read_csv("https://github.com/alura-cursos/imersao-dados-2-2020/blob/master/MICRODADOS_ENEM_2019_SAMPLE_43278.csv?raw=true")<jupyter_output><empty_output><jupyter_text>**Tabela Geral**<jupyter_code>dados.head()
dados.shape
dados.columns.values<jupyter_output><empty_output><jupyter_text>**Variáveis e Funções**<jupyter_code>provas = ["NU_NOTA_CN", "NU_NOTA_CH", "NU_NOTA_MT", "NU_NOTA_LC", "NU_NOTA_REDACAO"]
alunos_menor_quatorze = dados.query("NU_IDADE <= 14")
renda_ordenada = dados["Q006"].unique()
renda_ordenada.sort()
dados["NU_NOTA_TOTAL"] = dados[provas].sum(axis = 1)
provas.append("NU_NOTA_TOTAL")
dados_sem_notas_zero = dados.query("NU_NOTA_TOTAL != 0")
correlacao = dados_sem_notas_zero[provas].corr()
dados_sp = dados_sem_notas_zero.query("CO_UF_RESIDENCIA == 35")
provas_sp = dados_sem_notas_zero.query("CO_UF_RESIDENCIA == 35")[provas]
correlacao_sp = provas_sp.corr()
media_mt = float("{:.2f}".format(dados_sem_notas_zero["NU_NOTA_MT"].mean()))
mediana_mt = dados_sem_notas_zero["NU_NOTA_MT"].median()
moda_mt = dados_sem_notas_zero["NU_NOTA_MT"].median()
media_lc = float("{:.2f}".format(dados_sem_notas_zero["NU_NOTA_LC"].mean()))
mediana_lc = dados_sem_notas_zero["NU_NOTA_LC"].median()
moda_lc = dados_sem_notas_zero["NU_NOTA_LC"].median()<jupyter_output><empty_output><jupyter_text>**Desafio 1 - Plotar as médias, medianas e moda nas notas de LC e MT**<jupyter_code>plt.figure(figsize=(15,10))
plt.suptitle("Análise da Dispersão das Notas de MT e LC")

plt.subplot(2,1,1)
sns.histplot(dados_sem_notas_zero, x = "NU_NOTA_MT")
plt.axvline(dados_sem_notas_zero["NU_NOTA_MT"].mean(), color='black', linestyle='dashed', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_MT"].median(), color='orange', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_MT"].mode()[0], color='red', linewidth=2)
plt.xlim((300, 800))
plt.ylabel("Participantes")
plt.xlabel("Nota")
plt.legend(['Média', 'Mediana', 'Moda'])
plt.title("MT")
plt.annotate(moda_mt, xy=(420, 2400), xytext=(350, 2200), arrowprops=dict(facecolor='red'))
plt.annotate(mediana_mt, xy=(505, 2000), xytext=(550, 2200), arrowprops=dict(facecolor='orange'))
plt.annotate(media_mt, xy=(530, 1800), xytext=(570, 1900), arrowprops=dict(facecolor='black'))

plt.subplot(2,1,2)
sns.histplot(dados_sem_notas_zero, x = "NU_NOTA_LC")
plt.axvline(dados_sem_notas_zero["NU_NOTA_LC"].mean(), color='black', linestyle='dashed', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_LC"].median(), color='orange', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_LC"].mode()[0], color='red', linewidth=2)
plt.xlim((300, 800))
plt.ylabel("Participantes")
plt.xlabel("Nota")
plt.legend(['Média', 'Mediana', 'Moda'])
plt.title("LC")
plt.annotate(moda_lc, xy=(530, 2200), xytext=(600, 2200), arrowprops=dict(facecolor='red'))
plt.annotate(mediana_lc, xy=(527, 2000), xytext=(600, 1800), arrowprops=dict(facecolor='orange'))
plt.annotate(media_lc, xy=(522, 1800), xytext=(600, 1500), arrowprops=dict(facecolor='black'))<jupyter_output><empty_output><jupyter_text>**Desafio 2 -  Criar a matriz diagonal de correlação entre notas**<jupyter_code>mask = np.triu(np.ones_like(correlacao, dtype=int))
sns.heatmap(correlacao, mask=mask, cmap="Blues", center=0, annot=True)<jupyter_output><empty_output><jupyter_text>**Desafio 3 - Filtrar as notas do seu estado e refazer as análises da aula, verificando se são semelhantes ao geral.**<jupyter_code>plt.figure(figsize=(20,12))
plt.suptitle("Análise das Notas de Matemática de SP contra do País")

plt.subplot(2,1,1)
sns.histplot(dados_sem_notas_zero, x = "NU_NOTA_MT")
plt.axvline(dados_sem_notas_zero["NU_NOTA_MT"].mean(), color='black', linestyle='dashed', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_MT"].median(), color='orange', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_MT"].mode()[0], color='red', linewidth=2)
plt.xlim((300, 1050))
plt.ylabel("Participantes")
plt.xlabel("Nota")
plt.legend(['Média', 'Mediana', 'Moda'])
plt.title("País")

plt.subplot(2,1,2)
sns.histplot(dados_sp, x = "NU_NOTA_MT")
plt.axvline(dados_sp["NU_NOTA_MT"].mean(), color='black', linestyle='dashed', linewidth=2)
plt.axvline(dados_sp["NU_NOTA_MT"].median(), color='orange', linewidth=2)
plt.axvline(dados_sp["NU_NOTA_MT"].mode()[0], color='red', linewidth=2)
plt.xlim((300, 1050))
plt.ylabel("Participantes")
plt.xlabel("Nota")
plt.legend(['Média', 'Mediana', 'Moda'])
plt.title("SP")<jupyter_output><empty_output><jupyter_text>SP demonstra moda, mediana e média maiores que comparadas a todo o país. A mediana mais afastada da média no país mostra também que a concentração de notas altas é menor do que em SP, que tem média e mediana mais próximas.<jupyter_code>plt.figure(figsize=(20,12))
plt.suptitle("Análise das Notas de Linguagens e Códigos de SP contra do País")

plt.subplot(2,1,1)
sns.histplot(dados_sem_notas_zero, x = "NU_NOTA_LC")
plt.axvline(dados_sem_notas_zero["NU_NOTA_LC"].mean(), color='black', linestyle='dashed', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_LC"].median(), color='orange', linewidth=2)
plt.axvline(dados_sem_notas_zero["NU_NOTA_LC"].mode()[0], color='red', linewidth=2)
plt.xlim((300,800))
plt.ylabel("Participantes")
plt.xlabel("Nota")
plt.legend(['Média', 'Mediana', 'Moda'])
plt.title("País")

plt.subplot(2,1,2)
sns.histplot(dados_sp, x = "NU_NOTA_MT")
plt.axvline(dados_sp["NU_NOTA_LC"].mean(), color='black', linestyle='dashed', linewidth=2)
plt.axvline(dados_sp["NU_NOTA_LC"].median(), color='orange', linewidth=2)
plt.axvline(dados_sp["NU_NOTA_LC"].mode()[0], color='red', linewidth=2)
plt.xlim((300, 800))
plt.ylabel("Participantes")
plt.xlabel("Nota")
plt.legend(['Média', 'Mediana', 'Moda'])
plt.title("SP")<jupyter_output><empty_output><jupyter_text>O mesmo caso de matemática se aplica, com um adicional de que o país tem ocorrências de notas abaixo de 350 enquanto SP não.<jupyter_code>plt.figure(figsize=(20,12))
plt.suptitle("Análise da Importância da Internet nas Notas de SP contra do País")

plt.subplot(2,2,1)
sns.histplot(dados_sem_notas_zero, x = "NU_NOTA_TOTAL", hue="Q025", kde=True)
plt.legend(['Sem', 'Com'])
plt.title("País")

plt.subplot(2,2,2)
sns.histplot(dados_sp, x = "NU_NOTA_TOTAL", hue="Q025", kde=True)
plt.legend(['Sem', 'Com'])
plt.title("SP")

plt.subplot(2,2,3)
sns.histplot(dados_sem_notas_zero, x = "NU_NOTA_TOTAL", hue="Q025", kde=True, stat="density", cumulative=True)
plt.legend(['Sem', 'Com'])

plt.subplot(2,2,4)
sns.histplot(dados_sp, x = "NU_NOTA_TOTAL", hue="Q025", kde=True, stat="density", cumulative=True)
plt.legend(['Sem', 'Com'])<jupyter_output><empty_output><jupyter_text>Cerca de 10% das pessoas que realizaram a prova em SP não possuiam internet em casa. Esse número cresce para 20% em todo o país. Até aqui as informações relatam um desenvolvimento social mais avançado em SP comparado ao resto do páis, com notas melhores e menor densidade de pessoas sem acesso a internet.<jupyter_code>plt.figure(figsize=(20, 20))
plt.suptitle("Análise da Correlação das Notas de Matemática e Ling. Códigods de SP contra do País")

plt.subplot(2,2,1)
sns.scatterplot(data = dados_sem_notas_zero, x="NU_NOTA_MT", y="NU_NOTA_LC")
plt.xlim((0, 1000))
plt.ylim((0, 850))
plt.title("País")

plt.subplot(2,2,2)
sns.scatterplot(data = dados_sp, x="NU_NOTA_MT", y="NU_NOTA_LC")
plt.xlim((0, 1000))
plt.ylim((0, 850))
plt.title("SP")<jupyter_output><empty_output><jupyter_text>O Scatterplot mostra pontos mais agrupados no estado de SP, indicando que a correlação entre notas no estado é maior do que no país. Nesse caso porém imagino que o tamanho da amostra possa atrapalhar a análise. Teriamos que ter uma amostra com a mesma população.<jupyter_code>plt.figure(figsize=(15,10))
plt.suptitle("Análise da Correlação das Notas Totais de SP contra do País")
plt.subplots_adjust(wspace=0.4)

plt.subplot(2,2,1)
mask = np.triu(np.ones_like(correlacao, dtype=int))
sns.heatmap(correlacao, mask=mask, cmap="Blues", center=0, annot=True)
plt.title("País")

plt.subplot(2,2,2)
mask = np.triu(np.ones_like(correlacao_sp, dtype=int))
sns.heatmap(correlacao_sp, mask=mask, cmap="Reds", center=0, annot=True)
plt.title("SP")<jupyter_output><empty_output><jupyter_text>Confirmando que a correlação entre notas é um pouco maior em SP. Julgando pelo que vimos nos outros gráficos é o esperado. Igualar a população das amostras nos daria uma análise mais confiável.  **Desafio 4 - O que causa a correlação de MT e LC?**<jupyter_code>mask = np.triu(np.ones_like(correlacao, dtype=int))
sns.heatmap(correlacao, mask=mask, cmap="Greens", center=0, annot=True)<jupyter_output><empty_output><jupyter_text>A correlação MT-LC é a mais próxima de 0 de todas, se excluirmos redação que possui um método de avaliação completamente diferente das demais. Talvez não por coincidência a correlação de matématica se mantém mais fraca com as outras matérias do que das outras entre si. Porém, matemática possui a relação mais alta com a nota total (empatada com ciências naturais). Pode inidicar uma preocupação maior dos estudantes com o conteúdo de matemática para a prova, ou estar relacionado a teoria de que a melhora no raciocínio lógico provido pela estudo da matemática aumenta o desempenho nas outras áreas.<jupyter_code><jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1513191664100195, 'fraction_numerical': 0.02987372959655066, 'mean_word_length': 8.138836772983115, 'pattern_counts': {'":': 0, '<': 50, '<?xml version=': 0, '>': 49, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '12', 'dir': 'jupyter-structured-clean-dedup', 'id': '460961', 'license': 'MIT', 'n_tokens_mistral': 4305, 'n_tokens_neox': 3943, 'n_words': 801, 'path': 'Desafios_Aula03-GuilhermePirani.ipynb', 'repo_name': 'guilhermepirani/Imersao_Dados_2', 'size': '9741'}