1. Analise dos Dados

O dataset Titanic contem informacoes sobre os passageiros do naufragio do Titanic em 1912. As colunas principais sao: Survived (sobreviveu ou nao), Pclass (classe do bilhete), Sex (sexo), Age (idade) e Fare (valor da passagem).

Carregando os dados

library(titanic)
dados <- titanic_train
head(dados)
##   PassengerId Survived Pclass
## 1           1        0      3
## 2           2        1      1
## 3           3        1      3
## 4           4        1      1
## 5           5        0      3
## 6           6        0      3
##                                                  Name    Sex Age SibSp Parch
## 1                             Braund, Mr. Owen Harris   male  22     1     0
## 2 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female  38     1     0
## 3                              Heikkinen, Miss. Laina female  26     0     0
## 4        Futrelle, Mrs. Jacques Heath (Lily May Peel) female  35     1     0
## 5                            Allen, Mr. William Henry   male  35     0     0
## 6                                    Moran, Mr. James   male  NA     0     0
##             Ticket    Fare Cabin Embarked
## 1        A/5 21171  7.2500              S
## 2         PC 17599 71.2833   C85        C
## 3 STON/O2. 3101282  7.9250              S
## 4           113803 53.1000  C123        S
## 5           373450  8.0500              S
## 6           330877  8.4583              Q

O dataset possui 891 linhas e 12 colunas.

Estrutura

str(dados)
## 'data.frame':    891 obs. of  12 variables:
##  $ PassengerId: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Survived   : int  0 1 1 1 0 0 0 0 1 1 ...
##  $ Pclass     : int  3 1 3 1 3 3 1 3 3 2 ...
##  $ Name       : chr  "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
##  $ Sex        : chr  "male" "female" "female" "female" ...
##  $ Age        : num  22 38 26 35 35 NA 54 2 27 14 ...
##  $ SibSp      : int  1 1 0 1 0 0 0 3 0 1 ...
##  $ Parch      : int  0 0 0 0 0 0 0 1 2 0 ...
##  $ Ticket     : chr  "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
##  $ Fare       : num  7.25 71.28 7.92 53.1 8.05 ...
##  $ Cabin      : chr  "" "C85" "" "C123" ...
##  $ Embarked   : chr  "S" "C" "S" "S" ...

Sao 891 passageiros registrados, com 12 variaveis cada.

Resumo estatistico

summary(dados[, c("Survived", "Pclass", "Age", "Fare")])
##     Survived          Pclass           Age             Fare       
##  Min.   :0.0000   Min.   :1.000   Min.   : 0.42   Min.   :  0.00  
##  1st Qu.:0.0000   1st Qu.:2.000   1st Qu.:20.12   1st Qu.:  7.91  
##  Median :0.0000   Median :3.000   Median :28.00   Median : 14.45  
##  Mean   :0.3838   Mean   :2.309   Mean   :29.70   Mean   : 32.20  
##  3rd Qu.:1.0000   3rd Qu.:3.000   3rd Qu.:38.00   3rd Qu.: 31.00  
##  Max.   :1.0000   Max.   :3.000   Max.   :80.00   Max.   :512.33  
##                                   NA's   :177

A media de idade e de aproximadamente 29.7 anos. O preco medio das passagens foi de 32.2 libras.

Ordenacao

dados_ordenado <- dados %>% arrange(desc(Fare))
head(dados_ordenado %>% select(Name, Pclass, Fare, Survived), 6)
##                                 Name Pclass     Fare Survived
## 1                   Ward, Miss. Anna      1 512.3292        1
## 2 Cardeza, Mr. Thomas Drake Martinez      1 512.3292        1
## 3             Lesurer, Mr. Gustave J      1 512.3292        1
## 4     Fortune, Mr. Charles Alexander      1 263.0000        0
## 5         Fortune, Miss. Mabel Helen      1 263.0000        1
## 6     Fortune, Miss. Alice Elizabeth      1 263.0000        1

Ordenamos pelos passageiros que pagaram mais caro. A passagem mais cara custou 512.33 libras e pertencia a um passageiro da primeira classe.

Filtragem

sobreviventes <- dados %>% filter(Survived == 1)
nrow(sobreviventes)
## [1] 342

Filtramos apenas os sobreviventes. De 891 passageiros, 342 sobreviveram, o que representa 38.4% do total.

Novas variaveis

dados_novo <- dados %>%
  mutate(
    Faixa_Etaria = case_when(
      Age < 18             ~ "Crianca",
      Age >= 18 & Age < 60 ~ "Adulto",
      Age >= 60            ~ "Idoso",
      TRUE                 ~ "Desconhecido"
    ),
    Classe_Nome = case_when(
      Pclass == 1 ~ "Primeira",
      Pclass == 2 ~ "Segunda",
      Pclass == 3 ~ "Terceira"
    )
  )

