introdução a revisão

Neste encontro vamos carregar a base de dados , dar uma olhada na base de dados, corrigir os problemas e demonstrar resultados.

importação

para importar vamos usar a função read_excel

library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
QE <- read_excel("C:/Users/14086606798/Desktop/Base_de_dados-master/Questionario_Estresse.xls")
head(QE)
## # A tibble: 6 × 10
##   Aluno Turma Mora_pais    RJ Namorado_a Trabalha Desempenho Estresse Créditos
##   <dbl> <dbl>     <dbl> <dbl>      <dbl>    <dbl>      <dbl>    <dbl>    <dbl>
## 1     1     1         2     2          2        2       8.89       23       27
## 2     2     1         1     1          2        2       8.8        24       28
## 3     3     1         2     2          2        2       8          25       25
## 4     4     1         2     2          1        1       8.8        38       21
## 5     5     1         2     2          2        1       8.9        41       18
## 6     6     1         2     2          1        1       8.1        25       29
## # ℹ 1 more variable: Horas_estudo <dbl>
library(readxl)
BasesEstados <- read_excel("C:/Users/14086606798/Desktop/Base_de_dados-master/BasesEstados.xlsx")
View(BasesEstados)

olhar a base de dados

aqui vamos usar as funçoes summery, view e str para olhar a base de dados

summary(QE)
##      Aluno          Turma         Mora_pais           RJ          Namorado_a   
##  Min.   : 1.0   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:24.5   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :48.0   Median :2.000   Median :2.000   Median :2.000   Median :2.000  
##  Mean   :48.0   Mean   :2.074   Mean   :1.537   Mean   :1.653   Mean   :1.505  
##  3rd Qu.:71.5   3rd Qu.:3.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :95.0   Max.   :3.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##                                                                                
##     Trabalha       Desempenho       Estresse        Créditos    
##  Min.   :1.000   Min.   :5.820   Min.   :12.00   Min.   :15.00  
##  1st Qu.:1.000   1st Qu.:8.500   1st Qu.:22.50   1st Qu.:23.00  
##  Median :2.000   Median :8.700   Median :27.00   Median :24.00  
##  Mean   :1.621   Mean   :8.594   Mean   :27.82   Mean   :24.95  
##  3rd Qu.:2.000   3rd Qu.:9.050   3rd Qu.:33.00   3rd Qu.:27.00  
##  Max.   :2.000   Max.   :9.700   Max.   :44.00   Max.   :49.00  
##                                                  NA's   :1      
##   Horas_estudo  
##  Min.   :19.00  
##  1st Qu.:25.00  
##  Median :30.00  
##  Mean   :30.73  
##  3rd Qu.:35.00  
##  Max.   :60.00  
## 
str(QE)
## tibble [95 × 10] (S3: tbl_df/tbl/data.frame)
##  $ Aluno       : num [1:95] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Turma       : num [1:95] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Mora_pais   : num [1:95] 2 1 2 2 2 2 2 1 1 1 ...
##  $ RJ          : num [1:95] 2 1 2 2 2 2 2 1 1 1 ...
##  $ Namorado_a  : num [1:95] 2 2 2 1 2 1 2 1 2 2 ...
##  $ Trabalha    : num [1:95] 2 2 2 1 1 1 2 1 1 1 ...
##  $ Desempenho  : num [1:95] 8.89 8.8 8 8.8 8.9 8.1 9.2 8.5 8.7 8.3 ...
##  $ Estresse    : num [1:95] 23 24 25 38 41 25 41 20 26 36 ...
##  $ Créditos    : num [1:95] 27 28 25 21 18 29 26 24 20 49 ...
##  $ Horas_estudo: num [1:95] 27 28 25 30 20 32 25 25 25 59 ...

transformção da base de dados

tudo que tiver 1 e 2 vai virar “sim ou”não”

a turma 1,2 e 3 devem virar “A” , “B’ e”C”

#limpeza de dados

QE$Trabalha = ifelse(QE$Trabalha==1, "sim", "nao")
QE$Mora_pais = ifelse(QE$Mora_pais==1, "sim", "nao") 
QE$RJ = ifelse(QE$RJ==1, "sim", "nao")
QE$Namorado_a = ifelse(QE$Namorado_a==1,"sim", "nao")

QE$Turma = ifelse(QE$Turma==1,"turma A",
                  ifelse(QE$Turma==2, "turma B", "Turma C"))

pergunta - Será que o problema foi resolvido

