Inicialización.

Declaración de funciones y librerias a utilizar:

#carga de librerías
#install.packages("corrplot")
#install.packages("lmtest")
#install.packages("car")
#install.packages("GGally")

options(scipen = 20)

library(dplyr)
## 
## 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 (tidyverse)
## ── Attaching packages ──────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.2.1     ✔ readr   1.3.1
## ✔ tibble  2.1.1     ✔ purrr   0.3.2
## ✔ tidyr   0.8.3     ✔ stringr 1.4.0
## ✔ ggplot2 3.2.1     ✔ forcats 0.4.0
## ── Conflicts ─────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library (readr)
library (ggplot2)
library(corrplot)
## corrplot 0.84 loaded
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:purrr':
## 
##     some
## The following object is masked from 'package:dplyr':
## 
##     recode
library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## 
## Attaching package: 'GGally'
## The following object is masked from 'package:dplyr':
## 
##     nasa
## la cargo por si necesito transformar algun NA en 0.

haz.cero.na=function(x){
ifelse(is.na(x),0,x)}

# Funcion para que el logaritmo de cero no de error, sino 0
haz.cero.logdecero=function(x){
ifelse(x==0,0,log(x))}

#library(ISLR)
#library(MASS)

Lectura y análisis de datos.

Lectura:

# lectura de datos

datos_2015 <- read_delim("datos_2015.csv",
";", escape_double = FALSE, locale = locale(encoding = "LATIN1"),
trim_ws = TRUE)
## Parsed with column specification:
## cols(
##   .default = col_double(),
##   club = col_character()
## )
## See spec(...) for full column specifications.
datos_2015
## # A tibble: 30 x 49
##    club  Pts_2012_13 Pts_2013_14 Pts_2014 inversion_abs inversion_relat…
##    <chr>       <dbl>       <dbl>    <dbl>         <dbl>            <dbl>
##  1 Quil…          50          45       12          6.33           0.651 
##  2 Olim…           0          50       19          2.25           0.255 
##  3 Banf…           0           0       20          7.55           0.591 
##  4 Godo…           0           0       20          3.4            0.301 
##  5 Rosa…           0          54       21         10.8            1.09  
##  6 Defe…          49          56       21          1.27           0.203 
##  7 Gimn…           0          57       24          2.25           0.246 
##  8 Atlé…          43          49       25         -2.15          -0.224 
##  9 Estu…          59          49       25          6.35           0.379 
## 10 Aldo…          74          56       25          0.18           0.0271
## # … with 20 more rows, and 43 more variables: valor <dbl>,
## #   libertadores <dbl>, sudamericana <dbl>, ascenso <dbl>, Pos <dbl>,
## #   Pts <dbl>, PJ <dbl>, PG <dbl>, PE <dbl>, PP <dbl>, GF <dbl>, GC <dbl>,
## #   Dif <dbl>, Pos_Fecha_1 <dbl>, Pos_Fecha_2 <dbl>, Pos_Fecha_3 <dbl>,
## #   Pos_Fecha_4 <dbl>, Pos_Fecha_5 <dbl>, Pos_Fecha_6 <dbl>,
## #   Pos_Fecha_7 <dbl>, Pos_Fecha_8 <dbl>, Pos_Fecha_9 <dbl>,
## #   Pos_Fecha_10 <dbl>, Pos_Fecha_11 <dbl>, Pos_Fecha_12 <dbl>,
## #   Pos_Fecha_13 <dbl>, Pos_Fecha_14 <dbl>, Pos_Fecha_15 <dbl>,
## #   Pos_Fecha_16 <dbl>, Pos_Fecha_17 <dbl>, Pos_Fecha_18 <dbl>,
## #   Pos_Fecha_19 <dbl>, Pos_Fecha_20 <dbl>, Pos_Fecha_21 <dbl>,
## #   Pos_Fecha_22 <dbl>, Pos_Fecha_23 <dbl>, Pos_Fecha_24 <dbl>,
## #   Pos_Fecha_25 <dbl>, Pos_Fecha_26 <dbl>, Pos_Fecha_27 <dbl>,
## #   Pos_Fecha_28 <dbl>, Pos_Fecha_29 <dbl>, Pos_Fecha_30 <dbl>
datos_2015<-datos_2015 %>% mutate(inversion_relativa=as.numeric(inversion_relativa))

datos_2015 <- datos_2015 %>% mutate(inversion_relativa=haz.cero.na(inversion_relativa))

Análisis exploratorio de la base:

