Prya.e.Bruna.Bioestatística.2023.2

Author

Prya e Bruna

Aula 1

Na aula do dia 25/08/2023, vimos como carregar um pacote, ler um banco de dados e excluir conlunas.

OBS: Um asterisco antes e depois de um trecho faz com que ele fique em itálico. Já dois asteriscos, antes e depois de um trecho, faz com que ele fique em negrito.

# Lendo o pacote:
library(titanic)
Warning: package 'titanic' was built under R version 4.2.3
# atribuindo titanic_train para o objeto dados
dados <- titanic_train

# excluindo colunas
dados$PassengerId <- NULL
dados$Ticket <- NULL
dados$Cabin <- NULL
dados$Name <- NULL

Aula 2

Na aula do dia 01/09/2023, aprendemos a ler um banco de dados externo.

library(readxl)
Warning: package 'readxl' was built under R version 4.2.3
dados_titanic <- read_excel("C:/Users/18304197731/Downloads/dados_titanic.xlsx")
dados_titanic$Nome<-NULL

Corrigindo algumas variáveis:

# Vendo a estrutura dos dados
str(dados_titanic)
tibble [891 × 8] (S3: tbl_df/tbl/data.frame)
 $ Sobreviveu       : num [1:891] 0 1 1 1 0 0 0 0 1 1 ...
 $ Classe           : num [1:891] 3 1 3 1 3 3 1 3 3 2 ...
 $ Sexo             : chr [1:891] "male" "female" "female" "female" ...
 $ Idade            : num [1:891] 22 38 26 35 35 NA 54 2 27 14 ...
 $ N_irmaos_conjuges: num [1:891] 1 1 0 1 0 0 0 3 0 1 ...
 $ N_pais_filhos    : num [1:891] 0 0 0 0 0 0 0 1 2 0 ...
 $ Tarifa           : num [1:891] 7.25 71.28 7.92 53.1 8.05 ...
 $ Porto            : chr [1:891] "S" "C" "S" "S" ...
# Transformando para fator
dados_titanic$Sobreviveu<- as.factor(dados_titanic$Sobreviveu)
dados_titanic$Classe<-as.factor(dados_titanic$Classe)
dados_titanic$Porto<-as.factor(dados_titanic$Porto)
dados_titanic$Sexo<-as.factor(dados_titanic$Sexo)

Vamos mudar agora os nomes das categorias das variáveis qualitativas

levels(dados_titanic$Sobreviveu)
[1] "0" "1"
levels(dados_titanic$Sobreviveu) <- c("Não", "Sim")

levels(dados_titanic$Classe)
[1] "1" "2" "3"
levels(dados_titanic$Classe)<- c("Primeira", "Segunda", "Terceira")

levels(dados_titanic$Sexo)
[1] "female" "male"  
levels(dados_titanic$Sexo)<- c("Feminino", "Masculino")

Mudando o nome de uma variável:

colnames(dados_titanic)
[1] "Sobreviveu"        "Classe"            "Sexo"             
[4] "Idade"             "N_irmaos_conjuges" "N_pais_filhos"    
[7] "Tarifa"            "Porto"            
colnames(dados_titanic)[8] <- "Porto_de_Embarque"

Criando uma variável qualitativa a partir de uma quantitativa: Criando a faixa etária

# substiruir {r} por {r, output=F} faz com que a saída do código não apareça no relatório, pois é muito grande.
dados_titanic$Faixa_Etaria<-cut(dados_titanic$Idade,c(0,18,65,200))
dados_titanic$Faixa_Etaria

dados_titanic$Faixa_Etaria
levels(dados_titanic$Faixa_Etaria)<-c("Até 18 anos", "Maior que 18 anos e até 65 anos", "Maior que 65 anos")

Fazendo uma análise descritiva univariada

Qualitativa

Vamos trabalhar com a variável classe econômica. Vamos construir uma tabela de distribuição de frequências. Conclui-se que a maioria dos passageiros pertencia à terceira classe (55,1%) e a minoria à segunda classe (20,7%). Ver figura 1.

library(summarytools) #chamando o pacote
Warning: package 'summarytools' was built under R version 4.2.3
freq(dados_titanic$Classe) #como queremos fazer uma tabela de distribuição de frequência, usamos a função "freq"
Frequencies  
dados_titanic$Classe  
Type: Factor  

                 Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
