Alunos: José Ivan Silva da Cruz Júnior e João Lucas Galvão Menezes

Estudo central

Nossa amostra tem todos os jogos de 2017, e a partir deles, queremos responder duas perguntas sobre os jogos em geral desse campeonato:

  1. Jogos aos domingos têm mais gols que jogos às quartas?

  2. Jogos onde há um vitorioso têm mais ou menos gols que empates?

Os dados

set.seed(1110)

brasileirao = read_csv(here::here("data/brasileirao.csv"), 
                  col_types = "ccccccccdddccc")

glimpse(brasileirao)
## Observations: 380
## Variables: 14
## $ Horario        <chr> "16:00", "19:00", "11:00", "16:00", "16:00", "16:…
## $ Dia            <chr> "Sábado", "Sábado", "Domingo", "Domingo", "Doming…
## $ Data           <chr> "13/05/2017", "13/05/2017", "14/05/2017", "14/05/…
## $ Clube1         <chr> "Flamengo", "Corinthians", "Fluminense", "Cruzeir…
## $ Clube2         <chr> "Atlético-MG", "Chapecoense", "Santos", "São Paul…
## $ Vencedor       <chr> "-", "-", "Fluminense", "Cruzeiro", "Ponte Preta"…
## $ Rodada         <chr> "1ª Rodada", "1ª Rodada", "1ª Rodada", "1ª Rodada…
## $ Arena          <chr> "Maracanã", "Arena Corinthians", "Maracanã", "Min…
## $ p1             <dbl> 1, 1, 3, 1, 4, 4, 6, 0, 2, 4, 1, 0, 1, 2, 1, 0, 0…
## $ p2             <dbl> 1, 1, 2, 0, 0, 0, 2, 0, 0, 1, 0, 3, 0, 1, 2, 2, 1…
## $ gols           <dbl> 2, 2, 5, 1, 4, 4, 8, 0, 2, 5, 1, 3, 1, 3, 3, 2, 1…
## $ C1Estado       <chr> "RJ", "SP", "RJ", "MG", "SP", "SP", "BH", "SC", "…
## $ C2Estado       <chr> "MG", "SC", "SP", "SP", "PE", "RJ", "PR", "ES", "…
## $ VencedorEstado <chr> "Empate", "Empate", "RJ", "MG", "SP", "SP", "BH",…

IC

Amostras

domingoQuarta = brasileirao %>% 
  filter(Dia == "Domingo" | Dia == "Quarta-feira")

glimpse(domingoQuarta)
## Observations: 257
## Variables: 14
## $ Horario        <chr> "11:00", "16:00", "16:00", "16:00", "16:00", "16:…
## $ Dia            <chr> "Domingo", "Domingo", "Domingo", "Domingo", "Domi…
## $ Data           <chr> "14/05/2017", "14/05/2017", "14/05/2017", "14/05/…
## $ Clube1         <chr> "Fluminense", "Cruzeiro", "Ponte Preta", "Palmeir…
## $ Clube2         <chr> "Santos", "São Paulo", "Sport", "Vasco", "Atlétic…
## $ Vencedor       <chr> "Fluminense", "Cruzeiro", "Ponte Preta", "Palmeir…
## $ Rodada         <chr> "1ª Rodada", "1ª Rodada", "1ª Rodada", "1ª Rodada…
## $ Arena          <chr> "Maracanã", "Mineirão", "Moisés Lucarelli", "Pale…
## $ p1             <dbl> 3, 1, 4, 4, 6, 0, 2, 2, 1, 0, 0, 2, 1, 2, 0, 1, 0…
## $ p2             <dbl> 2, 0, 0, 0, 2, 0, 0, 1, 2, 2, 1, 0, 1, 2, 1, 1, 1…
## $ gols           <dbl> 5, 1, 4, 4, 8, 0, 2, 3, 3, 2, 1, 2, 2, 4, 1, 2, 1…
## $ C1Estado       <chr> "RJ", "MG", "SP", "SP", "BH", "SC", "RS", "RJ", "…
## $ C2Estado       <chr> "SP", "SP", "PE", "RJ", "PR", "ES", "RJ", "BH", "…
## $ VencedorEstado <chr> "RJ", "MG", "SP", "SP", "BH", "Empate", "RS", "RJ…

Utilizando a biblioteca boot

library(boot)

theta <- function(d, i) {
    agrupado = d %>% 
        slice(i) %>% 
        group_by(Dia) %>% 
        summarise(media = mean(gols))
    d = agrupado %>% filter(Dia == "Domingo") %>% pull(media)
    q = agrupado %>% filter(Dia == "Quarta-feira") %>% pull(media)
    d - q
}

booted <- boot(data = domingoQuarta, 
               statistic = theta, 
               R = 2000)

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

glimpse(ci)
## Observations: 1
## Variables: 5
## $ statistic <dbl> -0.01482372
## $ bias      <dbl> 0.002763685
## $ std.error <dbl> 0.2228075
## $ conf.low  <dbl> -0.4863788
## $ conf.high <dbl> 0.3968981

Plot de IC da diferença de gols entre domingo e quarta-feira

ci %>%
    ggplot(aes(
        x = "",
        y = statistic,
        ymin = conf.low,
        ymax = conf.high
    )) +
    geom_pointrange() +
    geom_point(size = 3, color = "blue") +
  labs(title = expression("Intervalo estimado via bootstrap"),
       x = "",
       y = "Intervalo de Confiança")