head (datos_2015)
## # A tibble: 6 x 49
##   club  Pts_2012_13 Pts_2013_14 Pts_2014 inversion_abs inversion_relat…
##   <chr>       <dbl>       <dbl>    <dbl>         <dbl>            <dbl>
## 1 Quil…          50          45       12          6.33            0.651
## 2 Olim…           0          50       19          2.25            0.255
## 3 Banf…           0           0       20          7.55            0.591
## 4 Godo…           0           0       20          3.4             0.301
## 5 Rosa…           0          54       21         10.8             1.09 
## 6 Defe…          49          56       21          1.27            0.203
## # … with 43 more variables: valor <dbl>, libertadores <dbl>,
## #   sudamericana <dbl>, ascenso <dbl>, Pos <dbl>, Pts <dbl>, PJ <dbl>,
## #   PG <dbl>, PE <dbl>, PP <dbl>, GF <dbl>, GC <dbl>, Dif <dbl>,
## #   Pos_Fecha_1 <dbl>, Pos_Fecha_2 <dbl>, Pos_Fecha_3 <dbl>,
## #   Pos_Fecha_4 <dbl>, Pos_Fecha_5 <dbl>, Pos_Fecha_6 <dbl>,
## #   Pos_Fecha_7 <dbl>, Pos_Fecha_8 <dbl>, Pos_Fecha_9 <dbl>,
## #   Pos_Fecha_10 <dbl>, Pos_Fecha_11 <dbl>, Pos_Fecha_12 <dbl>,
## #   Pos_Fecha_13 <dbl>, Pos_Fecha_14 <dbl>, Pos_Fecha_15 <dbl>,
## #   Pos_Fecha_16 <dbl>, Pos_Fecha_17 <dbl>, Pos_Fecha_18 <dbl>,
## #   Pos_Fecha_19 <dbl>, Pos_Fecha_20 <dbl>, Pos_Fecha_21 <dbl>,
## #   Pos_Fecha_22 <dbl>, Pos_Fecha_23 <dbl>, Pos_Fecha_24 <dbl>,
## #   Pos_Fecha_25 <dbl>, Pos_Fecha_26 <dbl>, Pos_Fecha_27 <dbl>,
## #   Pos_Fecha_28 <dbl>, Pos_Fecha_29 <dbl>, Pos_Fecha_30 <dbl>
glimpse (datos_2015)
## Observations: 30
## Variables: 49
## $ club               <chr> "Quilmes", "Olimpo", "Banfield", "Godoy Cruz"…
## $ Pts_2012_13        <dbl> 50, 0, 0, 0, 0, 49, 0, 43, 59, 74, 61, 60, 34…
## $ Pts_2013_14        <dbl> 45, 50, 0, 0, 54, 56, 57, 49, 49, 56, 61, 48,…
## $ Pts_2014           <dbl> 12, 19, 20, 20, 21, 21, 24, 25, 25, 25, 25, 2…
## $ inversion_abs      <dbl> 6.33, 2.25, 7.55, 3.40, 10.83, 1.27, 2.25, -2…
## $ inversion_relativa <dbl> 0.650965567, 0.254892250, 0.590507433, 0.3010…
## $ valor              <dbl> 13.23, 10.00, 16.93, 13.08, 16.33, 6.90, 10.3…
## $ libertadores       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, …
## $ sudamericana       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, …
## $ ascenso            <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, …
## $ Pos                <dbl> 11, 18, 8, 22, 3, 21, 12, 29, 7, 15, 26, 28, …
## $ Pts                <dbl> 45, 36, 50, 32, 59, 32, 44, 23, 51, 40, 29, 2…
## $ PJ                 <dbl> 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 3…
## $ PG                 <dbl> 13, 8, 14, 8, 16, 8, 12, 4, 14, 11, 7, 7, 12,…
## $ PE                 <dbl> 6, 12, 8, 8, 11, 8, 8, 11, 9, 7, 8, 6, 10, 7,…
## $ PP                 <dbl> 11, 10, 8, 14, 3, 14, 10, 15, 7, 12, 15, 17, …
## $ GF                 <dbl> 38, 23, 38, 32, 47, 27, 41, 29, 34, 37, 29, 2…
## $ GC                 <dbl> 37, 26, 32, 40, 26, 31, 38, 51, 28, 40, 38, 4…
## $ Dif                <dbl> 1, -3, 6, -8, 21, -4, 3, -22, 6, -3, -9, -19,…
## $ Pos_Fecha_1        <dbl> 19, 25, 19, 14, 8, 8, 19, 27, 8, 27, 25, 19, …
## $ Pos_Fecha_2        <dbl> 18, 25, 12, 18, 4, 14, 20, 30, 4, 29, 24, 28,…
## $ Pos_Fecha_3        <dbl> 24, 29, 12, 14, 3, 18, 27, 30, 2, 27, 21, 25,…
## $ Pos_Fecha_4        <dbl> 23, 29, 18, 8, 1, 15, 25, 30, 4, 25, 27, 24, …
## $ Pos_Fecha_5        <dbl> 19, 29, 13, 16, 1, 18, 20, 30, 5, 21, 28, 24,…
## $ Pos_Fecha_6        <dbl> 20, 25, 9, 19, 1, 18, 24, 30, 11, 21, 29, 26,…
## $ Pos_Fecha_7        <dbl> 22, 26, 5, 18, 3, 17, 25, 30, 14, 21, 28, 29,…
## $ Pos_Fecha_8        <dbl> 20, 27, 6, 21, 4, 19, 25, 28, 15, 17, 29, 30,…
## $ Pos_Fecha_9        <dbl> 22, 28, 7, 23, 4, 18, 19, 29, 16, 20, 30, 26,…
## $ Pos_Fecha_10       <dbl> 23, 30, 9, 24, 4, 21, 18, 29, 20, 11, 28, 27,…
## $ Pos_Fecha_11       <dbl> 21, 28, 10, 22, 5, 24, 17, 26, 18, 8, 30, 29,…
## $ Pos_Fecha_12       <dbl> 20, 25, 9, 21, 3, 24, 18, 26, 17, 11, 29, 30,…
## $ Pos_Fecha_13       <dbl> 23, 25, 10, 19, 3, 24, 15, 28, 13, 9, 29, 30,…
## $ Pos_Fecha_14       <dbl> 23, 26, 10, 22, 5, 25, 13, 28, 15, 11, 30, 29…
## $ Pos_Fecha_15       <dbl> 23, 28, 12, 22, 5, 27, 8, 26, 10, 14, 30, 29,…
## $ Pos_Fecha_16       <dbl> 23, 28, 10, 18, 4, 26, 8, 27, 12, 15, 30, 29,…
## $ Pos_Fecha_17       <dbl> 23, 26, 14, 19, 6, 24, 7, 28, 11, 16, 30, 29,…
## $ Pos_Fecha_18       <dbl> 21, 26, 13, 17, 4, 22, 7, 28, 12, 16, 30, 27,…
## $ Pos_Fecha_19       <dbl> 18, 22, 12, 19, 4, 24, 8, 27, 11, 17, 30, 29,…
## $ Pos_Fecha_20       <dbl> 15, 22, 9, 19, 6, 25, 8, 27, 11, 18, 30, 29, …
## $ Pos_Fecha_21       <dbl> 15, 24, 9, 21, 4, 22, 8, 27, 11, 18, 28, 30, …
## $ Pos_Fecha_22       <dbl> 15, 22, 8, 23, 3, 24, 9, 27, 10, 17, 29, 28, …
## $ Pos_Fecha_23       <dbl> 14, 23, 9, 25, 3, 21, 12, 27, 8, 19, 29, 28, …
## $ Pos_Fecha_24       <dbl> 13, 21, 7, 23, 3, 19, 12, 27, 10, 18, 29, 28,…
## $ Pos_Fecha_25       <dbl> 13, 22, 6, 25, 3, 20, 12, 27, 8, 17, 29, 28, …
## $ Pos_Fecha_26       <dbl> 11, 20, 8, 25, 3, 22, 14, 28, 10, 18, 29, 27,…
## $ Pos_Fecha_27       <dbl> 11, 20, 9, 23, 3, 19, 14, 28, 8, 16, 29, 27, …
## $ Pos_Fecha_28       <dbl> 11, 18, 10, 21, 2, 20, 12, 29, 6, 16, 28, 27,…
## $ Pos_Fecha_29       <dbl> 11, 17, 9, 22, 3, 20, 12, 29, 8, 15, 28, 27, …
## $ Pos_Fecha_30       <dbl> 11, 18, 8, 22, 3, 21, 12, 29, 7, 15, 26, 28, …
summary (datos_2015)
##      club            Pts_2012_13     Pts_2013_14       Pts_2014   
##  Length:30          Min.   : 0.00   Min.   : 0.00   Min.   : 0.0  
##  Class :character   1st Qu.: 0.00   1st Qu.: 0.00   1st Qu.: 0.0  
##  Mode  :character   Median : 0.00   Median :46.50   Median :21.0  
##                     Mean   :26.00   Mean   :30.13   Mean   :17.5  
##                     3rd Qu.:56.25   3rd Qu.:56.00   3rd Qu.:26.0  
##                     Max.   :74.00   Max.   :61.00   Max.   :41.0  
##  inversion_abs    inversion_relativa      valor         libertadores
##  Min.   :-2.900   Min.   :-0.223610   Min.   : 3.380   Min.   :0.0  
##  1st Qu.: 0.045   1st Qu.: 0.004951   1st Qu.: 7.312   1st Qu.:0.0  
##  Median : 0.790   Median : 0.122887   Median :13.155   Median :0.0  
##  Mean   : 2.403   Mean   : 0.172154   Mean   :15.012   Mean   :0.2  
##  3rd Qu.: 4.075   3rd Qu.: 0.253180   3rd Qu.:17.973   3rd Qu.:0.0  
##  Max.   :11.200   Max.   : 1.088256   Max.   :43.400   Max.   :1.0  
##   sudamericana       ascenso            Pos             Pts       
##  Min.   :0.0000   Min.   :0.0000   Min.   : 1.00   Min.   :14.00  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.: 8.25   1st Qu.:30.50  
##  Median :0.0000   Median :0.0000   Median :15.50   Median :40.00  
##  Mean   :0.2333   Mean   :0.3333   Mean   :15.50   Mean   :40.33  
##  3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:22.75   3rd Qu.:49.75  
##  Max.   :1.0000   Max.   :1.0000   Max.   :30.00   Max.   :64.00  
##        PJ           PG              PE               PP       
##  Min.   :30   Min.   : 3.00   Min.   : 4.000   Min.   : 3.00  
##  1st Qu.:30   1st Qu.: 7.00   1st Qu.: 8.000   1st Qu.: 7.00  
##  Median :30   Median : 9.50   Median : 9.000   Median :10.00  
##  Mean   :30   Mean   :10.33   Mean   : 9.333   Mean   :10.33  
##  3rd Qu.:30   3rd Qu.:13.75   3rd Qu.:11.750   3rd Qu.:13.75  
##  Max.   :30   Max.   :20.00   Max.   :14.000   Max.   :22.00  
##        GF              GC             Dif          Pos_Fecha_1   
##  Min.   :19.00   Min.   :20.00   Min.   :-34.00   Min.   : 1.00  
##  1st Qu.:27.00   1st Qu.:26.50   1st Qu.: -8.00   1st Qu.: 8.00  
##  Median :32.00   Median :32.50   Median : -2.50   Median :15.00  
##  Mean   :33.13   Mean   :33.13   Mean   :  0.00   Mean   :14.17  
##  3rd Qu.:38.00   3rd Qu.:37.75   3rd Qu.:  6.75   3rd Qu.:19.00  
##  Max.   :49.00   Max.   :55.00   Max.   : 24.00   Max.   :30.00  
##   Pos_Fecha_2     Pos_Fecha_3     Pos_Fecha_4     Pos_Fecha_5   
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 7.50   1st Qu.: 8.25   1st Qu.: 8.00   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.23   Mean   :15.30   Mean   :15.40   Mean   :15.50  
##  3rd Qu.:22.25   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_6     Pos_Fecha_7     Pos_Fecha_8     Pos_Fecha_9   
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.47   Mean   :15.50   Mean   :15.50   Mean   :15.50  
##  3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_10    Pos_Fecha_11    Pos_Fecha_12    Pos_Fecha_13  
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.50   Mean   :15.50   Mean   :15.50   Mean   :15.50  
##  3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_14    Pos_Fecha_15    Pos_Fecha_16    Pos_Fecha_17  
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.50   Mean   :15.50   Mean   :15.50   Mean   :15.50  
##  3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_18    Pos_Fecha_19    Pos_Fecha_20    Pos_Fecha_21  
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.43   Mean   :15.50   Mean   :15.50   Mean   :15.50  
##  3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_22    Pos_Fecha_23    Pos_Fecha_24    Pos_Fecha_25  
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.50   Mean   :15.50   Mean   :15.50   Mean   :15.50  
##  3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_26    Pos_Fecha_27    Pos_Fecha_28    Pos_Fecha_29  
##  Min.   : 1.00   Min.   : 1.00   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25   1st Qu.: 8.25  
##  Median :15.50   Median :15.50   Median :15.50   Median :15.50  
##  Mean   :15.50   Mean   :15.50   Mean   :15.50   Mean   :15.50  
##  3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75   3rd Qu.:22.75  
##  Max.   :30.00   Max.   :30.00   Max.   :30.00   Max.   :30.00  
##   Pos_Fecha_30  
##  Min.   : 1.00  
##  1st Qu.: 8.25  
##  Median :15.50  
##  Mean   :15.50  
##  3rd Qu.:22.75  
##  Max.   :30.00

Se trata de una base de datos de 49 columnas y 30 observaciones.

Datos relevados:

Datos referidos a los equipos de futbol de la primer categoría. Cada fila o registro corresponde a un equipo de futbol de 1era. Se registraron los equipos con los puntajes obtenidos en las dos temporadas anteriores y en la actual, la posible participacion en las copas Libertadores y Sudamericana correspondientes a la temporada 2014, las posiciones de los clubes de cada una de las fechas jugadas durante 2015, la posicion final, si el club viene del ascenso, la inversion realizada por el club para el año 2015 en terminos absolutos, el porcentual de variación respecto al valor del equipo del año anterior y la variación absoluta.

Supuestos:

El valor inicial del club en el año 2015, no tiene relación directa con la inversion absoluta, la misma es la resultante del porcentaje de inversion relativa * el valor del club en la temporada anterior. Es decir que dada la inversion absoluta, se puede determinar con la variación porcentual relativa cual fue el valor de la temporada anterior. Se entiende por temporada el año calendario, durante el cual se disputan varios campeonatos.

Glosario de Datos:

PJ Puntos Jugados
PG Puntos Ganados
PE Puntos Empatados
PP Puntos Perdidos
GF Goles a favor
GC Goles en contra
Dif Diferencia entre convertidos y en contra
Pos Posicion alcanzada en el actual campeonato
Ptos Puntos logrados en el actual campeonato
Inversion absoluta
Inversion relativa (porcentual)
Valor es el valor actual del equipo
Ascenso si ascendio en la temporada anterior, valores posibles 0 y 1
Libertadores participación valores posibles 0 y 1
Sudamericana participación valores posibles 0 y 1

Se observa:

Del análisis visual de los datos se desprende que el promedio del valor del plantel es 15012$, el porcentual de variación del valor respecto al año anterior es aproximadamente un 17,21%.

Los clubes que ascendieron en el presente año, carecen de puntaje en uno o mas años anteriores por no haber disputado ningun partido en esta categoría, y estas variables se asumen 0.