summary(QE)
##      Aluno         Turma            Mora_pais              RJ           
##  Min.   : 1.0   Length:95          Length:95          Length:95         
##  1st Qu.:24.5   Class :character   Class :character   Class :character  
##  Median :48.0   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :48.0                                                           
##  3rd Qu.:71.5                                                           
##  Max.   :95.0                                                           
##                                                                         
##   Namorado_a          Trabalha           Desempenho       Estresse    
##  Length:95          Length:95          Min.   :5.820   Min.   :12.00  
##  Class :character   Class :character   1st Qu.:8.500   1st Qu.:22.50  
##  Mode  :character   Mode  :character   Median :8.700   Median :27.00  
##                                        Mean   :8.594   Mean   :27.82  
##                                        3rd Qu.:9.050   3rd Qu.:33.00  
##                                        Max.   :9.700   Max.   :44.00  
##                                                                       
##     Créditos      Horas_estudo  
##  Min.   :15.00   Min.   :19.00  
##  1st Qu.:23.00   1st Qu.:25.00  
##  Median :24.00   Median :30.00  
##  Mean   :24.95   Mean   :30.73  
##  3rd Qu.:27.00   3rd Qu.:35.00  
##  Max.   :49.00   Max.   :60.00  
##  NA's   :1
head(QE)
## # A tibble: 6 × 10
##   Aluno Turma   Mora_pais RJ    Namorado_a Trabalha Desempenho Estresse Créditos
##   <dbl> <chr>   <chr>     <chr> <chr>      <chr>         <dbl>    <dbl>    <dbl>
## 1     1 turma A nao       nao   nao        nao            8.89       23       27
## 2     2 turma A sim       sim   nao        nao            8.8        24       28
## 3     3 turma A nao       nao   nao        nao            8          25       25
## 4     4 turma A nao       nao   sim        sim            8.8        38       21
## 5     5 turma A nao       nao   nao        sim            8.9        41       18
## 6     6 turma A nao       nao   sim        sim            8.1        25       29
## # ℹ 1 more variable: Horas_estudo <dbl>
str(QE)
## tibble [95 × 10] (S3: tbl_df/tbl/data.frame)
##  $ Aluno       : num [1:95] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Turma       : chr [1:95] "turma A" "turma A" "turma A" "turma A" ...
##  $ Mora_pais   : chr [1:95] "nao" "sim" "nao" "nao" ...
##  $ RJ          : chr [1:95] "nao" "sim" "nao" "nao" ...
##  $ Namorado_a  : chr [1:95] "nao" "nao" "nao" "sim" ...
##  $ Trabalha    : chr [1:95] "nao" "nao" "nao" "sim" ...
##  $ Desempenho  : num [1:95] 8.89 8.8 8 8.8 8.9 8.1 9.2 8.5 8.7 8.3 ...
##  $ Estresse    : num [1:95] 23 24 25 38 41 25 41 20 26 36 ...
##  $ Créditos    : num [1:95] 27 28 25 21 18 29 26 24 20 49 ...
##  $ Horas_estudo: num [1:95] 27 28 25 30 20 32 25 25 25 59 ...

questões

quem trabalha tem um desempenho pior? quem namora tem um desmpenho pior? quem mora com os pais tem um desempenho melhor?

A turma b possui um melhor dempenho melhor que as outras turmas?

desenho de pesquisa

variavel explicada

desempenho do estudante

variavel explicativas

trabalha, namora, mora com os pais e turma

analise de dados

média por grupos. vamos fazer o desempenho medio de quem trabalha e de quem não trabalha.

library(dplyr) # para criar estatisticas
library(flextable) # para criar as tabelas no rmarkdowmn


#janitor::tabyl(Trabalha, Desempenho) %>%
#  adorn_percentages("row") %>%
#  adorn_pct_formatting(digits = 2) %>%
#  summarise(média = mean(Desempenho),
#            desvio_padrao = sd(Desempenho)) %<%
#  adorn_ns %>% flextable() %>% theme_zebra()


QE %>% select(Trabalha, Desempenho) %>% 
  group_by(Trabalha) %>% 
  summarise(media = mean(Desempenho),
            desvio_padrao = sd(Desempenho)) %>%
  flextable() %>% theme_tron()

Trabalha

media

desvio_padrao

nao

8.626441

0.698167

sim

8.540278

0.895511

quem trabalha tem nota 8.5 quem trabalha tem nota 8.6

as notas não interferem na nota do estudante. a diferença é de 0.1.

  1. recomendamos permitir o estudante a trabalhar, pois o trabalho não atrapalha o desempenho,
  2. O namoro não afeta o desenmpenho.

importar a base de dados de estados

#QE$Trabalha = ifelse(QE$Trabalha==1, "sim", "nao")

#QE$Mora_pais = ifelse(QE$Mora_pais==1, "sim", "nao") 

#QE$RJ = ifelse(QE$RJ==1, "sim", "nao")

#QE$Namorado_a = ifelse(QE$Namorado_a==1,"sim", "nao")

#QE$Turma = ifelse(QE$Turma==1,"turma A",
#                  ifelse(QE$Turma==2, "turma B", "Turma C"))

library(dplyr)

library(flextable)

QE %>% group_by(Trabalha) %>% summarise(media=mean(Horas_estudo),
                                       desvio_padrao=sd(Horas_estudo))
## # A tibble: 2 × 3
##   Trabalha media desvio_padrao
##   <chr>    <dbl>         <dbl>
## 1 nao       31.6          6.93
## 2 sim       29.4          7.72
summary(QE$Horas_estudo)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   19.00   25.00   30.00   30.73   35.00   60.00