Na amostra vemos que nos domingos a quantidade de gols é bem maior, porém deve-se ao fato da maior quantidade de jogos que ocorrem nesse dia. A quarta-feira, por sua vez, é caracterizada por jogos com maiores número de gols e goleadas.

empates = brasileirao %>%
  mutate(empatou = VencedorEstado == "Empate") %>%
  group_by(empatou) %>%
  select(gols)
## Adding missing grouping variables: `empatou`
glimpse(empates)
## Observations: 380
## Variables: 2
## Groups: empatou [2]
## $ empatou <lgl> TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FAL…
## $ gols    <dbl> 2, 2, 5, 1, 4, 4, 8, 0, 2, 5, 1, 3, 1, 3, 3, 2, 1, 2, 2,…

Utilizando a biblioteca boot

library(boot)

theta <- function(d, i) {
    agrupado = d %>% 
        slice(i) %>% 
        group_by(empatou) %>% 
        summarise(media = mean(gols))
    t = agrupado %>% filter(empatou == TRUE) %>% pull(media)
    f = agrupado %>% filter(empatou == FALSE) %>% pull(media)
    t - f
}

booted <- boot(data = empates, 
               statistic = theta, 
               R = 2000)

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

glimpse(ci)
## Observations: 1
## Variables: 5
## $ statistic <dbl> -0.56181
## $ bias      <dbl> 0.001335539
## $ std.error <dbl> 0.1826721
## $ conf.low  <dbl> -0.9094783
## $ conf.high <dbl> -0.1799127

Plot de IC da diferença de gols em partidas empatadas ou não

ci %>%
    ggplot(aes(
        x = "",
        y = statistic,
        ymin = conf.low,
        ymax = conf.high
    )) +
    geom_pointrange() +
    geom_point(size = 3, color = "blue") +
  labs(title = expression("Intervalo estimado via bootstrap"),
       x = "",
       y = "Intervalo de Confiança")

Pelo que vimos, nas partidas onde há um vencedor, há, geralmente, mais gols do que os jogos que resultam em empate. Vemos, inclusive, que para partidas onde há vencedores o número de gols é razoavelmente maior do que quando há empate.

Teste de hipótese via permutação

Dados

domingo = brasileirao %>%
  filter(Dia == "Domingo") %>%
  pull(gols)

glimpse(domingo)
##  num [1:192] 5 1 4 4 8 0 2 3 3 2 ...
quarta = brasileirao %>%
  filter(Dia == "Quarta-feira") %>%
  pull(gols)

glimpse(quarta)
##  num [1:65] 1 1 1 2 7 1 4 4 0 2 ...

Primeira hipótese

O jogo acontecer na quarta-feira ou no domingo influencia na quantidade de gols.

Calculando o p-valor

t.test(domingo, quarta) %>% 
    tidy() %>% 
    pull(p.value)
## [1] 0.9464097

Teste de hipótese com permutação

library(perm)
permTS(domingo, quarta)
## 
##  Permutation Test using Asymptotic Approximation
## 
## data:  domingo and quarta
## Z = -0.067022, p-value = 0.9466
## alternative hypothesis: true mean domingo - mean quarta is not equal to 0
## sample estimates:
## mean domingo - mean quarta 
##                -0.01482372

A diferença entre as médias, feitas por permutação, se aproximou muito de zero e o p-valor deu muito alto, logo, podemos descartar a nossa hipótese de que o dia da semana tem influência na quantidade de gols das partidas.

Segunda hipótese

Jogos onde há um vitorioso têm mais ou menos gols que empates.

empatou = brasileirao %>%
  filter(VencedorEstado == "Empate") %>%
  pull(gols)

glimpse(empatou)
##  num [1:103] 2 2 0 2 4 2 0 0 2 4 ...
ganhou = brasileirao %>%
  filter(VencedorEstado != "Empate") %>%
  pull(gols)

glimpse(ganhou)
##  num [1:277] 5 1 4 4 8 2 5 1 3 1 ...

Calculando o p-valor

t.test(empatou, ganhou) %>% 
    tidy() %>% 
    pull(p.value)
## [1] 0.001531653

Teste de hipótese com permutação

library(perm)
permTS(empatou, ganhou)
## 
##  Permutation Test using Asymptotic Approximation
## 
## data:  empatou and ganhou
## Z = -3.1126, p-value = 0.001855
## alternative hypothesis: true mean empatou - mean ganhou is not equal to 0
## sample estimates:
## mean empatou - mean ganhou 
##                   -0.56181

Nesse caso, o p-valor deu bem baixo e a diferença das médias não se aproximou tanto de zero, logo, podemos afirmar que há uma boa confiança na nossa hipótese de que jogos com algum vencedor ter mais ou menos gols.

Comparações

Ambos os métodos convergeram para as mesmas respostas, porém com abordagens diferentes. Com o p-valor e os testes de hipótese conseguimos apenas dizer se nossa hipótese é plausível ou não, mas com o intervalo de confiança além de dar validade para a nossa hipótese, também consiguimos estimar faixas de valores e mostrar qual o nível de confiança dos resultados, tornando assim, o método de intervalo de confiança mais completo para a maioria das análises.