niesfutbol / ideas

0 stars 0 forks source link

¿Y el desempeño? #49

Open nepito opened 6 months ago

nepito commented 6 months ago

¿Un equipo está teniendo suerte en sus resultados o simplemente lo hace mejor?

nepito commented 6 months ago
arsenal |> filter(Team=="Arsenal") |>
  mutate(dG_xG= Goals-xG) |>
  mutate(
    mean_dG_xG = roll_mean(dG_xG, 4, align = "left", fill = NA),
    over = mean_dG_xG > (0.45+0.5116),
   under = mean_dG_xG < (0.45-0.5116)
) |> select(1,2,28:30)
nepito commented 6 months ago
library(tidyverse)
library(RcppRoll)

Team <- R6::R6Class("Team", list(
  raw_data = NULL,
  m = NULL,
  s = NULL,
  team_name = NULL,
  control_chart = NULL,
  initialize = function(path, team_name) {
    self$team_name <- team_name
    self$raw_data <- read_csv(path, show_col_types = FALSE)
    self$m <- self$raw_data |>
      filter(Team==self$team_name) |>
      mutate(dG_xG= Goals-xG) %>%
      .$dG_xG |>
      sample() |>
      roll_mean(4,align = "right") |>
      mean()
    self$s <- self$raw_data |>
      filter(Team==self$team_name) |>
      mutate(dG_xG= Goals-xG) %>%
      .$dG_xG |>
      sample() |>
      roll_mean(4,align = "right") |>
      sd()
  },
  calculate_control_chart = function() {
  self$control_chart <- self$raw_data |> filter(Team==self$team_name) |>
  mutate(dG_xG= Goals-xG) |>
  mutate(
    mean_dG_xG = roll_mean(dG_xG, 4, align = "left", fill = NA),
    over = mean_dG_xG > (self$m+self$s),
   under = mean_dG_xG < (self$m-self$s)
) |> select(1,2,27:30)
}
))