Se tratará de analizar a continuación, cual es la relación entre la Pts de la temporada de interés de este estudio, con respecto a las siguientes variables explicativas:

Pts_2012_13, Pts_2013_14, Pts_2014, inversion_abs (inversión absoluta), inversion_relativa (inversión relativa), valor (valor en millones de euros), libertadores (si participo en el 2014 en la Copa Libertadores), sudamericana (si participo ́en el 2014 en la Copa Sudamericana), ascenso (si es el primer año en la categoria luego de ascender) y Puntos.

Dado que la inversión es un dato relevante a calcular para alcanzar una determinado puntaje en la temporada siguiente, vamos a calcular cual fue el valor del equipo en el año 2014, con los datos de inversion absoluta e inversion relativa, e incorporarlo como una de las variables explicativas si fuera conveniente.

# Realizo el calculo del valor de cada equipo en el año 2014, si el resultado es NA lo transforma en 0

datos_2015 <- datos_2015 %>% mutate(valor_2014=haz.cero.na(inversion_abs/inversion_relativa))

Análisis:

Comenzamos realizando un análisis de correlación entre las variables, y a continuación una regresión lineal multiple entre los puntos obtenidos de cada club respecto al resto de las variables, incluyendo los totales de partidos ganados, perdidos, empatados, goles efectuados y goles en contra.

#Se obtiene una base con los datos de la base que pretenden ser regresiónados (se quitan las posiciones en las diferentes fechas, los partidos, los goles y la posicion final)

## datos_regre1 <- select(datos_2015,club,Pts_2012_13,Pts_2013_14,Pts_2014,inversion_abs,inversion_relativa,valor,valor_2014,libertadores,sudamericana,ascenso,Pos,Pts,PG,PE,PP,GF,GC)

datos_regre1 <- select(datos_2015,club,Pts_2012_13,Pts_2013_14,Pts_2014,inversion_abs,inversion_relativa,valor,libertadores,sudamericana,ascenso,Pts)

head(datos_regre1)
## # A tibble: 6 x 11
##   club  Pts_2012_13 Pts_2013_14 Pts_2014 inversion_abs inversion_relat…
##   <chr>       <dbl>       <dbl>    <dbl>         <dbl>            <dbl>
## 1 Quil…          50          45       12          6.33            0.651
## 2 Olim…           0          50       19          2.25            0.255
## 3 Banf…           0           0       20          7.55            0.591
## 4 Godo…           0           0       20          3.4             0.301
## 5 Rosa…           0          54       21         10.8             1.09 
## 6 Defe…          49          56       21          1.27            0.203
## # … with 5 more variables: valor <dbl>, libertadores <dbl>,
## #   sudamericana <dbl>, ascenso <dbl>, Pts <dbl>

Se visualizará una matriz que informa la correlación existente entre las distintas variables, mediante la obtencion de los indices de correlación entre las variables predictoras o explicativas y la variable dependiente.

solo_datos1 <- select(datos_regre1,-club)

corre_gral1 <- cor(solo_datos1)

# Se grafico la relacion entre variables 
# Metodod gráficos posibles: 'circle', 'square', 'ellipse',
# 'number', 'shade', 'color', 'pie',
#dev.off()
#plot.new()

corrplot(corre_gral1,method = "circle")

En el cuadro de correlaciones se observa, que la variable Pts en el campeonato está influida fuertemente por los puntos obtenidos en el 2014, el valor actual, y en menor medida se encuentra inferido por el ascenso y la inversion absoluta, y la inversion relativa.

Se aplicará un modelo de regresión múltiple con todas estas variables, para ver que evidencia el modelo de cada una de ellas.

lm.fit1 = lm(Pts~.-club, data=datos_regre1)

summary(lm.fit1)
## 
## Call:
## lm(formula = Pts ~ . - club, data = datos_regre1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.1568  -3.9097  -0.2494   3.4886  15.7965 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)  
## (Intercept)        15.058086   7.459359   2.019   0.0571 .
## Pts_2012_13        -0.084927   0.103988  -0.817   0.4237  
## Pts_2013_14         0.008748   0.106711   0.082   0.9355  
## Pts_2014            0.575616   0.223596   2.574   0.0181 *
## inversion_abs      -2.173272   1.268791  -1.713   0.1022  
## inversion_relativa 40.110542  15.874772   2.527   0.0201 *
## valor               0.834816   0.338797   2.464   0.0229 *
## libertadores        3.896544   5.391639   0.723   0.4782  
## sudamericana       -1.348871   3.915157  -0.345   0.7340  
## ascenso             7.400458   5.703893   1.297   0.2092  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.973 on 20 degrees of freedom
## Multiple R-squared:  0.7028, Adjusted R-squared:  0.5691 
## F-statistic: 5.256 on 9 and 20 DF,  p-value: 0.0009804
#plot.new()
par (mfrow=c(2,2))
plot(lm.fit1)

De acuerdo al análisis de la regresión las variables que mejor explican la regresión son: inversion relativa, valor, y en menor lugar el ascenso (son las mas significativas). El R2 que representa cual es la proporcion de casos en los que el modelo cumple con las hipótesis alternativas, en esta regresión fué del 70% y el R2 ajustado del 57%.

Se analizarán los residuos:

  • La curva de los valores fiteados es un poco irregular, los residuos siguen una forma similar, pero algunos valores de residuos se alejan bastante.

  • Los residuos estandarizados se asemejan bastante a los cuantiles teóricos de la Normal, excepto alejándose del centro hacia los extremos que aparecen un poco fuera de la recta y distantes.

  • La raíz de los residuos estandarizados versus los valores fiteados siguen un patron definido, excepto para los valores menores en el eje x y estarían mostrando una tendencia a homoscedasticidad del modelo. El modelo no presentaría problemas de escala.

  • En el gráfico de Residuos vrs Promedio, podemos ver que los valores respetan ajustadamente las lineas de Cook.

Dado que el análisis anterior no fue satisfactorio evaluaremos si se cumplen las siguientes condiciones necesarias para aplicar el modelo:

  • Que la variable dependiente sea ordinal o escalar, es decir que sus valores tengan un orden entre sí, esta condición se cumple porque los puntos o la posición (que serìa la relacion inversa a los puntos), tienen un orden.

  • Que las variables explicativas tambien sean ordinales o escalares, tambien se cumple. En el caso de las booleanas si ascendió o participó de un campeonato determinado estan cuantificadas con ocurrencia 0 = no y 1 = si.

  • Por último, las variables explicativas no deberían estar altamente correlacionadas entre sí, deben presentar la misma varianza, su distribución debe ser normal y deben mantener una regresión lineal. De acuerdo a lo que se visualiza en la matriz de correlaciones no se cumple que todas las variables, sean independientes entre sí.

Buscaremos la mejor combinacion de variables mediante el metodo Stepwise, con coeficiente AIC, esta sentencia probará cual es el mejor modelo con la mejor combinación, lo realizará partiendo de la prueba con todas las variables hasta encontrar el que mejor resulte quitando variables de la regresión, de a una:

step(object = lm.fit1, direction = "both", trace = 1)
## Start:  AIC=132.4
## Pts ~ (club + Pts_2012_13 + Pts_2013_14 + Pts_2014 + inversion_abs + 
##     inversion_relativa + valor + libertadores + sudamericana + 
##     ascenso) - club
## 
##                      Df Sum of Sq    RSS    AIC
## - Pts_2013_14         1      0.43 1271.8 130.41
## - sudamericana        1      7.55 1279.0 130.58
## - libertadores        1     33.20 1304.6 131.17
## - Pts_2012_13         1     42.40 1313.8 131.38
## <none>                            1271.4 132.40
## - ascenso             1    107.01 1378.4 132.82
## - inversion_abs       1    186.51 1457.9 134.51
## - valor               1    385.98 1657.4 138.35
## - inversion_relativa  1    405.84 1677.3 138.71
## - Pts_2014            1    421.30 1692.7 138.99
## 
## Step:  AIC=130.41
## Pts ~ Pts_2012_13 + Pts_2014 + inversion_abs + inversion_relativa + 
##     valor + libertadores + sudamericana + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - sudamericana        1      8.26 1280.1 128.60
## - libertadores        1     32.91 1304.8 129.18
## - Pts_2012_13         1     61.06 1332.9 129.82
## <none>                            1271.8 130.41
## - ascenso             1    107.47 1379.3 130.84
## + Pts_2013_14         1      0.43 1271.4 132.40
## - inversion_abs       1    186.18 1458.0 132.51
## - valor               1    387.90 1659.8 136.40
## - inversion_relativa  1    412.75 1684.6 136.84
## - Pts_2014            1    458.42 1730.3 137.65
## 
## Step:  AIC=128.6
## Pts ~ Pts_2012_13 + Pts_2014 + inversion_abs + inversion_relativa + 
##     valor + libertadores + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - libertadores        1     33.46 1313.6 127.38
## - Pts_2012_13         1     57.59 1337.7 127.92
## <none>                            1280.1 128.60
## - ascenso             1    109.66 1389.8 129.07
## + sudamericana        1      8.26 1271.8 130.41
## + Pts_2013_14         1      1.14 1279.0 130.58
## - inversion_abs       1    210.54 1490.6 131.17
## - valor               1    404.33 1684.4 134.84
## - Pts_2014            1    457.72 1737.8 135.78
## - inversion_relativa  1    467.99 1748.1 135.95
## 
## Step:  AIC=127.38
## Pts ~ Pts_2012_13 + Pts_2014 + inversion_abs + inversion_relativa + 
##     valor + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - Pts_2012_13         1     49.17 1362.7 126.48
## <none>                            1313.6 127.38
## + libertadores        1     33.46 1280.1 128.60
## + sudamericana        1      8.82 1304.8 129.18
## + Pts_2013_14         1      0.63 1312.9 129.37
## - ascenso             1    186.84 1500.4 129.37
## - inversion_abs       1    248.65 1562.2 130.58
## - inversion_relativa  1    511.20 1824.8 135.24
## - Pts_2014            1    533.75 1847.3 135.61
## - valor               1    806.24 2119.8 139.74
## 
## Step:  AIC=126.48
## Pts ~ Pts_2014 + inversion_abs + inversion_relativa + valor + 
##     ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## <none>                            1362.7 126.48
## + Pts_2012_13         1     49.17 1313.6 127.38
## - ascenso             1    151.63 1514.4 127.65
## + libertadores        1     25.04 1337.7 127.92
## + Pts_2013_14         1     14.28 1348.5 128.17
## + sudamericana        1      5.38 1357.3 128.36
## - inversion_abs       1    235.60 1598.3 129.27
## - inversion_relativa  1    533.79 1896.5 134.40
## - Pts_2014            1    645.87 2008.6 136.12
## - valor               1    762.31 2125.0 137.81
## 
## Call:
## lm(formula = Pts ~ Pts_2014 + inversion_abs + inversion_relativa + 
##     valor + ascenso, data = datos_regre1)
## 
## Coefficients:
##        (Intercept)            Pts_2014       inversion_abs  
##            13.5176              0.4665             -2.3508  
## inversion_relativa               valor             ascenso  
##            43.9452              0.9416              7.8035