#boxplot é uma analise grafica

boxplot(QE$Horas_estudo ~ QE$Trabalha,
        col = c ("red","blue"),
        main = "grafico 1 - boxplot das horas de estudo por trabalho") #fazendo um box plot e o til representa por cor 

boxplot(QE$Desempenho ~ QE$Trabalha,
        col = c ("tan","salmon"),
        main = "grafico 1 - boxplot por desempenho por trabalho") #fazendo um box plot e o til representa por cor 

boxplot(QE$Desempenho ~ QE$Turma,
        col = c ("tan","salmon", "purple"),
        main = "grafico 1 - boxplot por desempenho de turma") #fazendo um box plot e o til representa por cor 

hipotese não foi verificada

duvida – qual turma estuda mais qual turma estuda menos?

dados especiais

library(geobr)
## Warning: package 'geobr' was built under R version 4.2.3
## Loading required namespace: sf
desenho_estados = read_state()
## Using year 2010
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |===                                                                   |   4%
  |                                                                            
  |=====                                                                 |   7%
  |                                                                            
  |========                                                              |  11%
  |                                                                            
  |==========                                                            |  15%
  |                                                                            
  |=============                                                         |  19%
  |                                                                            
  |================                                                      |  22%
  |                                                                            
  |==================                                                    |  26%
  |                                                                            
  |=====================                                                 |  30%
  |                                                                            
  |=======================                                               |  33%
  |                                                                            
  |==========================                                            |  37%
  |                                                                            
  |=============================                                         |  41%
  |                                                                            
  |===============================                                       |  44%
  |                                                                            
  |==================================                                    |  48%
  |                                                                            
  |====================================                                  |  52%
  |                                                                            
  |=======================================                               |  56%
  |                                                                            
  |=========================================                             |  59%
  |                                                                            
  |============================================                          |  63%
  |                                                                            
  |===============================================                       |  67%
  |                                                                            
  |=================================================                     |  70%
  |                                                                            
  |====================================================                  |  74%
  |                                                                            
  |======================================================                |  78%
  |                                                                            
  |=========================================================             |  81%
  |                                                                            
  |============================================================          |  85%
  |                                                                            
  |==============================================================        |  89%
  |                                                                            
  |=================================================================     |  93%
  |                                                                            
  |===================================================================   |  96%
  |                                                                            
  |======================================================================| 100%
class(BasesEstados)
## [1] "tbl_df"     "tbl"        "data.frame"
class(desenho_estados)
## [1] "sf"         "data.frame"
plot(desenho_estados)

class(desenho_estados$code_state)
## [1] "numeric"
class(BasesEstados$Codigo)
## [1] "character"
BasesEstados$Codigo = as.numeric(BasesEstados$Codigo)

library(dplyr)


 
BasesEstados = BasesEstados %>% rename(code_state=Codigo) #troca o nome da coluna

mapa_idh_gini = desenho_estados %>% left_join(BasesEstados)
## Joining with `by = join_by(code_state)`
#vizualize
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(RColorBrewer)

mapa1= ggplot() + 
  geom_sf(data=mapa_idh_gini, aes(fill=IDH))
  scale_fill_distiller(palette = "Reds", direction = 1, name="indice de  Gini",
                     limits = c(0.48,0.66))
## <ScaleContinuous>
##  Range:  
##  Limits: 0.48 -- 0.66
summary(BasesEstados$Mortalidade_infantil)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   11.54   14.15   18.02   18.18   21.05   28.40
mapa2 = ggplot() + 
  geom_sf(data=mapa_idh_gini, aes(fill=Mortalidade_infantil))
  scale_fill_distiller(palette = "Purples", direction = 1, name="mortalidade infantil",
                       limits = c(11,29))
## <ScaleContinuous>
##  Range:  
##  Limits:   11 --   29
summary(BasesEstados$Taxa_analfabetismo)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.31    9.89   12.30   15.31   22.70   30.57
mapa3 = ggplot() + 
  geom_sf(data=mapa_idh_gini, aes(fill=Taxa_analfabetismo))
  scale_fill_distiller(palette = "Reds", direction = 1, name="taxa analfabetismo",
                       limits = c(11,29))
## <ScaleContinuous>
##  Range:  
##  Limits:   11 --   29
display.brewer.all()

#usar no projeto
  
library(plotly)  
## Warning: package 'plotly' was built under R version 4.2.3
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following objects are masked from 'package:flextable':
## 
##     highlight, style
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
ggplotly(mapa1)
ggplotly(mapa2)
ggplotly(mapa3)
#imagem do mapa
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.2.3
mapa_lea = leaflet() %>%
  addTiles() %>%
  addCircles(lng= -43.1688718, lat= -22.954635, popup= "estamos aqui")

mapa_lea
mapa_lea %>% addProviderTiles(providers$Esri.WorldImagery)
mapa_lea %>% addProviderTiles(providers$CartoDB.Positron)