-------------- ------ --------- -------------- --------- --------------
      Primeira    216     24.24          24.24     24.24          24.24
       Segunda    184     20.65          44.89     20.65          44.89
      Terceira    491     55.11         100.00     55.11         100.00
          <NA>      0                               0.00         100.00
         Total    891    100.00         100.00    100.00         100.00
# % Valid= frequência relativa (porcentagem)
# % Valis cum.= frequencia relativa acumulada (soma das porcenagens)
# diferença entre % Valid e % Total: a % valid considera apenas as pessoas que tem informação; a % total considera os passageiros que não possuem informação (os N/A). Ou seja, só haverá diferença quando houver presença de N/A.

Fazendo um Gráfico de barras para a variável classe economica:

# importante deixar o cursor dentro desse chuck e clicar em addins, clicar em ggplot2 builder, se pedir pra instalar algo instale

library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(dados_titanic) +
 aes(x = Classe) + 
 geom_bar(fill = "#ED73E3") +
 labs(x = "Classe Econômica", 
 y = "Frequência", title = "Figura 1", caption = "Fonte: Autora") +
 theme_minimal() +
 theme(plot.title = element_text(face = "bold.italic", hjust = 0.5))

# CTRL + SHIFT + C= Torna toda a área selecionada como comentário


#Para mudar a ordem das categorias de classe econômica:

# dados_titanic$Classe<-factor(dados_titanic$Classe, levels=c("Terceira", "Segunda", "Primeira"))
# factor(dados_titanic)

#eu não preciso fazer todo o caminho através do Addins para mudar algo do grafico. eu posso alterar apenas ali dentro do codigo que gerou o grafico.

# para mudar a cor, vou no console e escrevo colors(), aparecerá uma lista de cores.
# para saber como é cada cor (pois n da pra saber pelo nome), copie todas as opçoes de cores que apareceu e cole em um arquivo novo, irá aparecer todas os nomes das cores coloridos 

Aula 3

Variável Quantitativa

A idade média dos passageiros foi de 29,70 anos (dp=14,53 anos), com mediana igual a 28 anos. A variável pode ser classificada como assimetrica à direita (positiva) e heterogênea (CV>0,30). Por ser uma variável univariada quantitativa, podemos plotar em histograma, em gráfico de densidade e em boxplot (o gráfico em linha não é recomendado pois a idade nao e algo que varia com o tempo nesse caso).

library(summarytools)#ferramenta pra acessar a "biblioteca" de dados
descr(dados_titanic$Idade)#chamando o pacote $ chamando a variável
Descriptive Statistics  
dados_titanic$Idade  
N: 891  

                     Idade
----------------- --------
             Mean    29.70
          Std.Dev    14.53
              Min     0.42
               Q1    20.00
           Median    28.00
               Q3    38.00
              Max    80.00
              MAD    13.34
              IQR    17.88
               CV     0.49
         Skewness     0.39
      SE.Skewness     0.09
         Kurtosis     0.16
          N.Valid   714.00
        Pct.Valid    80.13

Gráfico de Histograma

library(dplyr)
Warning: package 'dplyr' was built under R version 4.2.3

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(ggplot2)

dados_titanic %>%
 filter(!is.na(Idade)) %>%
 ggplot() +
 aes(x = Idade) +
 geom_histogram(bins = 30L, fill = "#ED73E3") +
 labs(x = "Idade (em anos)", 
 y = "Frequência Absoluta", title = "Distribuição da Variável Idade") +
 theme_gray()

Gráfico de Densidade

Perceba em sua cauda para a direita, ou seja, assimetria positiva.

library(dplyr)
library(ggplot2)

dados_titanic %>%
 filter(!is.na(Idade)) %>%
 ggplot() +
 aes(x = Idade) +
 geom_density(fill = "#ED73E3") +
 labs(x = "Idade (em anos)", 
 y = "Densidade", title = "Figura 3") +
 theme_gray()

library(dplyr)
library(ggplot2)

dados_titanic %>%
 filter(!is.na(Idade)) %>%
 ggplot() +
 aes(y = Idade) +
 geom_boxplot(fill = "#ED73E3", width = 0.35) +
 labs(x = "", 
 y = "Idade (em anos)", title = "Figura 4") +
 theme_gray() + xlim(c(-1,1))

Estatística Descritiva Bivariada

Quali x Quali