Si se evalua el resultado del modelo de regresión de los Pts explicados por las otras variables, define que la regresión multiple está explicada por los beta correspondientes a las variables Ptos_2014, inversion_absoluta, inversion_relativa, valor y ascenso.

Se realizará la regresión lineal de estas variables y se evaluará si mejora el R2:

lm.ideal = lm(Pts~inversion_relativa+valor+inversion_abs+ascenso+Pts_2014, data=datos_regre1)
summary(lm.ideal)
## 
## Call:
## lm(formula = Pts ~ inversion_relativa + valor + inversion_abs + 
##     ascenso + Pts_2014, data = datos_regre1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -12.303  -3.851  -0.657   3.961  14.887 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)   
## (Intercept)         13.5176     6.0767   2.224  0.03578 * 
## inversion_relativa  43.9452    14.3326   3.066  0.00530 **
## valor                0.9416     0.2570   3.664  0.00123 **
## inversion_abs       -2.3508     1.1540  -2.037  0.05282 . 
## ascenso              7.8035     4.7753   1.634  0.11528   
## Pts_2014             0.4665     0.1383   3.373  0.00252 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.535 on 24 degrees of freedom
## Multiple R-squared:  0.6815, Adjusted R-squared:  0.6152 
## F-statistic: 10.27 on 5 and 24 DF,  p-value: 0.00002345

Esta nueva regresión mejoró la performance respecto a la primer regresión, se puede afirmar que la variable Pts es explicada por las variables inversion reletaiva + el valor actual + la inversion absoluta + los puntos del 2014 + el ascenso, aunque el R2 ahora disminuyó a 68% y el R2 ajustado aumentó aproximadamente a 61% de los casos. El F estadistico es de 10,27 con 24 grados de libertad y el P value es correcto.

Al analizar los coeficientes de la regresión se confirma que todas las variables del modelo son predictoras, exceptuando el ascenso.

La visualización de la matriz de correlaciones muestra:

datos_ideal <- select(datos_2015,club,Pts_2014,inversion_relativa,valor,inversion_abs,ascenso,Pts)
solo_ideal <- select(datos_ideal,-club)
corre_ideal <- cor(solo_ideal)
par (mfrow=c(1,1))
corrplot(corre_ideal, method = "circle")

La variable ascenso aparece correlacionada con los Ptos_2014, para que la regresión sea válida como modelo, las variables explicativas no deberían estar corelacionadas entre sí.

Se continúa con el análisis de los residuos de la regresión de datos_ideal:

residuos1 <- residuals(lm.ideal)

# Agrego la columna de con los residuos al data frame y los visualizamos

datos_ideal <- datos_ideal %>% mutate(residuo_ml = residuos1)

ggplot(datos_ideal) +
    geom_point(aes(x = Pts, y = datos_ideal$residuo_ml)) +
    geom_hline(yintercept = 0, col = "blue") +
    labs(x = "Pts", y = "Residuo regresión lin. aplicada")

MASS::truehist(datos_ideal$residuo_ml)

Los residuos aparentan seguir una distribucion normal, aunque en el centro no se ve la campana tan definida, y las colas no son simétricas.

par (mfrow=c(2,2))
plot(lm.ideal)

Si bien los datos parecen fittear mejor, siguen observándose puntos que se alejan un poco de la media, y los residuos aparecen un poco dispersos en algunos valores y algunos superan las lineas de Cook, podrían tratarse de outliers, se aplicará una funcion logaritmo a la variable Pts para ver si el modelo fittea mejor:

datos_regrelog <- select(datos_ideal,-residuo_ml)

datos_regrelog <- datos_regrelog %>% mutate(log_Pts = log(Pts))
datos_regrelog<-select(datos_regrelog,club,Pts_2014,inversion_relativa,inversion_abs,valor,ascenso,log_Pts)

summary(datos_regrelog)
##      club              Pts_2014    inversion_relativa  inversion_abs   
##  Length:30          Min.   : 0.0   Min.   :-0.223610   Min.   :-2.900  
##  Class :character   1st Qu.: 0.0   1st Qu.: 0.004951   1st Qu.: 0.045  
##  Mode  :character   Median :21.0   Median : 0.122887   Median : 0.790  
##                     Mean   :17.5   Mean   : 0.172154   Mean   : 2.403  
##                     3rd Qu.:26.0   3rd Qu.: 0.253180   3rd Qu.: 4.075  
##                     Max.   :41.0   Max.   : 1.088256   Max.   :11.200  
##      valor           ascenso          log_Pts     
##  Min.   : 3.380   Min.   :0.0000   Min.   :2.639  
##  1st Qu.: 7.312   1st Qu.:0.0000   1st Qu.:3.417  
##  Median :13.155   Median :0.0000   Median :3.689  
##  Mean   :15.012   Mean   :0.3333   Mean   :3.648  
##  3rd Qu.:17.973   3rd Qu.:1.0000   3rd Qu.:3.907  
##  Max.   :43.400   Max.   :1.0000   Max.   :4.159
solo_datoslog <- select(datos_regrelog,-club)

corre_grallog <- cor(solo_datoslog)

corre_grallog
##                       Pts_2014 inversion_relativa inversion_abs      valor
## Pts_2014            1.00000000         0.08862199     0.2297565  0.3937985
## inversion_relativa  0.08862199         1.00000000     0.8326382  0.1789451
## inversion_abs       0.22975647         0.83263818     1.0000000  0.5716312
## valor               0.39379845         0.17894506     0.5716312  1.0000000
## ascenso            -0.65034226        -0.33060729    -0.4002169 -0.5426643
## log_Pts             0.53689460         0.43265488     0.5117835  0.5688450
##                       ascenso    log_Pts
## Pts_2014           -0.6503423  0.5368946
## inversion_relativa -0.3306073  0.4326549
## inversion_abs      -0.4002169  0.5117835
## valor              -0.5426643  0.5688450
## ascenso             1.0000000 -0.4869077
## log_Pts            -0.4869077  1.0000000
par (mfrow=c(1,1))
corrplot(corre_grallog, method = "number")

Se calcúla la regresión lineal entre la variable Pts transformada y todas las otras variables:

lm.fitlog = lm(log_Pts~.-club, data=datos_regrelog)
summary(lm.fitlog)
## 
## Call:
## lm(formula = log_Pts ~ . - club, data = datos_regrelog)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.62664 -0.08581 -0.00939  0.13246  0.40935 
## 
## Coefficients:
##                     Estimate Std. Error t value           Pr(>|t|)    
## (Intercept)         2.981438   0.184588  16.152 0.0000000000000215 ***
## Pts_2014            0.011739   0.004201   2.794            0.01006 *  
## inversion_relativa  1.137570   0.435374   2.613            0.01525 *  
## inversion_abs      -0.059214   0.035056  -1.689            0.10415    
## valor               0.023143   0.007806   2.965            0.00675 ** 
## ascenso             0.181737   0.145056   1.253            0.22232    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2289 on 24 degrees of freedom
## Multiple R-squared:  0.6032, Adjusted R-squared:  0.5206 
## F-statistic: 7.297 on 5 and 24 DF,  p-value: 0.0002788

El resultado no mejoró el modelo, aplicando logaritmo a los Pts fittea peor, disminuye R2 y R2 ajustado (60% y 52% respectivamente). Las variables significativas tienen un valor de probabilidad 0,01 y la inversion absoluta y el ascenso, dejan de cumplir con la hipotesis alternativa, es decir no se ven que expliquen la variable dependiente log_pts.

Vamos a evaluar si eliminándolas de la regresión mejora el ajuste del modelo:

datos_regrelog<-select(datos_regrelog,club,Pts_2014,inversion_relativa,valor,log_Pts)

summary(datos_regrelog)
##      club              Pts_2014    inversion_relativa      valor       
##  Length:30          Min.   : 0.0   Min.   :-0.223610   Min.   : 3.380  
##  Class :character   1st Qu.: 0.0   1st Qu.: 0.004951   1st Qu.: 7.312  
##  Mode  :character   Median :21.0   Median : 0.122887   Median :13.155  
##                     Mean   :17.5   Mean   : 0.172154   Mean   :15.012  
##                     3rd Qu.:26.0   3rd Qu.: 0.253180   3rd Qu.:17.973  
##                     Max.   :41.0   Max.   : 1.088256   Max.   :43.400  
##     log_Pts     
##  Min.   :2.639  
##  1st Qu.:3.417  
##  Median :3.689  
##  Mean   :3.648  
##  3rd Qu.:3.907  
##  Max.   :4.159
solo_datoslog <- select(datos_regrelog,-club)

corre_grallog <- cor(solo_datoslog)

corre_grallog
##                      Pts_2014 inversion_relativa     valor   log_Pts
## Pts_2014           1.00000000         0.08862199 0.3937985 0.5368946
## inversion_relativa 0.08862199         1.00000000 0.1789451 0.4326549
## valor              0.39379845         0.17894506 1.0000000 0.5688450
## log_Pts            0.53689460         0.43265488 0.5688450 1.0000000
par (mfrow=c(1,1))
corrplot(corre_grallog, method = "number")