head(dados_novo %>% select(Name, Age, Faixa_Etaria, Pclass, Classe_Nome))
##                                                  Name Age Faixa_Etaria Pclass
## 1                             Braund, Mr. Owen Harris  22       Adulto      3
## 2 Cumings, Mrs. John Bradley (Florence Briggs Thayer)  38       Adulto      1
## 3                              Heikkinen, Miss. Laina  26       Adulto      3
## 4        Futrelle, Mrs. Jacques Heath (Lily May Peel)  35       Adulto      1
## 5                            Allen, Mr. William Henry  35       Adulto      3
## 6                                    Moran, Mr. James  NA Desconhecido      3
##   Classe_Nome
## 1    Terceira
## 2    Primeira
## 3    Terceira
## 4    Primeira
## 5    Terceira
## 6    Terceira

Criamos duas novas variaveis:

  • Faixa_Etaria: classifica cada passageiro em Crianca, Adulto ou Idoso.
  • Classe_Nome: substitui o numero da classe pelo nome por extenso.

O dataset passou a ter 14 colunas apos a criacao das novas variaveis.

Grafico

dados_novo %>%
  filter(!is.na(Age)) %>%
  ggplot(aes(x = Classe_Nome, fill = factor(Survived))) +
  geom_bar(position = "dodge") +
  labs(title = "Sobreviventes por Classe",
       x = "Classe", y = "Quantidade",
       fill = "Sobreviveu") +
  scale_fill_manual(values = c("0" = "tomato", "1" = "steelblue"),
                    labels = c("Nao", "Sim")) +
  theme_minimal()

O grafico mostra que passageiros da terceira classe tiveram muito menos sobreviventes em comparacao com a primeira classe.

2. Tabela Interativa

datatable(
  dados %>% select(Name, Sex, Age, Pclass, Fare, Survived),
  rownames = FALSE,
  filter   = "top",
  options  = list(pageLength = 10)
)

3. Equacoes

1. Media aritmetica

\[\bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i\]

Soma todos os valores e divide pelo total \(n\). Usada para calcular a media de idade dos passageiros.


2. Desvio padrao

\[s = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n}(x_i - \bar{x})^2}\]

Mede o quanto os dados se afastam da media. Um desvio alto indica muita variacao, como no preco das passagens do Titanic.


3. Regressao Linear

\[\hat{y} = \beta_0 + \beta_1 x\]

Equacao de uma reta usada para prever \(y\) a partir de \(x\). Por exemplo, prever o preco da passagem a partir da classe.


4. Correlacao de Pearson

\[r = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum(x_i-\bar{x})^2 \cdot \sum(y_i-\bar{y})^2}}\]

Mede a relacao linear entre duas variaveis. Varia de -1 a +1.


5. Teorema de Bayes

\[P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}\]

Calcula a probabilidade de um evento dado outro. Por exemplo, a probabilidade de sobreviver dado que o passageiro e da primeira classe.

4. Figuras

Figura 1

Mostra as etapas de um projeto de ciencia de dados: importar, organizar, transformar, visualizar, modelar e comunicar (Wickham; Grolemund, 2017).


Figura 2

Exemplo de rede neural artificial com camadas de entrada, ocultas e de saida, muito usada em problemas de classificacao como prever sobrevivencia (Hastie; Tibshirani; Friedman, 2009).

5. Referencias

Wickham; Grolemund (2017) ensinam analise de dados completa com R, do inicio ao fim.

Hastie; Tibshirani; Friedman (2009) e uma referencia classica sobre metodos de aprendizado estatistico.

James et al. (2021) apresenta aprendizado estatistico de forma acessivel com exemplos em R.

Bruce; Bruce (2020) aborda estatistica pratica para cientistas de dados com foco em aplicacao.

Kabacoff (2015) e um guia completo e pratico para analise de dados usando R.


BRUCE, Peter; BRUCE, Andrew. Practical Statistics for Data Scientists. [S.l.]: O’Reilly Media, 2020.
HASTIE, Trevor; TIBSHIRANI, Robert; FRIEDMAN, Jerome. The Elements of Statistical Learning. [S.l.]: Springer, 2009.
JAMES, Gareth et al. An Introduction to Statistical Learning. [S.l.]: Springer, 2021.
KABACOFF, Robert. R in Action. [S.l.]: Manning Publications, 2015.
WICKHAM, Hadley; GROLEMUND, Garrett. R for Data Science. [S.l.]: O’Reilly Media, 2017.