dados = read_csv(here::here("data/amostra-alunos-comfpcc.csv"))
## Parsed with column specification:
## cols(
##   Timestamp = col_character(),
##   `Quantas horas por noite você dorme DURANTE A SEMANA em média?` = col_double(),
##   `Quantas horas por noite você dorme durante NO FIM DE SEMANA em média?` = col_double(),
##   `Quantas disciplinas você está cursando esse semestre?` = col_double(),
##   `Quantas xícaras de café você tomou ontem?` = col_double(),
##   `Quantas pessoas você segue no github?` = col_double(),
##   `Quantas pessoas seguem você no github?` = col_double(),
##   `Você está dois períodos ou menos de concluir?` = col_character()
## )
dados = dados %>%
    rename(
        sono_semana = `Quantas horas por noite você dorme DURANTE A SEMANA em média?`,
        sono_fds = `Quantas horas por noite você dorme durante NO FIM DE SEMANA em média?`,
        disciplinas = `Quantas disciplinas você está cursando esse semestre?`,
        cafe = `Quantas xícaras de café você tomou ontem?`,
        segue_gh = `Quantas pessoas você segue no github?`,
        seguido_gh = `Quantas pessoas seguem você no github?`,
        quase_concluinte = `Você está dois períodos ou menos de concluir?`
    )

dados = dados %>% 
    mutate(data = lubridate::mdy_hms(Timestamp),
           turma = if_else(data < as.POSIXct("2019-05-24 12:00:00"), 
                           "cdd", 
                           "fpcc"))

glimpse(dados)
## Observations: 47
## Variables: 10
## $ Timestamp        <chr> "5/24/2019 11:49:02", "5/24/2019 11:49:06", "5/…
## $ sono_semana      <dbl> 7, 6, 6, 7, 4, 7, 4, 4, 7, 6, 7, 6, 6, 7, 5, 5,…
## $ sono_fds         <dbl> 8, 9, 9, 7, 8, 8, 8, 6, 7, 8, 8, 8, 7, 9, 9, 8,…
## $ disciplinas      <dbl> 5, 6, 4, 5, 4, 6, 4, 6, 5, 5, 5, 6, 5, 6, 5, 5,…
## $ cafe             <dbl> 4, 0, 0, 0, 0, 2, 0, 5, 2, 2, 0, 2, 2, 2, 5, 3,…
## $ segue_gh         <dbl> 14, 97, 68, 22, 40, 19, 40, 74, 2, 16, 12, 14, …
## $ seguido_gh       <dbl> 11, 76, 71, 28, 33, 9, 33, 74, 13, 45, 12, 10, …
## $ quase_concluinte <chr> "Sim", "Não", "Não", "Sim", "Não", "Não", "Não"…
## $ data             <dttm> 2019-05-24 11:49:02, 2019-05-24 11:49:06, 2019…
## $ turma            <chr> "cdd", "cdd", "cdd", "cdd", "cdd", "cdd", "cdd"…
dados = dados %>% 
    filter(segue_gh < 800, 
           seguido_gh < 900)

Histogramas dos dados coletados

dados %>% 
    ggplot(aes(x = sono_semana)) + 
    geom_histogram(binwidth = 1, boundary = 0) +
    facet_wrap(~ turma,
               ncol = 1)

dados %>% 
    ggplot(aes(x = sono_fds)) + 
    geom_histogram(binwidth = 1, boundary = 0) +
    facet_wrap(~ turma,
               ncol = 1) +
    xlim(5,10)

Com ICs

Fim De Semana

dados %>%
    ggplot(aes(x = turma, y = sono_fds)) +
    geom_quasirandom(width = .1) +
    stat_summary(geom = "point", fun.y = "mean", color = "red", size = 5) +
    labs (y = "Sono no fim de semana")

theta_diferenca_fds = function(d, i){
    sonos = d %>%
        slice(i) %>%
        group_by(turma) %>%
        summarize(sono = mean(sono_fds))
    
    cdd = sonos %>% 
            filter(turma == "cdd") %>% 
            pull(sono)
    fpcc = sonos %>% 
            filter(turma == "fpcc") %>% 
            pull(sono)
    
    cdd - fpcc
}

theta_diferenca_fds(dados, 1:NROW(dados))   
## [1] 0.7678571
booted <- boot(data = dados, 
               statistic = theta_diferenca_fds, 
               R = 5000)

ci_fds = tidy(booted, 
          conf.level = .95,
          conf.method = "bca",
          conf.int = TRUE)