Se calcula la regresión lineal entre la variable Pts transformada y los Ptos_2014, la inversion_relativa, el valor (de la temporada actual):

lm.fitlog = lm(log_Pts~.-club, data=datos_regrelog)
summary(lm.fitlog)
## 
## Call:
## lm(formula = log_Pts ~ . - club, data = datos_regrelog)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.66297 -0.06784  0.02958  0.12437  0.39328 
## 
## Coefficients:
##                    Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)        3.251207   0.084281  38.576 <0.0000000000000002 ***
## Pts_2014           0.008684   0.003431   2.531              0.0178 *  
## inversion_relativa 0.424277   0.169757   2.499              0.0191 *  
## valor              0.011472   0.004554   2.519              0.0182 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2347 on 26 degrees of freedom
## Multiple R-squared:  0.548,  Adjusted R-squared:  0.4959 
## F-statistic: 10.51 on 3 and 26 DF,  p-value: 0.0001046

No se produce mejora por lo contrario, a pesar de que la única correlación que persiste entre las variables explicativas es muy débil (valor con los Pts_2014), el R2 se encuentra ahora en 55% y el R2 ajustado en casi 50%.

Por último se realizara el análisis de los residuos y se evaluará el ploteo de la regresión con la variable transformada:

residuos1 <- residuals(lm.fitlog)

par (mfrow=c(2,2))
plot(lm.fitlog)

# Agrego la columna de con los residuos al data frame y los visualizamos

datos_regrelog <- datos_regrelog %>% mutate(residuo_ml = residuos1)

par (mfrow=c(1,1))

ggplot(datos_regrelog) +
    geom_point(aes(x = log_Pts, y = datos_ideal$residuo_ml)) +
    geom_hline(yintercept = 0, col = "blue") +
    labs(x = "Log_Pts", y = "Residuo regresión lin. aplicada")

MASS::truehist(datos_regrelog$residuo_ml)

Se visualiza que los residuos de la regresión aplicada al logaritmo de los Pts logrados en el campeonato, no responden a una distribución Normal, que es una condición para un buen ajuste.

Dado que el R2 ajustado en el mejor de los casos analizados, es el calculado con el data frame datos_ideal y la regresión lm.ideal y dicho modelo corresponde al que la variable Pts es explicada por las variables inversión relativa + el valor actual + la inversion absoluta + los puntos del 2014 + el ascenso, y que el modelo que arroja estos resultados, coexiste con:

  • Casos de correlatividad entre las variables predictoras.
  • Un ploteo del modelo que muestra que los residuos aparecen un poco dispersos en algunos valores, y algunos superan las lineas de cook.

Con el objetivo de visualizar si se logra una mejor performance del modelado de los datos: se decide continuar el análisis utilizando una variable que se añadió al data frame original: el valor del equipo en la temporada anterior (nueva variable valor_2014).

## Se vuelve a armar la base de datos datos_regre2 pero ahora incorporando el dato del valor en el año 2014

datos_regre2 <- select(datos_2015,club,Pts_2012_13,Pts_2013_14,Pts_2014,inversion_abs,inversion_relativa,valor,valor_2014,libertadores,sudamericana,ascenso,Pts)

head(datos_regre2)
## # A tibble: 6 x 12
##   club  Pts_2012_13 Pts_2013_14 Pts_2014 inversion_abs inversion_relat…
##   <chr>       <dbl>       <dbl>    <dbl>         <dbl>            <dbl>
## 1 Quil…          50          45       12          6.33            0.651
## 2 Olim…           0          50       19          2.25            0.255
## 3 Banf…           0           0       20          7.55            0.591
## 4 Godo…           0           0       20          3.4             0.301
## 5 Rosa…           0          54       21         10.8             1.09 
## 6 Defe…          49          56       21          1.27            0.203
## # … with 6 more variables: valor <dbl>, valor_2014 <dbl>,
## #   libertadores <dbl>, sudamericana <dbl>, ascenso <dbl>, Pts <dbl>

Se visualizara la matriz de correlación existente entre las distintas variables, mediante la obtención de los índices de correlación entre las variables predictoras o explicativas y la variable dependiente.

solo_datos2 <- select(datos_regre2,-club)
corre_gral2 <- cor(solo_datos2)
corrplot(corre_gral2, method = "circle")

En el cuadro de correlaciones se observa, que la variable Ptos en el campeonato está influida fuertemente por los puntos obtenidos en el 2014, el valor actual y el valor del año anterior, y en menor medida se encuentra inferido por el ascenso y y la inversión absoluta.

Se aplicará un modelo de regresión múltiple con todas estas variables, para ver que evidencia el modelo de cada una de ellas.

lm.fit2 = lm(Pts~.-club, data=datos_regre2)
summary(lm.fit2)
## 
## Call:
## lm(formula = Pts ~ . - club, data = datos_regre2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.4319  -4.0615  -0.5102   3.7480  15.2838 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)   
## (Intercept)        15.24647    6.85619   2.224  0.03849 * 
## Pts_2012_13        -0.08536    0.09557  -0.893  0.38295   
## Pts_2013_14         0.02375    0.09832   0.242  0.81174   
## Pts_2014            0.62565    0.20680   3.025  0.00696 **
## inversion_abs      -0.15954    1.49222  -0.107  0.91598   
## inversion_relativa 36.59682   14.68013   2.493  0.02207 * 
## valor              -2.43301    1.54270  -1.577  0.13127   
## valor_2014          3.18926    1.47462   2.163  0.04352 * 
## libertadores        3.10208    4.96887   0.624  0.53985   
## sudamericana       -2.74878    3.65604  -0.752  0.46136   
## ascenso            10.22777    5.40279   1.893  0.07368 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.328 on 19 degrees of freedom
## Multiple R-squared:  0.7616, Adjusted R-squared:  0.6361 
## F-statistic: 6.068 on 10 and 19 DF,  p-value: 0.0003925
par (mfrow=c(2,2))
plot(lm.fit2)

De acuerdo al análisis de la regresión las variables que mejor explican la regresión son: los Puntos del año anterior, la inversion relativa, el valor del año anerior y en menor lugar el ascenso, (son las mas significativas).

El R2 que representa cual es la proporcion de casos en los que el modelo cumple con las hipotesis alternativas de explicar la variable dependiente es del 76% y el R2 ajustado del 64%, este modelo al que le agregamos valor del equipo en la termporada anterior, parece que refina el mejor fitteo anterior que tenia R2 y R2 ajustado de 68% y 61% respectivamente. El F estadistico es menor (6.068) y contempla menos grados de libertad (19).

Se analizarán los residuos de esta nueva regresión aplicada:

  • La curva de los valores fiteados es un poco irregular, los residuos siguen una forma similar, pero algunos valores de residuos se alejan bastante.

  • Los residuos estandarizados se asemejan bastante a los cuantiles teoricos de la Normal, excepto alejandose del centro hacia los extremos que aparecen un poco fuera de la recta y distantes.

  • La raiz de los residuos estandarizados versus los valores fiteados siguen un patrón definido, excepto para los valores menores en el eje x y estarían mostrando una tendencia a homoscedasticidad del modelo. El modelo no presentaría problemas de escala.

  • En el grafico de Residuos vrs Promedio, podemos ver que los valores respetan ajustadamente las lineas de Cook. Identificandose como posibles puntos autliers: 15, 19 y 26.

Las variables explicativas no deberían estar altamente correlacionadas entre sí, deben presentar la misma varianza, su distribucion debe ser normal y deben mantener una regresión lineal. De acuerdo a lo que se visualiza en la matriz de correlaciones no se cumple que todas las variables, sean independientes entre sí.

Nuevamente buscaremos la mejor combinacion de variables mediante el metodo Stepwise, con coeficiente AIC:

