<jupyter_start><jupyter_text>Awari - Data Science Projeto Unidade 6 Neste projeto você irá realizar uma análise estatística de um dos dataset mais famosos da comunidade de Data Science, o dataset **Titanic**.Esse dataset contém dados de 891 passageiros do Titanic. A análise vai ser guiada pelas perguntas apresentadas a seguir.O dataset disponibilizado tem quase a mesma estrutura de uma planilha do excel, com linhas e colunas. O tipo do arquivo é o CSV ou Comma-separated values, que seriam Valores Separados por Vírgula, porque é exatamente assim que ele funciona, você distingue que o valor pertence a diferentes colunas porque a vírgula está ali separando uns dos outros.O objetivo deste projeto é você aplicar os principais conceitos que você aprendeu na unidade 6.Todo o projeto deve ser executado neste Jupyter Notebook. Por fim, se desejar, revise as respostas com o seu mentor.  Descrição dos dadosO dataset possui 891 registros (linhas) e 12 atributos (colunas).Abaixo estão as descrições das colunas do nosso Dataset:* passengerid = ID do passageiro do navio (código primário).* survived = Se sobreviveu ao naufrágio estará como 1 e caso esteja com 0 (zero) não sobreviveu.* pclass = Tipo de classe de passagem (Do 1 ao 3), sendo 1 a melhor classe e 3 a pior classe.* name = Nome do passageiro* sex = Gênero do passageiro, sendo masculino e feminino.* age = Idade do passageiro na data da ocorrência do naufrágio.* sibsp = Número de irmãos / cônjuges a bordo.* parch = Número de pais / filhos a bordo.* ticket = Código do ticket.* fare = Valor da passagem.* cabin = Código de identificação da Cabine.* embarked = Local ondem o passageiro embarcou no navio.  Carregando os dados<jupyter_code>import sys
import pandas as pd


# Carregando os dados
# O arquivo “titanic.csv” deve estar salvo na mesma pasta do seu código Python
dados = pd.read_csv("titanic.csv")

# Exibe o número de linhas e colunas
print(dados.shape)