glimpse(ci_fds)
## Observations: 1
## Variables: 5
## $ statistic <dbl> 0.7678571
## $ bias      <dbl> -0.0002009298
## $ std.error <dbl> 0.2902037
## $ conf.low  <dbl> 0.1806669
## $ conf.high <dbl> 1.331534
ci_fds %>%
    ggplot(aes(
        x = "",
        y = statistic,
        ymin = conf.low,
        ymax = conf.high
    )) +
    geom_pointrange() +
    geom_point(size = 3) + 
    labs(x = "cdd - fpcc", 
         y = "")

Dias De Semana

dados %>%
    ggplot(aes(x = turma, y = sono_semana)) +
    geom_quasirandom(width = .1) +
    stat_summary(geom = "point", fun.y = "mean", color = "red", size = 5) +
    labs (y = "Sono em dias de semana")

theta_diferenca_semana = function(d, i){
    sonos = d %>%
        slice(i) %>%
        group_by(turma) %>%
        summarize(sono = mean(sono_semana))
    
    cdd = sonos %>% 
            filter(turma == "cdd") %>% 
            pull(sono)
    fpcc = sonos %>% 
            filter(turma == "fpcc") %>% 
            pull(sono)
    
    cdd - fpcc
}

theta_c_semana =  theta_diferenca_semana(dados, 1:NROW(dados))   

theta_c_semana
## [1] 0.1904762
booted <- boot(data = dados, 
               statistic = theta_diferenca_semana, 
               R = 5000)

ci_semana = tidy(booted, 
          conf.level = .95,
          conf.method = "bca",
          conf.int = TRUE)

glimpse(ci_semana)
## Observations: 1
## Variables: 5
## $ statistic <dbl> 0.1904762
## $ bias      <dbl> -0.006294109
## $ std.error <dbl> 0.3130691
## $ conf.low  <dbl> -0.44
## $ conf.high <dbl> 0.7975553
ci_semana %>%
    ggplot(aes(
        x = "",
        y = statistic,
        ymin = conf.low,
        ymax = conf.high
    )) +
    geom_pointrange() +
    geom_point(size = 3) + 
    labs(x = "cdd - fpcc", 
         y = "")

dados %>% 
    group_by(turma) %>% 
    summarise(media_semana = mean(sono_semana),
              media_fds = mean(sono_fds),
              diferenca_medias = mean(sono_fds - sono_semana),
              desvio_semana = sd(sono_semana),
              desvio_fds = sd(sono_fds),
              n = n())
## # A tibble: 2 x 7
##   turma media_semana media_fds diferenca_medias desvio_semana desvio_fds
##   <chr>        <dbl>     <dbl>            <dbl>         <dbl>      <dbl>
## 1 cdd           6.19      8.14             1.95         1.17       1.01 
## 2 fpcc          6         7.38             1.38         0.933      0.970
## # … with 1 more variable: n <int>
theta_diferenca_turmas = function(d, i){
    d %>% 
        slice(i) %>% 
        group_by(turma) %>%
        summarise(media_sono = mean(sono_fds - sono_semana)) %>% 
        pull(media_sono)
}


theta_diferenca_turmas(dados, 1:NROW(dados))
## [1] 1.952381 1.375000
theta_diferenca = function(d, i){
    d %>% 
        slice(i) %>% 
        summarise(media_sono = mean(sono_fds - sono_semana)) %>% 
        pull(media_sono)
}


theta_diferenca(dados, 1:NROW(dados))
## [1] 1.644444

1. Qual o impacto do curso no sono dos alunos de graduação e de pós graduação, comparando quanto eles dormem durante a semana e nos fins de semana?

Durante os dias de semana, quando os alunos precisam assistir as aulas do curso, os alunos dormem menos 1.95 hora no caso dos alunos de cdd (graduação) e 1.37 hora de fpcc. Fazendo o bootstrap, o theta da diferença é 1.64 hora. Pode-se considerar que os cursos de graduação e pós têm um impacto grande no sono dos alunos, visto que 1 hora a mais de sono faz diferença na vida de uma pessoa.

2. O impacto é maior para um dos cursos?

O impacto é um pouco maior pra os alunos de cdd (graduação). Podemos observar isso através da diferença média entre cdd e fpcc. A diferença média é sempre maior para cdd. A média (diferença entre as médias das turmas) é maior 0.1904762 nos dias de semana e 0.7678571 nos fins de semana.