step(object = lm.fit2, direction = "both", trace = 1)
## Start:  AIC=127.8
## Pts ~ (club + Pts_2012_13 + Pts_2013_14 + Pts_2014 + inversion_abs + 
##     inversion_relativa + valor + valor_2014 + libertadores + 
##     sudamericana + ascenso) - club
## 
##                      Df Sum of Sq    RSS    AIC
## - inversion_abs       1      0.61 1020.9 125.82
## - Pts_2013_14         1      3.13 1023.4 125.89
## - libertadores        1     20.93 1041.2 126.41
## - sudamericana        1     30.35 1050.6 126.68
## - Pts_2012_13         1     42.84 1063.1 127.03
## <none>                            1020.2 127.80
## - valor               1    133.56 1153.8 129.49
## - ascenso             1    192.43 1212.7 130.98
## - valor_2014          1    251.17 1271.4 132.40
## - inversion_relativa  1    333.72 1354.0 134.29
## - Pts_2014            1    491.50 1511.7 137.59
## 
## Step:  AIC=125.82
## Pts ~ Pts_2012_13 + Pts_2013_14 + Pts_2014 + inversion_relativa + 
##     valor + valor_2014 + libertadores + sudamericana + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - Pts_2013_14         1      3.20 1024.1 123.91
## - libertadores        1     21.69 1042.5 124.45
## - sudamericana        1     35.15 1056.0 124.83
## - Pts_2012_13         1     42.59 1063.5 125.04
## <none>                            1020.9 125.82
## + inversion_abs       1      0.61 1020.2 127.80
## - ascenso             1    193.43 1214.3 129.02
## - valor               1    312.22 1333.1 131.82
## - valor_2014          1    437.07 1457.9 134.51
## - Pts_2014            1    490.89 1511.8 135.59
## - inversion_relativa  1    771.85 1792.7 140.71
## 
## Step:  AIC=123.91
## Pts ~ Pts_2012_13 + Pts_2014 + inversion_relativa + valor + valor_2014 + 
##     libertadores + sudamericana + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - libertadores        1     21.02 1045.1 122.52
## - sudamericana        1     39.08 1063.1 123.03
## - Pts_2012_13         1     47.93 1072.0 123.28
## <none>                            1024.1 123.91
## + Pts_2013_14         1      3.20 1020.9 125.82
## + inversion_abs       1      0.68 1023.4 125.89
## - ascenso             1    190.58 1214.6 127.03
## - valor               1    310.11 1334.2 129.85
## - valor_2014          1    433.96 1458.0 132.51
## - Pts_2014            1    543.42 1567.5 134.68
## - inversion_relativa  1    801.72 1825.8 139.26
## 
## Step:  AIC=122.52
## Pts ~ Pts_2012_13 + Pts_2014 + inversion_relativa + valor + valor_2014 + 
##     sudamericana + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - Pts_2012_13         1     41.53 1086.6 121.69
## - sudamericana        1     42.45 1087.5 121.71
## <none>                            1045.1 122.52
## + libertadores        1     21.02 1024.1 123.91
## + Pts_2013_14         1      2.54 1042.5 124.45
## + inversion_abs       1      1.45 1043.6 124.48
## - ascenso             1    281.02 1326.1 127.66
## - valor               1    316.08 1361.2 128.45
## - valor_2014          1    479.41 1524.5 131.85
## - Pts_2014            1    617.00 1662.1 134.44
## - inversion_relativa  1    829.22 1874.3 138.04
## 
## Step:  AIC=121.69
## Pts ~ Pts_2014 + inversion_relativa + valor + valor_2014 + sudamericana + 
##     ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## - sudamericana        1     34.68 1121.3 120.63
## <none>                            1086.6 121.69
## + Pts_2012_13         1     41.53 1045.1 122.52
## + libertadores        1     14.62 1072.0 123.28
## + Pts_2013_14         1      7.70 1078.9 123.47
## + inversion_abs       1      0.63 1086.0 123.67
## - ascenso             1    247.41 1334.0 125.84
## - valor               1    324.77 1411.4 127.53
## - valor_2014          1    481.52 1568.1 130.69
## - Pts_2014            1    783.58 1870.2 135.98
## - inversion_relativa  1    942.43 2029.0 138.42
## 
## Step:  AIC=120.63
## Pts ~ Pts_2014 + inversion_relativa + valor + valor_2014 + ascenso
## 
##                      Df Sum of Sq    RSS    AIC
## <none>                            1121.3 120.63
## + sudamericana        1     34.68 1086.6 121.69
## + Pts_2012_13         1     33.76 1087.5 121.71
## + libertadores        1     17.72 1103.6 122.15
## + inversion_abs       1      5.85 1115.4 122.47
## + Pts_2013_14         1      2.93 1118.4 122.55
## - ascenso             1    244.63 1365.9 124.55
## - valor               1    321.73 1443.0 126.20
## - valor_2014          1    477.05 1598.3 129.27
## - Pts_2014            1    756.88 1878.2 134.11
## - inversion_relativa  1    966.80 2088.1 137.28
## 
## Call:
## lm(formula = Pts ~ Pts_2014 + inversion_relativa + valor + valor_2014 + 
##     ascenso, data = datos_regre2)
## 
## Coefficients:
##        (Intercept)            Pts_2014  inversion_relativa  
##            14.8486              0.5108             38.2235  
##              valor          valor_2014             ascenso  
##            -2.5858              3.3780             10.1548

Al evaluar el resultado del modelo de regresión de los Pts explicados por las otras variables, se define que la regresión multiple está explicada por los beta correspondientes a las variables Ptos_2014, inversion_relativa, valor, valor del año anterior y ascenso.

Realizaremos la regresión lineal de estas variables a ver si mejora el R2.

lm.ideal2 = lm(Pts~inversion_relativa+valor+valor_2014+ascenso+Pts_2014, data=datos_regre2)
summary(lm.ideal2)
## 
## Call:
## lm(formula = Pts ~ inversion_relativa + valor + valor_2014 + 
##     ascenso + Pts_2014, data = datos_regre2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.7255  -4.2853   0.4764   3.3605  13.4930 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         14.8486     4.8352   3.071 0.005240 ** 
## inversion_relativa  38.2235     8.4026   4.549 0.000131 ***
## valor               -2.5858     0.9854  -2.624 0.014868 *  
## valor_2014           3.3780     1.0571   3.195 0.003883 ** 
## ascenso             10.1548     4.4378   2.288 0.031228 *  
## Pts_2014             0.5108     0.1269   4.025 0.000495 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.835 on 24 degrees of freedom
## Multiple R-squared:  0.7379, Adjusted R-squared:  0.6833 
## F-statistic: 13.52 on 5 and 24 DF,  p-value: 0.000002512

Esta nueva regresión desmejoró la performance respecto a la primera, porque R2 cayó de 74% a un 73%, pero curiosamente el R2 ajustado mejoro de 63% a 68%.

El F estadistico aumento de 6.068 a 13,52 y los grados de libertad pasaron de 19 a 24.

Sin embargo todas las variables del modelo son predictoras: Ptos_2014, valor_2014, inversion_relativa, ascenso y valor.

Se realizará el análisis de la regresión conservando solamente las variables significativas para la predicción.

Veamos la matriz de correlaciones:

datos_ideal2 <- select(datos_2015,club,Pts_2014,inversion_relativa,valor,valor_2014,ascenso,Pts)
solo_ideal2 <- select(datos_ideal2,-club)
corre_ideal2 <- cor(solo_ideal2)
par (mfrow=c(1,1))
corrplot(corre_ideal2, method = "number")

Corroboramos que la variable ascenso aparece correlacionada con los Pts_2014 y el valor_2014.

Se analizan los residuos:

par (mfrow=c(1,1))
residuos1 <- residuals(lm.ideal2)

datos_ideal2 <- datos_ideal2 %>% mutate(residuo_ml = residuos1)

ggplot(datos_ideal2) +
    geom_point(aes(x = Pts, y = datos_ideal2$residuo_ml)) +
    geom_hline(yintercept = 0, col = "blue") +
    labs(x = "Pts", y = "Residuo regresión lin. aplicada")

MASS::truehist(datos_ideal2$residuo_ml)

Los residuos aparentan seguir una distribución Normal, aunque en el centro no se ve la campana tan definida, y las colas ahora no son del todo simetricas. Se continuará el análisis en detalle:

par (mfrow=c(2,2))
plot(lm.ideal2)

Si bien los datos parecen fittear mejor, siguen observandose puntos que se alejan un poco de la media (15,12 y 19), y los residuos aparecen un poco dispersos en algunos valores y el 19 supera las líneas de Cook, podrían tratarse de outliers, se aplicará una función logaritmo a la variable Pts para ver si el modelo fittea mejor:

datos_regrelog2 <- select(datos_ideal2,-residuo_ml)
datos_regrelog2 <- datos_regrelog2 %>% mutate(log_Pts = log(Pts))
datos_regrelog2<-select(datos_regrelog2,club,Pts_2014,inversion_relativa,valor,ascenso,log_Pts)

summary(datos_regrelog2)
##      club              Pts_2014    inversion_relativa      valor       
##  Length:30          Min.   : 0.0   Min.   :-0.223610   Min.   : 3.380  
##  Class :character   1st Qu.: 0.0   1st Qu.: 0.004951   1st Qu.: 7.312  
##  Mode  :character   Median :21.0   Median : 0.122887   Median :13.155  
##                     Mean   :17.5   Mean   : 0.172154   Mean   :15.012  
##                     3rd Qu.:26.0   3rd Qu.: 0.253180   3rd Qu.:17.973  
##                     Max.   :41.0   Max.   : 1.088256   Max.   :43.400  
##     ascenso          log_Pts     
##  Min.   :0.0000   Min.   :2.639  
##  1st Qu.:0.0000   1st Qu.:3.417  
##  Median :0.0000   Median :3.689  
##  Mean   :0.3333   Mean   :3.648  
##  3rd Qu.:1.0000   3rd Qu.:3.907  
##  Max.   :1.0000   Max.   :4.159
solo_datoslog2 <- select(datos_regrelog2,-club)

corre_grallog2 <- cor(solo_datoslog2)

Sigue visualizándose correlación entre algunas variables explicativas que podrían estar distorsionando los resultados:

par (mfrow=c(1,1))
corrplot(corre_grallog2, method = "number")

Se calcula la regresión lineal entre la variable Pts transformada por logaritmo, y todas las otras variables:

lm.fitlog2 = lm(log_Pts~.-club, data=datos_regrelog2)
summary(lm.fitlog2)
## 
## Call:
## lm(formula = log_Pts ~ . - club, data = datos_regrelog2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.67604 -0.03498  0.02140  0.12059  0.37805 
## 
## Coefficients:
##                    Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)        3.164245   0.154976  20.418 <0.0000000000000002 ***
## Pts_2014           0.010358   0.004271   2.425              0.0229 *  
## inversion_relativa 0.464416   0.181686   2.556              0.0170 *  
## valor              0.012757   0.004984   2.559              0.0169 *  
## ascenso            0.094339   0.140447   0.672              0.5079    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2372 on 25 degrees of freedom
## Multiple R-squared:  0.556,  Adjusted R-squared:  0.485 
## F-statistic: 7.828 on 4 and 25 DF,  p-value: 0.0003105

Al aplicar logaritmo los indices R2 y R2 ajustados demejoraron sensiblemente, por lo tanto se continuará trabajando con los Pts sin transformación, y eliminando de la regresión la variable ascenso que parece estar muy correlacionada.

datos_ideal3<-select(datos_regre2,club,Pts_2014,inversion_relativa,valor,valor_2014,Pts)

summary(datos_ideal3)
##      club              Pts_2014    inversion_relativa      valor       
##  Length:30          Min.   : 0.0   Min.   :-0.223610   Min.   : 3.380  
##  Class :character   1st Qu.: 0.0   1st Qu.: 0.004951   1st Qu.: 7.312  
##  Mode  :character   Median :21.0   Median : 0.122887   Median :13.155  
##                     Mean   :17.5   Mean   : 0.172154   Mean   :15.012  
##                     3rd Qu.:26.0   3rd Qu.: 0.253180   3rd Qu.:17.973  
##                     Max.   :41.0   Max.   : 1.088256   Max.   :43.400  
##    valor_2014          Pts       
##  Min.   : 0.000   Min.   :14.00  
##  1st Qu.: 7.253   1st Qu.:30.50  
##  Median : 9.838   Median :40.00  
##  Mean   :13.439   Mean   :40.33  
##  3rd Qu.:16.243   3rd Qu.:49.75  
##  Max.   :37.522   Max.   :64.00
solo_datos3 <- select(datos_ideal3,-club)