# Exibe as 10 primeiras linhas
dados.head()<jupyter_output>(891, 12)<jupyter_text>1. Qual foi a porcentagem dos passageiros sobreviventes?Dica: use a função value_counts() do pandas com o parâmetro _normalize_<jupyter_code>dados['Survived'].value_counts(normalize=True)*100<jupyter_output><empty_output><jupyter_text>38,38% dos passageiros sobreviveu ao Titanic  2. Qual era a faixa etária dos passageiros que estavam no Titanic?Dica: usa a função _describe()_ do pandas<jupyter_code>dados['Age'].describe()<jupyter_output><empty_output><jupyter_text>Na média, a faixa etária era de 29 anos. 75% dos passageiros tinham até 38 anos. E o passageiro mais velho tinha 80 anos.  3. Qual porcentagem de homens e mulheres sobreviventes?<jupyter_code>dados[dados['Survived']==1]['Sex'].value_counts(normalize=True)*100<jupyter_output><empty_output><jupyter_text>68% dos sobreviventes eram mulheres e 31% homens  4. Qual a média e desvio padrão dos homens sobreviventes?<jupyter_code>dados[dados['Survived']==1][dados['Sex']=='male']['Age'].describe()<jupyter_output>C:\Users\epfel\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  """Entry point for launching an IPython kernel.<jupyter_text>A idade média dos homens sobreviventes era de 27 anos, com desvio padrão de 16,50.  5. Repita os cálculos do item 4 utilizando uma amostra aleatória de 100 passageiros e calculo o erro da média e desvio padrão.<jupyter_code>from random import sample
amostra = sample(range(891), k=100)
dfamostra = dados.iloc[amostra]
dfamostra['Age'].describe()<jupyter_output><empty_output><jupyter_text>Os dados são muito parecidos. A idade média segue sendo de 27 anos, e o desvio padrão tem uma queda para 14,30.  6. Quais os tipos de variáveis nas colunas survived, pclass, name, sex e age?[Dica ...]( Referência: http://professorguru.com.br/estatistica/introdu%C3%A7%C3%A3o%20%C3%A0%20estat%C3%ADstica/tipos%20de%20vari%C3%A1veis%20estat%C3%ADsticas.html) survived = quantitativa discreta (Binária)pclass = qualitativa ordinalname = qualitativa nominalsex = qualitativa nominalage = quantitativa continua<jupyter_code><jupyter_output><empty_output><jupyter_text>7. Qual o tipo de classe de passagem mais frequente nos dados?<jupyter_code>dados['Pclass'].value_counts()<jupyter_output><empty_output><jupyter_text>A terceira classe é a classe mais frequênte, o que já era esperado. No entanto, pudemos constatar também que a segunda classe é a mais rara no dataset.  8. Qual a média e desvio padrão do valor das passagens?<jupyter_code>dados['Fare'].describe()<jupyter_output><empty_output><jupyter_text>Média de 32.20 e desvio padrão de 49,69.  9. A partir dos dados do dataset calcule:* a) Qual a probabilidade de um homem com idade entre 15 e 30 anos ter sobrevivido?* b) Qual a probabilidade de uma mulher de mais de 40 anos e um homem de mais de 50 anos terem sobrevivido?* c) Calcule as probabilidade de sobrevivência de cada uma das 3 classes (1a, 2a e 3a classe).<jupyter_code>dados[(dados['Sex']=='male') & (dados['Age']>=15) & (dados['Age']<=30)].shape[0]
dados[(dados['Sex']=='male')& (dados['Age']>=15) & (dados['Age']<=30) & (dados['Survived']==1)].shape[0]
prob1 = 31/212*100
print('A probabilidade de um homem com idade entre 15 e 30 anos ter sobrevivido é de: {:.2f}%'.format(prob1))
dados[(dados['Sex']=='female')& (dados['Age']>40)].shape[0]
dados[(dados['Sex']=='female')& (dados['Age']>40) & (dados['Survived']==1)].shape[0]
prob2 = 37/48*100
print('A probabilidade de uma mulher de mais de 40 anos ter sobrevivido é de: {:.2f}%'.format(prob2))
dados[(dados['Sex']=='male')& (dados['Age']>50)].shape[0]
dados[(dados['Sex']=='male')& (dados['Age']>50) & (dados['Survived']==1)].shape[0]
prob3 = 6/47
print('A probabilidade de um homem de mais de 50 anos ter sobrevivido é de: {:.2f}%'.format(prob3))<jupyter_output>A probabilidade de um homem de mais de 50 anos ter sobrevivido é de: 0.13%<jupyter_text>Considerando que se tratam de eventos independentes, a chance de os dois terem sobrevividos juntos é de 0.0231%<jupyter_code>primeira = dados[dados['Pclass']==1].shape[0]
segunda = dados[dados['Pclass']==2].shape[0]
terceira = dados[dados['Pclass']==3].shape[0]
sobreviventes1 = dados[(dados['Pclass']==1) & (dados['Survived']==1)].shape[0]
sobreviventes2 = dados[(dados['Pclass']==2) & (dados['Survived']==1)].shape[0]
sobreviventes3 = dados[(dados['Pclass']==3) & (dados['Survived']==1)].shape[0]

print('Taxa de sobreviventes na primeira classe:', sobreviventes1/primeira)
print('Taxa de sobreviventes na segunda classe:', sobreviventes2/segunda)
print('Taxa de sobreviventes na terceira classe:', sobreviventes3/terceira)<jupyter_output><empty_output><jupyter_text>10. Existe correlação entre a idade e as chances de sobreviver? Crie um gráfico de pontos (scatter plot) relacionando essas variáveis.<jupyter_code>import matplotlib.pyplot as plt
import seaborn as sns 

%matplotlib inline
taxas = []
for x in dados['Age']:
    total = dados[dados['Age']==x].shape[0]
    vivos = dados[(dados['Age']==x) & (dados['Survived']==1)].shape[0]
    if total != 0:
        taxa = vivos/total
    else:
        taxa = 0 
    taxas.append(taxa)
dados['survivor_rate'] = pd.Series(taxas)
sns.scatterplot(x='Age', y='survivor_rate', data=dados)<jupyter_output><empty_output><jupyter_text>Não se trata de uma relação linear, nesse caso, apenas a variavel idade não explica a taxa de sobrevivência.  11. Existem outliers na coluna age? Quais? Crie um boxplot para esse atributo.<jupyter_code>sns.boxplot(x='Age', data=dados)<jupyter_output><empty_output><jupyter_text>Sim, existem. O dataset contém valores acima de 65 anos, que para essa distribuição é um outlier.  12. Cria um histograma para os atributos age, pclass e fare. Quais informações você pode extrair desses gráficos?<jupyter_code>age = dados['Age'].fillna(0)
pclass = dados['Pclass'].fillna(0)
fare = dados['Fare'].fillna(dados['Fare'].mean())
sns.distplot(age)
sns.distplot(pclass, bins=3, kde=False)
sns.distplot(fare)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11537020851542015, 'fraction_numerical': 0.02834311399675365, 'mean_word_length': 6.101063829787234, 'pattern_counts': {'":': 0, '<': 56, '<?xml version=': 0, '>': 60, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '14', 'dir': 'jupyter-structured-clean-dedup', 'id': '92713', 'license': 'MIT', 'n_tokens_mistral': 3134, 'n_tokens_neox': 2918, 'n_words': 884, 'path': 'Projeto_unidade_6_estatistica.ipynb', 'repo_name': 'felipemoreia/Data-Science-com-Python---Awari', 'size': '8009'}