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).
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.
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.
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.
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.
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.
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:
O dataset passou a ter 14 colunas apos a criacao das novas variaveis.
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.
datatable(
dados %>% select(Name, Sex, Age, Pclass, Fare, Survived),
rownames = FALSE,
filter = "top",
options = list(pageLength = 10)
)
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.
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).
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.