corre_ideal3 <- cor(solo_datos3)

corre_ideal3
##                      Pts_2014 inversion_relativa     valor valor_2014
## Pts_2014           1.00000000         0.08862199 0.3937985 0.38510253
## inversion_relativa 0.08862199         1.00000000 0.1789451 0.03574886
## valor              0.39379845         0.17894506 1.0000000 0.98089870
## valor_2014         0.38510253         0.03574886 0.9808987 1.00000000
## Pts                0.57092216         0.43722946 0.6173146 0.59323818
##                          Pts
## Pts_2014           0.5709222
## inversion_relativa 0.4372295
## valor              0.6173146
## valor_2014         0.5932382
## Pts                1.0000000

Se verifica si aún exite correlación entre las variables explicativas:

par (mfrow=c(1,1))
corrplot(corre_ideal3, method = "number")

Se calcula la regresión lineal entre la variable Pts sin transformar y todas las otras variables utilizadas previamente, excepto el ascenso:

lm.ideal3 = lm(Pts~.-club, data=datos_ideal3)
summary(lm.ideal3)
## 
## Call:
## lm(formula = Pts ~ . - club, data = datos_ideal3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -14.795  -4.466   0.264   3.676  12.989 
## 
## Coefficients:
##                    Estimate Std. Error t value      Pr(>|t|)    
## (Intercept)         24.3741     2.6599   9.164 0.00000000181 ***
## Pts_2014             0.3318     0.1081   3.070       0.00510 ** 
## inversion_relativa  28.4572     7.8272   3.636       0.00125 ** 
## valor               -1.7851     0.9961  -1.792       0.08524 .  
## valor_2014           2.3850     1.0424   2.288       0.03087 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.392 on 25 degrees of freedom
## Multiple R-squared:  0.6808, Adjusted R-squared:  0.6297 
## F-statistic: 13.33 on 4 and 25 DF,  p-value: 0.00000602

La variable Valor (2015) sigue altamente relacionada a la variable valor_2014 y los índices de la regresión desmejoraron respecto a la regresión con todas las variables, pero no tanto como con la transformación logarítmica.

R2 ahora toma valor 68% y el R2 ajustado aprox 63%. El F estadistico aumentó, y la regresión cuenta con un grado mas de libertad (DF=25).

Se realiza la última prueba eliminando la variable valor, y verificando la evolución de la regresión:

datos_ideal3<-select(datos_regre2,club,Pts_2014,inversion_relativa,valor_2014,Pts)

summary(datos_ideal3)
##      club              Pts_2014    inversion_relativa    valor_2014    
##  Length:30          Min.   : 0.0   Min.   :-0.223610   Min.   : 0.000  
##  Class :character   1st Qu.: 0.0   1st Qu.: 0.004951   1st Qu.: 7.253  
##  Mode  :character   Median :21.0   Median : 0.122887   Median : 9.838  
##                     Mean   :17.5   Mean   : 0.172154   Mean   :13.439  
##                     3rd Qu.:26.0   3rd Qu.: 0.253180   3rd Qu.:16.243  
##                     Max.   :41.0   Max.   : 1.088256   Max.   :37.522  
##       Pts       
##  Min.   :14.00  
##  1st Qu.:30.50  
##  Median :40.00  
##  Mean   :40.33  
##  3rd Qu.:49.75  
##  Max.   :64.00
solo_datos3 <- select(datos_ideal3,-club)

corre_ideal3 <- cor(solo_datos3)

corre_ideal3
##                      Pts_2014 inversion_relativa valor_2014       Pts
## Pts_2014           1.00000000         0.08862199 0.38510253 0.5709222
## inversion_relativa 0.08862199         1.00000000 0.03574886 0.4372295
## valor_2014         0.38510253         0.03574886 1.00000000 0.5932382
## Pts                0.57092216         0.43722946 0.59323818 1.0000000

Se verifica si aún exite correlación entre las variables explicativas:

corrplot(corre_ideal3, method = "number")

La correlación se mantiene entre las variables valor 2014 y ptos_2014 pero es menor que en las pruebas anteriores. Se calcula la regresión lineal entre la variable Pts transformada y todas las otras variables menos ascenso y valor:

lm.ideal3 = lm(Pts~.-club, data=datos_ideal3)
summary(lm.ideal3)
## 
## Call:
## lm(formula = Pts ~ . - club, data = datos_ideal3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13.6991  -4.1704   0.4057   4.1793  13.3658 
## 
## Coefficients:
##                    Estimate Std. Error t value     Pr(>|t|)    
## (Intercept)         24.3510     2.7707   8.789 0.0000000029 ***
## Pts_2014             0.3233     0.1124   2.875      0.00795 ** 
## inversion_relativa  18.1017     5.4995   3.292      0.00287 ** 
## valor_2014           0.5364     0.1563   3.431      0.00202 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.7 on 26 degrees of freedom
## Multiple R-squared:  0.6398, Adjusted R-squared:  0.5982 
## F-statistic: 15.39 on 3 and 26 DF,  p-value: 0.000005874

El R2, y el R2 ajustado resultante de la regresión anterior, resulta decrementarse en 4 % aproximadamente.

Se analizarán los residuos de esta última regresión:

residuos1 <- residuals(lm.ideal3)
datos_ideal3 <- datos_ideal3 %>% mutate(residuo_ml = residuos1)
ggplot(datos_ideal3) +
    geom_point(aes(x = Pts, y = datos_ideal3$residuo_ml)) +
    geom_hline(yintercept = 0, col = "green") +
    labs(x = "Pts", y = "Residuo regresión lin. aplicada")

MASS::truehist(datos_ideal3$residuo_ml)

La distribucion de los residuos dejó de ser normal:

par (mfrow=c(2,2))
plot(lm.ideal3)

Los quantiles se ven menos cercanos a una normal.

Se eligirá como regresión resultante lm.ideal2, con variable dependiente Pts y variables explicativas Pts_2014, valor_2014, inversion_relativa, ascenso y valor, ya que es la que performa mejor en conjunto.

par (mfrow=c(2,2))
plot(lm.ideal2)

Variando los valores de estas variables se podría estimar la posición del equipo en la proxima temporada con un 74% de probabilidad de no cometer errores.

Conclusión:

De acuerdo a los resultados de esta regresión los coeficientes beta que afectan a las variables explicativas son:

inversion: 38,22
valor actual: 2,58
valor_2014: 3,37
ascenso: 10.15
Puntos de la temporada anterior: 0.51

Significa que por cada variación de una unidad de una de las variables, manteniendose constantes el resto, el puntaje del equipo en el presente campeonato variará en el respectivo beta de la variable explicativa.

Puntaje de la temporada = 38.2235 ptos/% (inversion porcentual) - 2.58 ptos/pesos * valor actual del equipo + 3.37 ptos/pesos * valor anterior del equipo + 10.15 puntos si viene de ascenso + 0,51 por cada punto obtenido en el campeonato anterior.

Potenciales Outliers:

En casi todos los graficos aparecen identificados las posiciones 12, 21 y 19. El valor 19 aparece por fuera de la línea de Cook. Estos valores corresponden a: Arsenal, River y Union La pregunta es: ¿debería eliminar esos valores? Los valores de las var. explicativas son:

      Ptos_2014  Inv_Relativa  Valor_2014   Valor    Pts Ascenso     

Arsenal 26 0,019 14,13 14,28 27 0
River 39 0,298 37,52 43,40 49 0
Union 0 - 0,015 6,62 6,58 41 1

El punto que aparece mas cercano a las lineas de cook es River, puede explicarse porque a pesar de tener una mínima variación positiva de valor, retrocedio 10 puntos en el campeonato, por ende escapa a la razonabilidad del modelo, en el caso de Arsenal, no debería presentar ninguna anomalía porque tuvo un incremento menor, y disminuyó un punto su rendimiento en el campeonato actual, lo unico llamativo es que la inversion fue positiva y los puntos obtenidos decrementaron, en el caso de Union, proviene del ascenso, por lo cual no tiene puntos en la temporada anterior y posiblemente este influyendo en el resultado.

A continuación se va a someter al modelo a algunos test adicionales:

vif(lm.ideal2)
## inversion_relativa              valor         valor_2014 
##           2.985691          67.005304          68.134690 
##            ascenso           Pts_2014 
##           2.810218           1.910377

Se estudiara si existe autocorrelación en las variables predictoras:

dwt(lm.ideal2, alternative = "two.sided")
##  lag Autocorrelation D-W Statistic p-value
##    1       0.1551508      1.689293    0.25
##  Alternative hypothesis: rho != 0

La evidencia de autocorrelación es relativamente baja.

Se estudiarán los residuos:

ggplot(data = datos_ideal2, aes(x = predict(lm.ideal2), y = abs(residuo_ml))) +
geom_hline(yintercept = 3, color = "grey", linetype = "dashed") +
# se identifican en rojo observaciones con residuos estandarizados absolutos > 3
geom_point(aes(color = ifelse(abs(residuo_ml) > 3, 'red', 'black'))) +
scale_color_identity() +
labs(title = "Distribución de los residuos Pos",
     x = "predicción modelo") +
  theme_bw() + theme(plot.title = element_text(hjust = 0.5))

outlierTest(lm.ideal2)
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
##     rstudent unadjusted p-value Bonferroni p
## 19 -2.463724           0.021655      0.64964

El test de valores autliers no presenta datos atípicos, ya que el cálculo de rstudent no dá >3, por lo tanto los valores no superan mas de 3 veces el desvío standard de los residuos.