Será que existe relação entre a classe econômica e a sobrevivência ao desastre do Titanic? - variável explicativa: classe econômica - variável resposta: sobrevivência A tabela abaixo mostra que, dos passageiros da primeira classe, 37% deles não sobreviveram, sendo este percentual maior na segunda (52,7%) e terceira (75,8%) classes.

library(summarytools)
ctable(dados_titanic$Classe, dados_titanic$Sobreviveu)
Cross-Tabulation, Row Proportions  
Classe * Sobreviveu  
Data Frame: dados_titanic  

---------- ------------ ------------- ------------- --------------
             Sobreviveu           Não           Sim          Total
    Classe                                                        
  Primeira                 80 (37.0%)   136 (63.0%)   216 (100.0%)
   Segunda                 97 (52.7%)    87 (47.3%)   184 (100.0%)
  Terceira                372 (75.8%)   119 (24.2%)   491 (100.0%)
     Total                549 (61.6%)   342 (38.4%)   891 (100.0%)
---------- ------------ ------------- ------------- --------------
library(ggplot2)

ggplot(dados_titanic) +
 aes(x = Classe, fill = Sobreviveu) +
 geom_bar(position = "dodge") +
 scale_fill_brewer(palette = "Set1", 
 direction = 1) +
 labs(x = "Classe econômica", y = "Frequência absoluta", title = "Figura 5: Relação entre Classe econômica e desfecho do passageiro") +
 theme_minimal()

Gráfico de Barras Empilhadas

library(ggplot2)

ggplot(dados_titanic) +
 aes(x = Classe, fill = Sobreviveu) +
 geom_bar(position = "fill") +
 scale_fill_brewer(palette = "Set1", 
 direction = 1) +
 labs(x = "Classe econômica", y = "Frequência relativa", title = "Figura 6: Relação entre classe econômica e desfecho do passageiro") +
 theme_minimal()

Quanti X Quanti

Existe correlação entre o núme3ro de filhos?pais a bordo e a idade do passageiro? Ao analisar o coeficiente de correlação de Spearman, observamos uma correlção fraca e negativa. (rho = -0.25)

library(ggplot2)

ggplot(dados_titanic) +
 aes(x = Idade, y = N_pais_filhos) +
 geom_point(shape = "circle", size = 1.5, 
 colour = "#0C4C8A") +
 geom_smooth(span = 1L) +
 labs(x = "Idade (anos)", y = "Número de Pais - Filhos", 
 title = "Figura 7: Correlação entre o número de Pais - Filhos e idade dos passageiros") +
 theme_gray()
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Warning: Removed 177 rows containing non-finite values (`stat_smooth()`).
Warning: Removed 177 rows containing missing values (`geom_point()`).

cor(dados_titanic$Idade , dados_titanic$N_pais_filhos , use = "complete.obs" , method = "spearman")
[1] -0.2542121

Quali X Quanti

Existe renlação entre a idade do passageiro e sua sobrevivência? A partir da estatística, podemos observar que ambos os grupos apresentaram medianas iguais a 28 anos (IQR = 18 anos para grupo “Não” e 17 anos para grupo “Sim”). Quanto à assimetria, ambas as distribuiçãos foram assimétriucas positivas. a idade possui distribuição heterogênea em ambos os defechos. Cv > 0.30

library(summarytools)
with(dados_titanic, stby(Idade, Sobreviveu, descr))
Descriptive Statistics  
Idade by Sobreviveu  
Data Frame: dados_titanic  
N: 549  

                       Não      Sim
----------------- -------- --------
             Mean    30.63    28.34
          Std.Dev    14.17    14.95
              Min     1.00     0.42
               Q1    21.00    19.00
           Median    28.00    28.00
               Q3    39.00    36.00
              Max    74.00    80.00
              MAD    11.86    13.34
              IQR    18.00    17.00
               CV     0.46     0.53
         Skewness     0.58     0.18
      SE.Skewness     0.12     0.14
         Kurtosis     0.25    -0.10
          N.Valid   424.00   290.00
        Pct.Valid    77.23    84.80
library(dplyr)
library(ggplot2)

dados_titanic %>%
 filter(!is.na(Idade)) %>%
 ggplot() +
 aes(x = "", y = Idade, fill = Sobreviveu) +
 geom_boxplot() +
 scale_fill_brewer(palette = "Set1", 
 direction = 1) +
 labs(x = " ", y = "Idade (anos)", title = "Figura 8: Distribuição da idade segundo o desfecho dos passageiros ") +
 theme_gray()