Igualmente se evaluará si algunos de los valores es influyente, las condiciones para que eso suceda es que se cumpla alguna de las siguientes situaciones:

summary(influence.measures(lm.ideal2))
## Potentially influential observations of
##   lm(formula = Pts ~ inversion_relativa + valor + valor_2014 +      ascenso + Pts_2014, data = datos_regre2) :
## 
##    dfb.1_ dfb.inv_ dfb.valr dfb.v_20 dfb.ascn dfb.P_20 dffit   cov.r  
## 5  -0.02   0.06    -0.01     0.01     0.01     0.01     0.08    2.48_*
## 11  0.00  -0.07     0.09    -0.10     0.03     0.05     0.15    2.19_*
## 19  0.99   0.30    -0.85     0.62    -0.59    -0.63    -2.07_*  0.54  
## 22  0.14  -0.11     0.14    -0.12    -0.16    -0.27     0.34    1.96_*
## 29 -0.12   0.05     0.01    -0.01     0.11     0.13    -0.17    1.92_*
## 30  0.05  -0.07     0.08    -0.09    -0.03    -0.03     0.10    2.68_*
##    cook.d hat  
## 5   0.00   0.48
## 11  0.00   0.42
## 19  0.59   0.41
## 22  0.02   0.37
## 29  0.01   0.34
## 30  0.00   0.52
obsinf <- 2.5*((5+1)/30) 
view(obsinf)

La distancia de cook dan cercanas a 0, por ende no serían influyentes, pero si existe un punto cuyo Leverage Hat que supera el punto de obsinf. A que club corresponde? es el último identificado como 30, en la base de datos el registro 30 es: Crucero del Norte, que no tiene datos de inversión relativa, ni de temporadas anteriores, por lo cual queda explicado que pueda ser influyente.

influencePlot(lm.ideal2)

##        StudRes       Hat       CookD
## 5   0.08666600 0.4809504 0.001209983
## 15  2.31586535 0.1413239 0.124484994
## 19 -2.46372397 0.4146288 0.591599923
## 30  0.09322172 0.5186277 0.001627709

Devuelve resultado similar.

Para conocer la variabilidad que explica cada uno de los predictores incorporadas en el modelo se recurrirá a un ANOVA, con el se analizará la varianza.

Por muy alta que sea la bondad de ajuste, si el test F no resulta significativo no se puede aceptar el modelo como válido puesto que no es capaz de explicar la varianza observada mejor de lo esperado por azar.

anova <- aov(lm.ideal2)
summary(anova)
##                    Df Sum Sq Mean Sq F value    Pr(>F)    
## inversion_relativa  1  818.0   818.0  17.507  0.000331 ***
## valor               1 1284.5  1284.5  27.494 0.0000225 ***
## valor_2014          1  295.2   295.2   6.319  0.019062 *  
## ascenso             1    2.8     2.8   0.060  0.808128    
## Pts_2014            1  756.9   756.9  16.200  0.000495 ***
## Residuals          24 1121.3    46.7                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

La hipótesis nula de la que parten los diferentes tipos de ANOVA es que la media de la variable estudiada es la misma en los diferentes grupos, en contraposición a la hipótesis alternativa de que al menos dos medias difieren de forma significativa. ANOVA permite comparar múltiples medias, pero lo hace mediante el estudio de las varianzas.

El funcionamiento básico de un ANOVA consiste en calcular la media de cada uno de los grupos para a continuación comparar la varianza de estas medias (varianza explicada por la variable grupo, intervarianza) frente a la varianza promedio dentro de los grupos (la no explicada por la variable grupo, intravarianza). Bajo la hipótesis nula de que las observaciones de los distintos grupos proceden todas la misma población (tienen la misma media y varianza), la varianza ponderada entre grupos será la misma que la varianza promedio dentro de los grupos. Conforme las medias de los grupos estén más alejadas las unas de las otras, la varianza entre medias se incrementará y dejará de ser igual a la varianza promedio dentro de los grupos.

En nuestro modelo final, es claro que al menos tres de las variables estarían contradiciendo la hipotesis nula, porque estarían explicando el valor de las variables predichas en mas de un 5% de los casos, exceptuando la variable ascenso.

Se va a realizar utilizar Bootstrap para obtener un valor mejor aproximado de los coeficientes:

datos_boot <- select(datos_ideal2,Pts,valor_2014,Pts_2014,inversion_relativa,valor,ascenso)
  
reg <- function(X,Y){
                 boot<-sample.int(nrow(datos_boot),nrow(datos_boot),replace=T)
                 boot_fit = lm(Pts~.,data=datos_boot[boot,])
                 return(coef(boot_fit))
}
             boot <- t(replicate(10000,reg(X,Y)))
             head(boot)
##      (Intercept) valor_2014  Pts_2014 inversion_relativa     valor
## [1,]    19.62697   2.383578 0.4952775           37.78068 -2.025906
## [2,]    11.66568   3.660787 0.3884813           41.58928 -2.693539
## [3,]    17.95786   3.261379 0.4135200           38.90161 -2.566341
## [4,]    10.76843   2.242934 0.5213524           33.86583 -1.261783
## [5,]    15.49546   2.532998 0.5578293           26.73834 -1.686220
## [6,]    13.64254   1.710552 0.3764619           38.28297 -1.012846
##        ascenso
## [1,]  6.839383
## [2,] 12.350510
## [3,]  5.466116
## [4,] 11.816182
## [5,]  7.698675
## [6,]  9.370318
             summary(boot)
##   (Intercept)       valor_2014         Pts_2014       inversion_relativa
##  Min.   :-17.95   Min.   :-15.798   Min.   :-0.0910   Min.   :-66.17    
##  1st Qu.: 10.61   1st Qu.:  2.715   1st Qu.: 0.4507   1st Qu.: 33.93    
##  Median : 14.01   Median :  3.240   Median : 0.5219   Median : 37.93    
##  Mean   : 14.28   Mean   :  3.178   Mean   : 0.5281   Mean   : 37.25    
##  3rd Qu.: 17.60   3rd Qu.:  3.776   3rd Qu.: 0.5971   3rd Qu.: 41.82    
##  Max.   : 50.08   Max.   : 16.406   Max.   : 1.5081   Max.   :149.75    
##      valor            ascenso       
##  Min.   :-14.141   Min.   :-13.041  
##  1st Qu.: -3.015   1st Qu.:  7.931  
##  Median : -2.466   Median : 10.668  
##  Mean   : -2.385   Mean   : 10.679  
##  3rd Qu.: -1.857   3rd Qu.: 13.372  
##  Max.   : 14.662   Max.   : 57.655
#par(mfrow=c(1,1))
MASS::truehist(boot[,1])

MASS::truehist(boot[,2])

MASS::truehist(boot[,3])

MASS::truehist(boot[,4])

MASS::truehist(boot[,5])

MASS::truehist(boot[,6])

#par(mfrow=c(1,1))
plot(boot[,2],boot[,1],pch=19,cex=.1)

plot(boot[,3],boot[,1],pch=19,cex=.1)

plot(boot[,4],boot[,1],pch=19,cex=.1)

plot(boot[,5],boot[,1],pch=19,cex=.1)

plot(boot[,6],boot[,1],pch=19,cex=.1)

Los graficos anteriores reflejan el cruce de los valores de los coeficientes beta de las variable explicativas vrs los puntos, se ven nubes, quizas tiene que ver con que es una regresión lineal multiple?

quantile(boot[,1],p=c(.025,.25,.5,.75,.975))
##      2.5%       25%       50%       75%     97.5% 
##  4.345295 10.614560 14.006018 17.603563 26.167072
quantile(boot[,2],p=c(.025,.25,.5,.75,.975))
##     2.5%      25%      50%      75%    97.5% 
## 0.175947 2.715449 3.240409 3.775930 5.551586
quantile(boot[,3],p=c(.025,.25,.5,.75,.975))
##      2.5%       25%       50%       75%     97.5% 
## 0.3124833 0.4506598 0.5218544 0.5971059 0.7797304
quantile(boot[,4],p=c(.025,.25,.5,.75,.975))
##     2.5%      25%      50%      75%    97.5% 
## 14.79236 33.92629 37.93183 41.82087 54.51365
quantile(boot[,5],p=c(.025,.25,.5,.75,.975))
##       2.5%        25%        50%        75%      97.5% 
## -4.6531120 -3.0145125 -2.4660068 -1.8565873  0.3892092
quantile(boot[,6],p=c(.025,.25,.5,.75,.975))
##      2.5%       25%       50%       75%     97.5% 
##  1.724292  7.930734 10.668211 13.371947 19.610145

Los cuantiles explican por ejemplo, para la variable valor_2014, que el beta correspondiente a un valor de error tipo I de 0,05% oscilará en el intervalo [0.40,5.57]Pts/$.

Por otra parte, con los coeficientes obtenidos en la función, podremos de acuerdo al puntaje que se quiera obtener, y el valor que esperamos que el equipo tenga en el proximo año, predecir la inversion a realizar para cumplir la meta. Para esto se necesitará contar con los datos de fin de la temporada actual: valor del equipo en cuestión, si provino del ascenso o los puntos obtenidos en la temporada actual.

O podrìamos de acuerdo a los mimsos datos, fijar un valor del equipo, y predecir los puntos que el equipo logrará en la proxima temporada.

Desde mi punto de vista, sería mas util plantear el ejercicio con la variable dependiente Posición en vez de puntos, porque la variable puntos de por si, a priori, no informa nada acerca de obtener el campeonato. Dado que la posición está inversamente correlacionada con la variable puntos, sería mucho mas util, plantear una regresion con variable dependiente Posicion, y variables explicativas: ascenso, ptos_2014, valor_2014 e inversion_relativa. No se trabajó porque no respondía a la consigna del ejercicio.

Por último se debe calcular la incertidumbre del modelo, ensayando un bootstrat semi parametrico en el cual se calculen mediante remuestreo de los datos, los residuos, para obtener que tanto se alejan los valores predichos, de los reales.

NO PUDE DESARROLLARLO, POR FAVOR EXPLICAR COMO HACERLO