Kayla Nightingale se preguntó acerca de los factores que los gerentes de equipo consideraron al determinar los valores de mercado de los jugadores de la Liga de Campeones de la Unión de Asociaciones Europeas de Fútbol, para tal efecto Nightingale reunió varios datos de rendimiento de la liga y las noticias de transferencia de 77 jugadores de fútbol ofensivos notables (es decir, mediocampistas y delanteros) que se mudaron a otro equipo entre 2009 y 2015.

Los objetivos del presente trabajo son:

  • Determinar los factores esenciales que hacen que un jugador de fútbol ofensivo sea valioso.

  • Construir un modelo funcional que pudiera predecir el valor de mercado de un jugador.

1.Análisis descriptivo

cargamos la base de datos

library("xlsx")
setwd("C:/Users/Dell/Desktop/analisis lineal/TRABAJO")
Base <-read.xlsx("W16653-XLS-ENG task-1.xlsx", sheetName = "Student_Data")
library(funModeling)
df_status(Base)
##       variable q_zeros p_zeros q_na p_na q_inf p_inf    type unique
## 1           X.       0    0.00    0    0     0     0 numeric     77
## 2         Year       0    0.00    0    0     0     0 numeric      7
## 3  Player.Name       0    0.00    0    0     0     0  factor     71
## 4         From       0    0.00    0    0     0     0  factor     45
## 5           To       0    0.00    0    0     0     0  factor     26
## 6      GBP..M.       0    0.00    0    0     0     0 numeric     55
## 7          Y.5      12   15.58    0    0     0     0 numeric     38
## 8          Y.4       5    6.49    0    0     0     0 numeric     37
## 9          Y.3       1    1.30    0    0     0     0 numeric     38
## 10         Y.2       0    0.00    0    0     0     0 numeric     32
## 11         Y.1       0    0.00    0    0     0     0 numeric     37
## 12          WA       0    0.00    0    0     0     0 numeric     72
## 13       Goals       0    0.00    0    0     0     0 numeric     50
## 14         App       0    0.00    0    0     0     0 numeric     53
## 15         G.A       0    0.00    0    0     0     0 numeric     75
## 16         Age       0    0.00    0    0     0     0 numeric     13
## 17      Height       0    0.00    0    0     0     0 numeric     25
## 18         Pos       0    0.00    0    0     0     0  factor      2
## 19        Foot       0    0.00    0    0     0     0  factor      3
## 20          CR       0    0.00    0    0     0     0 numeric      2
## 21          NR       0    0.00    0    0     0     0 numeric      3
names(Base)
##  [1] "X."          "Year"        "Player.Name" "From"        "To"         
##  [6] "GBP..M."     "Y.5"         "Y.4"         "Y.3"         "Y.2"        
## [11] "Y.1"         "WA"          "Goals"       "App"         "G.A"        
## [16] "Age"         "Height"      "Pos"         "Foot"        "CR"         
## [21] "NR"
head(Base)
##   X. Year        Player.Name               From              To GBP..M.
## 1  1 2015     Douglas Costa  Shakhtar Donetsk  Bayern Munich    21.9
## 2  2 2015  André Schürrle           Chelsea      Wolfsburg    22.0
## 3  3 2015     Juan Cuadrado        Fiorentina        Chelsea    23.3
## 4  4 2015   Mateo KovaÄ\215ić             Inter    Real Madrid    23.4
## 5  5 2015      Paulo Dybala           Palermo       Juventus    23.4
## 6  6 2015      Carlos Bacca           Sevilla          Milan    23.9
##         Y.5       Y.4       Y.3       Y.2       Y.1        WA Goals App
## 1 0.9000000 0.9000000 0.9000000 0.9642857 0.7692308 0.8867033    25 128
## 2 0.9117647 0.9117647 1.0000000 0.8823529 0.9375000 0.9286765    45 156
## 3 0.2368421 0.8684211 0.9473684 0.8421053 0.8500000 0.7489474    23 127
## 4 0.8333333 0.8461538 0.8125000 0.8421053 0.9210526 0.8510290    11 126
## 5 0.7105263 1.0000000 0.7105263 0.6666667 0.9210526 0.8017544    38 128
## 6 0.9722222 0.7142857 1.0000000 0.9210526 0.9473684 0.9109858    82 152
##          G.A Age Height Pos Foot CR NR
## 1 0.19531250  24    172 OFF    L  2  1
## 2 0.28846154  24    184 OFF    R  1  1
## 3 0.18110236  27    178 OFF    R  2  3
## 4 0.08730159  21    178 MID    R  1  2
## 5 0.29687500  21    176 OFF    L  2  1
## 6 0.53947368  28    181 OFF    R  2  3
summary(Base)
##        X.          Year                  Player.Name                 From   
##  Min.   : 1   Min.   :2009    Ã\201ngel Di María: 2    Arsenal         : 4  
##  1st Qu.:20   1st Qu.:2012    Cesc Fàbregas  : 2    Atlético Madrid: 4  
##  Median :39   Median :2013    Juan Mata       : 2    Barcelona       : 4  
##  Mean   :39   Mean   :2013    Radamel Falcao  : 2    Liverpool       : 4  
##  3rd Qu.:58   3rd Qu.:2015    Roberto Firmino : 2    Valencia        : 4  
##  Max.   :77   Max.   :2015    Robin van Persie: 2    Porto           : 3  
##                              (Other)           :65   (Other)           :54  
##                    To        GBP..M.           Y.5              Y.4        
##   Manchester City  :11   Min.   : 4.25   Min.   :0.0000   Min.   :0.0000  
##   Real Madrid      : 9   1st Qu.:24.70   1st Qu.:0.4474   1st Qu.:0.7143  
##   Chelsea          : 8   Median :30.00   Median :0.8421   Median :0.8421  
##   Manchester United: 7   Mean   :34.18   Mean   :0.6715   Mean   :0.7569  
##   Barcelona        : 6   3rd Qu.:35.50   3rd Qu.:0.9211   3rd Qu.:0.9118  
##   Liverpool        : 4   Max.   :86.00   Max.   :1.0000   Max.   :1.0000  
##  (Other)            :32                                                    
##       Y.3              Y.2              Y.1               WA        
##  Min.   :0.0000   Min.   :0.2895   Min.   :0.1316   Min.   :0.2568  
##  1st Qu.:0.6579   1st Qu.:0.7333   1st Qu.:0.7667   1st Qu.:0.7263  
##  Median :0.8158   Median :0.8667   Median :0.8684   Median :0.8018  
##  Mean   :0.7719   Mean   :0.8144   Mean   :0.8280   Mean   :0.7685  
##  3rd Qu.:0.9211   3rd Qu.:0.9211   3rd Qu.:0.9211   3rd Qu.:0.8684  
##  Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :0.9393  
##                                                                     
##      Goals             App             G.A               Age       
##  Min.   :  4.00   Min.   : 47.0   Min.   :0.03604   Min.   :19.00  
##  1st Qu.: 25.00   1st Qu.:127.0   1st Qu.:0.19136   1st Qu.:23.00  
##  Median : 38.00   Median :143.0   Median :0.27143   Median :25.00  
##  Mean   : 45.25   Mean   :136.2   Mean   :0.32832   Mean   :24.73  
##  3rd Qu.: 61.00   3rd Qu.:156.0   3rd Qu.:0.46199   3rd Qu.:27.00  
##  Max.   :111.00   Max.   :189.0   Max.   :0.70667   Max.   :31.00  
##                                                                    
##      Height       Pos     Foot         CR              NR       
##  Min.   :167.0   MID:30   B:16   Min.   :1.000   Min.   :1.000  
##  1st Qu.:175.0   OFF:47   L:18   1st Qu.:1.000   1st Qu.:1.000  
##  Median :180.0            R:43   Median :1.000   Median :1.000  
##  Mean   :179.9                   Mean   :1.182   Mean   :1.325  
##  3rd Qu.:184.0                   3rd Qu.:1.000   3rd Qu.:1.000  
##  Max.   :195.0                   Max.   :2.000   Max.   :3.000  
## 

La primera columna es un identificador, contamos con 20 variables de las cuales 5 son cualitativas y 15 son cuantitativas, para el modelo de regresion solo consideraremos las variables cuantitativas, la variable respuesta es :

  • GBP (M): precio de transferencia del jugador en libras esterlinas.
library(ggplot2)
ggplot(data = Base, aes(x = Year)) + 
  geom_bar(color = "blue", fill = "white") +         
  coord_flip() + 
  labs(list(x = "Region", y = "Frecuencia"))+
  geom_text(stat='count',aes(label=..count..),vjust=0.5)

densidad

ggplot(data = Base,        
       aes(x =  GBP..M.))+
  geom_density() +        
  labs(list(x = "Precio de venta del jugador", y = "Densidad"))+
  theme(axis.title = element_text(face = "bold", colour = "#990000",
                                  size = 10), axis.text = element_text(size = 7),   
        plot.title = element_text(size = rel(1.2), colour = "blue")) 

Analizar la relación entre variables

En primer lugar estableceremos si existe relacion entre las variables.

De este modo identificaremos los mejores predictores para el modelo de regresion lineal, mediante el calculo de los coeficientes de regresion para cada variable, para tal efecto nos valdremos del paquete GGally

library("GGally")

ggpairs(Base[,c(-1,-3,-4,-5,-18,-19)], lower = list(continuous = "smooth"),
        diag = list(continuous = "barDiag"), axisLabels = "none")

En primer lugar observamos que la variable respuesta GBP (M) tiene una muy baja correlación con las demás variables, el mayor valor es con G / A: Relación entre goles y apariciones en partidos de liga durante los últimos cinco años con una correlación de 0.229. Lo cual nos hace pensar que el modelo de regresion lineal multiple no es el más adecuado o podrian existir datos atípicos que estan influyendo en los resultados, tambien podria estar sucediendo que no cumplen algunos de los supuestos de regresión lineal.

Para el caso de las variables explicativas las de mayor correlación son:

  • Y-3: Aparición sobre el número total de partidos de liga tres años antes de la transferencia

  • Y-4: Aparición sobre el número total de partidos de liga cuatro años antes de la transferencia.

  • Y-5: Aparición sobre el número total de partidos de liga (índice de utilización) cinco años antes de la transferencia.

  • Goles: número total de goles marcados en partidos de liga en los últimos cinco años.

  • App: número total de apariciones en partidos de liga durante los últimos cinco años

  • Age: Edad en el momento de la transferencia

  • CR: Clasificación del club del equipo que vende al jugador.

2.Generar el modelo

modelo <- lm(GBP..M. ~  Y.5 +Y.4+Y.3+Y.2+Y.1+WA+Goals+App+G.A+Age+Height+CR+NR, data = Base)
summary(modelo)
## 
## Call:
## lm(formula = GBP..M. ~ Y.5 + Y.4 + Y.3 + Y.2 + Y.1 + WA + Goals + 
##     App + G.A + Age + Height + CR + NR, data = Base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -24.749 -10.408  -1.687   6.777  44.517 
## 
## Coefficients: (1 not defined because of singularities)
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  47.36770   58.92169   0.804   0.4244  
## Y.5           0.60860    9.69586   0.063   0.9501  
## Y.4          -0.20105   10.55595  -0.019   0.9849  
## Y.3          -5.83233   12.15619  -0.480   0.6330  
## Y.2          10.35664   13.57120   0.763   0.4482  
## Y.1          -2.90889   14.33981  -0.203   0.8399  
## WA                 NA         NA      NA       NA  
## Goals         0.31530    0.49041   0.643   0.5226  
## App           0.01837    0.20479   0.090   0.9288  
## G.A         -17.82108   70.55552  -0.253   0.8014  
## Age          -2.10242    0.91122  -2.307   0.0243 *
## Height        0.18575    0.30180   0.615   0.5404  
## CR           -8.56589    5.07354  -1.688   0.0962 .
## NR            2.11657    3.33106   0.635   0.5274  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.82 on 64 degrees of freedom
## Multiple R-squared:  0.1983, Adjusted R-squared:  0.04802 
## F-statistic: 1.319 on 12 and 64 DF,  p-value: 0.2299

El modelo con todas las variables introducidas como predictores tiene un R-squared: 0.1983, es capaz de explicar el 18,83% de la variabilidad observada en el precio de transferencia del jugador.la mayoria de los coeficientes de regresion no son significativos, lo que es un indicativo de que podrían no contribuir al modelo.

3.Selección de los mejores predictores

En este caso se van a emplear la estrategia de stepwise mixto. El valor matemático empleado para determinar la calidad del modelo va a ser Akaike(AIC).

El modelo preferido es el que tiene el valor mínimo en el AIC.

step(object = modelo, direction = "both", trace = 1)
## Start:  AIC=437
## GBP..M. ~ Y.5 + Y.4 + Y.3 + Y.2 + Y.1 + WA + Goals + App + G.A + 
##     Age + Height + CR + NR
## 
## 
## Step:  AIC=437
## GBP..M. ~ Y.5 + Y.4 + Y.3 + Y.2 + Y.1 + Goals + App + G.A + Age + 
##     Height + CR + NR
## 
##          Df Sum of Sq   RSS    AIC
## - Y.4     1      0.09 16018 435.00
## - Y.5     1      0.99 16019 435.01
## - App     1      2.01 16020 435.01
## - Y.1     1     10.30 16029 435.05
## - G.A     1     15.97 16034 435.08
## - Y.3     1     57.61 16076 435.28
## - Height  1     94.81 16113 435.46
## - NR      1    101.05 16120 435.49
## - Goals   1    103.46 16122 435.50
## - Y.2     1    145.76 16164 435.70
## <none>                16018 437.00
## - CR      1    713.45 16732 438.36
## - Age     1   1332.38 17351 441.15
## 
## Step:  AIC=435
## GBP..M. ~ Y.5 + Y.3 + Y.2 + Y.1 + Goals + App + G.A + Age + Height + 
##     CR + NR
## 
##          Df Sum of Sq   RSS    AIC
## - Y.5     1      0.97 16020 433.01
## - App     1      2.00 16020 433.01
## - Y.1     1     10.22 16029 433.05
## - G.A     1     16.62 16035 433.08
## - Y.3     1     57.83 16076 433.28
## - Height  1     95.35 16114 433.46
## - NR      1    102.26 16121 433.49
## - Goals   1    106.01 16124 433.51
## - Y.2     1    152.50 16171 433.73
## <none>                16018 435.00
## - CR      1    713.91 16732 436.36
## + Y.4     1      0.09 16018 437.00
## + WA      1      0.09 16018 437.00
## - Age     1   1338.28 17357 439.18
## 
## Step:  AIC=433.01
## GBP..M. ~ Y.3 + Y.2 + Y.1 + Goals + App + G.A + Age + Height + 
##     CR + NR
## 
##          Df Sum of Sq   RSS    AIC
## - App     1      3.63 16023 431.02
## - Y.1     1     10.61 16030 431.06
## - G.A     1     19.09 16039 431.10
## - Y.3     1     63.40 16083 431.31
## - Height  1     95.53 16115 431.47
## - NR      1    101.60 16121 431.49
## - Goals   1    113.05 16133 431.55
## - Y.2     1    151.53 16171 431.73
## <none>                16020 433.01
## - CR      1    722.19 16742 434.40
## + Y.5     1      0.97 16018 435.00
## + WA      1      0.28 16019 435.01
## + Y.4     1      0.08 16019 435.01
## - Age     1   1436.39 17456 437.62
## 
## Step:  AIC=431.02
## GBP..M. ~ Y.3 + Y.2 + Y.1 + Goals + G.A + Age + Height + CR + 
##     NR
## 
##          Df Sum of Sq   RSS    AIC
## - Y.1     1      8.54 16032 429.07
## - Y.3     1     61.58 16085 429.32
## - Height  1     93.40 16116 429.47
## - NR      1     98.11 16121 429.49
## - G.A     1    101.74 16125 429.51
## - Y.2     1    161.84 16185 429.80
## <none>                16023 431.02
## - Goals   1    449.52 16473 431.16
## - CR      1    719.10 16742 432.41
## + App     1      3.63 16020 433.01
## + Y.5     1      2.60 16020 433.01
## + WA      1      2.06 16021 433.01
## + Y.4     1      0.31 16023 433.02
## - Age     1   1506.72 17530 435.94
## 
## Step:  AIC=429.07
## GBP..M. ~ Y.3 + Y.2 + Goals + G.A + Age + Height + CR + NR
## 
##          Df Sum of Sq   RSS    AIC
## - Y.3     1     59.38 16091 427.35
## - G.A     1     93.57 16125 427.51
## - NR      1     93.71 16125 427.51
## - Height  1     94.92 16127 427.52
## - Y.2     1    155.20 16187 427.81
## <none>                16032 429.07
## - Goals   1    448.22 16480 429.19
## - CR      1    784.02 16816 430.74
## + Y.1     1      8.54 16023 431.02
## + Y.5     1      2.37 16029 431.05
## + App     1      1.55 16030 431.06
## + Y.4     1      0.41 16031 431.06
## + WA      1      0.02 16032 431.07
## - Age     1   1498.67 17530 433.95
## 
## Step:  AIC=427.35
## GBP..M. ~ Y.2 + Goals + G.A + Age + Height + CR + NR
## 
##          Df Sum of Sq   RSS    AIC
## - G.A     1     46.01 16137 425.57
## - NR      1     60.50 16152 425.64
## - Height  1     96.13 16187 425.81
## - Y.2     1    169.54 16261 426.16
## - Goals   1    398.90 16490 427.24
## <none>                16091 427.35
## + Y.3     1     59.38 16032 429.07
## + WA      1     13.96 16077 429.28
## + Y.1     1      6.34 16085 429.32
## + Y.5     1      3.75 16087 429.33
## + App     1      3.12 16088 429.34
## + Y.4     1      0.97 16090 429.35
## - CR      1    878.19 16969 429.44
## - Age     1   1448.66 17540 431.99
## 
## Step:  AIC=425.57
## GBP..M. ~ Y.2 + Goals + Age + Height + CR + NR
## 
##          Df Sum of Sq   RSS    AIC
## - NR      1     46.49 16184 423.79
## - Height  1     77.48 16214 423.94
## - Y.2     1    233.56 16371 424.68
## <none>                16137 425.57
## + G.A     1     46.01 16091 427.35
## + Y.5     1     37.05 16100 427.39
## + App     1     24.94 16112 427.45
## + Y.3     1     11.82 16125 427.51
## + WA      1      6.56 16130 427.54
## + Y.4     1      5.60 16132 427.54
## + Y.1     1      0.72 16136 427.57
## - CR      1    872.25 17009 427.62
## - Age     1   1518.25 17655 430.49
## - Goals   1   1736.46 17874 431.44
## 
## Step:  AIC=423.79
## GBP..M. ~ Y.2 + Goals + Age + Height + CR
## 
##          Df Sum of Sq   RSS    AIC
## - Height  1     85.29 16269 422.20
## - Y.2     1    304.73 16488 423.23
## <none>                16184 423.79
## + NR      1     46.49 16137 425.57
## - CR      1    826.10 17010 425.63
## + G.A     1     32.00 16152 425.64
## + Y.5     1     22.10 16161 425.69
## + App     1     15.94 16168 425.72
## + Y.4     1      6.93 16177 425.76
## + WA      1      6.43 16177 425.76
## + Y.3     1      4.34 16179 425.77
## + Y.1     1      0.32 16183 425.79
## - Age     1   1483.82 17667 428.55
## - Goals   1   1774.38 17958 429.80
## 
## Step:  AIC=422.2
## GBP..M. ~ Y.2 + Goals + Age + CR
## 
##          Df Sum of Sq   RSS    AIC
## - Y.2     1    338.64 16608 421.78
## <none>                16269 422.20
## + Height  1     85.29 16184 423.79
## + NR      1     54.30 16214 423.94
## - CR      1    850.83 17120 424.12
## + G.A     1     15.79 16253 424.12
## + Y.5     1     11.50 16257 424.14
## + Y.3     1      7.70 16261 424.16
## + App     1      4.89 16264 424.17
## + Y.4     1      1.65 16267 424.19
## + Y.1     1      1.29 16268 424.19
## + WA      1      0.97 16268 424.19
## - Age     1   1419.49 17688 426.64
## - Goals   1   1954.23 18223 428.93
## 
## Step:  AIC=421.78
## GBP..M. ~ Goals + Age + CR
## 
##          Df Sum of Sq   RSS    AIC
## <none>                16608 421.78
## + Y.2     1    338.64 16269 422.20
## + NR      1    137.03 16470 423.14
## + Height  1    119.20 16488 423.23
## - CR      1    760.09 17368 423.23
## + WA      1     60.24 16547 423.50
## + G.A     1     59.94 16548 423.50
## + App     1     43.55 16564 423.58
## + Y.5     1     29.03 16578 423.65
## + Y.1     1      6.30 16601 423.75
## + Y.4     1      1.86 16606 423.77
## + Y.3     1      0.61 16607 423.78
## - Age     1   1699.76 18307 427.29
## - Goals   1   2320.26 18928 429.85
## 
## Call:
## lm(formula = GBP..M. ~ Goals + Age + CR, data = Base)
## 
## Coefficients:
## (Intercept)        Goals          Age           CR  
##     80.9602       0.2221      -1.9062      -8.2010

El mejor modelo resultante del proceso de selección ha sido:

modelof <- lm(formula = GBP..M. ~ Goals + Age + CR, data = Base)
summary(modelof)
## 
## Call:
## lm(formula = GBP..M. ~ Goals + Age + CR, data = Base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.841 -10.135  -2.462   6.129  50.107 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 80.96019   17.22794   4.699  1.2e-05 ***
## Goals        0.22206    0.06953   3.194  0.00207 ** 
## Age         -1.90617    0.69736  -2.733  0.00786 ** 
## CR          -8.20102    4.48669  -1.828  0.07166 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.08 on 73 degrees of freedom
## Multiple R-squared:  0.1689, Adjusted R-squared:  0.1347 
## F-statistic: 4.943 on 3 and 73 DF,  p-value: 0.003517

Si bien es cierto el valor del R-squared: 0.1689 es menor que en modelo original, los coeficientes son significativos. además el p-value: 0.003517 lo que indica que al menos uno de los coeficientes es diferente de cero.

Es recomendable mostrar el intervalo de confianza para cada uno de los coeficientes parciales de regresión:

confint(lm(formula = GBP..M. ~ Goals + Age + CR, data = Base))
##                    2.5 %      97.5 %
## (Intercept)  46.62495575 115.2954336
## Goals         0.08347954   0.3606348
## Age          -3.29600108  -0.5163304
## CR          -17.14298547   0.7409506

Podemos interpretar algunos de los coeficienters de regresión:

  • Por cada aumento en un año de la edad del jugador el precio de transferencia disminuye en 1.90617 millones de libras esterlinas manteniendo constante las las otras variables regresoras.

  • Por cada gol adicional anotado en la temporada el precio del jugador aumenta en promedio en 0.22206 millones de libras esterlinas.

4.Validación de condiciones para la regresión múltiple lineal

Relación lineal entre los predictores numéricos y la variable respuesta:

Esta condición se puede validar bien mediante diagramas de dispersión entre la variable dependiente y cada uno de los predictores (como se ha hecho en el análisis preliminar) o con diagramas de dispersión entre cada uno de los predictores y los residuos del modelo. Si la relación es lineal, los residuos deben de distribuirse aleatoriamente en torno a 0 con una variabilidad constante a lo largo del eje X. Esta última opción suele ser más indicada ya que permite identificar posibles datos atípicos.

library(ggplot2)
library(gridExtra)
  plot1 <- ggplot(data = Base, aes(Goals, modelof$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
  plot2 <- ggplot(data = Base, aes(Age, modelof$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
  plot3 <- ggplot(data = Base, aes(CR, modelof$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
  
  grid.arrange(plot1, plot2, plot3) 

No Se cumple la linealidad para todos los predictores

Distribución normal de los residuos:

  qqnorm(modelof$residuals)
  qqline(modelof$residuals) 

Graficamente observamos que los residuos se acercan a una distribución normal pero con colas pesadas.

Normalidad

library("nortest") 
  pearson.test(modelof$residuals)  
## 
##  Pearson chi-square normality test
## 
## data:  modelof$residuals
## P = 18.221, p-value = 0.0327
  ad.test(modelof$residuals) 
## 
##  Anderson-Darling normality test
## 
## data:  modelof$residuals
## A = 2.1015, p-value = 2.163e-05

Si p.value<0.05-> SI se rechaza H0. Por lo tanto, los errores No se distribuyen en forma normal.

Variabilidad constante de los residuos (homocedasticidad):

Al representar los residuos frente a los valores ajustados por el modelo, los primeros se tienen que distribuir de forma aleatoria en torno a cero, manteniendo aproximadamente la misma variabilidad a lo largo del eje X. Si se observa algún patrón específico, por ejemplo forma cónica o mayor dispersión en los extremos, significa que la variabilidad es dependiente del valor ajustado y por lo tanto no hay homocedasticidad.

 ggplot(data = Base, aes(modelof$fitted.values, modelof$residuals)) +
    geom_point() +
    geom_smooth(color = "firebrick", se = FALSE) +
    geom_hline(yintercept = 0) +
    theme_bw()

library(lmtest)   
  bptest(modelof) 
## 
##  studentized Breusch-Pagan test
## 
## data:  modelof
## BP = 4.24, df = 3, p-value = 0.2367

H0: Los residuos tienen varianza constante. H1: Los residuos no tienen varianza constante.

Dado que el p-value = 0.2367> 0.05, no rechazamos H0. No tenemos suficiente evidencia que la heterocedasticidad está presente en el modelo de regresión.

Multicolinealidad:

Matriz de correlación entre predictores.

library(corrplot)
  corrplot(cor(dplyr::select(Base, Goals, Age,CR)),
           method = "number", tl.col = "black")

Análisis de Inflación de Varianza (VIF):

VIF = 1 / (1-R2)

Cuanto mayor es el FIV de una variable, mayor es la varianza del correspondiente coeficiente de regresión. Uno de los problemas de la presencia de colinealidad es la inestabilidad de las estimaciones de los coeficientes de regresión.

library(car)
  vif(modelof) 
##    Goals      Age       CR 
## 1.218490 1.204069 1.013561

Un valor de 1 significa que el predictor no está correlacionado con otras variables. Cuanto mayor sea el valor, mayor será la correlación de la variable con otras variables. Los valores de más de 4 o 5 a veces se consideran moderados a altos, y los valores de 10 o más se consideran muy altos.

No hay predictores que muestren una correlación lineal ni inflación de varianza, muy alta.

Autocorrelación:

  library(car)
  dwt(modelof, alternative = "two.sided")
##  lag Autocorrelation D-W Statistic p-value
##    1       0.4145829      1.095759       0
##  Alternative hypothesis: rho != 0
  dwtest(modelof,alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  modelof
## DW = 1.0958, p-value = 2.228e-05
## alternative hypothesis: true autocorrelation is not 0

El estadístico Durbin-Watson siempre tendrá un valor entre 0 y 4. Un valor de 2, significa que no se detecta autocorrelación en la muestra. Valores <=2 indica correlación positiva y valores entre 2 y 4 indican autocorrelación negativa. En este caso, los valores son cercanos a 1, por lo que hay evidencia de correlación.

5.Identificación de posibles valores atípicos o influyentes

 Base$studentized_residual <- rstudent(modelof)
  ggplot(data = Base, aes(x = predict(modelof), y = abs(studentized_residual))) +
    geom_hline(yintercept = 3, color = "grey", linetype = "dashed") +
geom_point(aes(color = ifelse(abs(studentized_residual) > 3, 'red', 'black'))) +
    scale_color_identity() +
    labs(title = "Distribución de los residuos studentized",
         x = "predicción modelo") + 
    theme_bw() + theme(plot.title = element_text(hjust = 0.5)) 

which(abs(Base$studentized_residual) > 3) 
## [1] 52
summary(influence.measures(modelof)) 
## Potentially influential observations of
##   lm(formula = GBP..M. ~ Goals + Age + CR, data = Base) :
## 
##    dfb.1_ dfb.Gols dfb.Age dfb.CR dffit   cov.r   cook.d hat  
## 3  -0.07  -0.07     0.06    0.10   0.13    1.18_*  0.00   0.11
## 19  0.41  -0.25    -0.44    0.15  -0.71_*  0.92    0.12   0.10
## 36  0.23   0.03    -0.17   -0.13   0.34    0.82_*  0.03   0.02
## 51  0.51   0.30    -0.48   -0.16   0.59    0.81_*  0.08   0.05
## 52  0.20  -0.02    -0.09   -0.19   0.47    0.55_*  0.05   0.02
## 66  0.00   0.01    -0.01    0.01   0.02    1.17_*  0.00   0.10
## 77  0.26   0.46    -0.26   -0.19   0.56    0.80_*  0.07   0.05

En la tabla generada se recogen las observaciones que son significativamente influyentes en al menos uno de los predictores (una columna para cada predictor). Las tres últimas columnas son 3 medidas distintas para cuantificar la influencia. A modo de guía se pueden considerar excesivamente influyentes aquellas observaciones para las que:

Leverages (hat): Se consideran observaciones influyentes aquellas cuyos valores hat superen 2.5((p+1)/n)=0.20, siendo p el número de predictores y n el número de observaciones. Distancia Cook (cook.d): Se consideran influyentes valores superiores a 1. La visualización gráfica de las influencias se obtiene del siguiente modo:

influencePlot(modelof) 

##       StudRes        Hat       CookD
## 3   0.3564059 0.11035746 0.003986949
## 19 -2.1338433 0.09848278 0.118579704
## 21 -0.9932898 0.10415400 0.028682307
## 37  2.0714314 0.09596013 0.108951922
## 52  3.6169278 0.01679584 0.047936011
## 77  2.4780016 0.04928055 0.074338368

Los análisis muestran varias observaciones influyentes (posición 19,37,52 y 77) que exceden los límites de preocupación para los valores de Leverages o Distancia Cook. Estudios más exhaustivos consistirían en rehacer el modelo sin las observaciones y ver el impacto.

Calculando la precisión

library("prediction")

  PrecioPred <- predict(modelof, Base)
  actuals_preds <- data.frame(cbind(Base$GBP..M., PrecioPred))  
  correlation_accuracy <- cor(actuals_preds)  
  head(actuals_preds)  
##     V1 PrecioPred
## 1 21.9   24.36161
## 2 22.0   37.00377
## 3 23.3   18.19900
## 4 23.4   35.17233
## 5 23.4   32.96685
## 6 23.9   29.39421
  min_max_accuracy <- mean(apply(actuals_preds, 1, min) / apply(actuals_preds, 1, max)) 
  
  min_max_accuracy  
## [1] 0.7407075
  mape <- mean(abs((actuals_preds$PrecioPred - actuals_preds$V1))/actuals_preds$V1)  
  mape
## [1] 0.462212

6.Conclusión

El modelo lineal múltiple

GBP..M.=80.96019 +0.22206 * Goals -1.90617 * Age -8.20102 * CR

Es capaz de explicar el 16.89% de la variabilidad observada en el precio de venta (R-squared: 0.1689, Adjusted R-squared: 0.1347).

  • El test F muestra que es no significativo (F-statistic: 4.943).No satisfacen todas las condiciones para este tipo de regresión múltiple.

  • Las observaciónes (19,37,52 y 77) podría estar influyendo de forma notable en el modelo.

  • Las variables que explican mejor el precio de un jugador son, Goles, Edad y CR(Clasificación del Club que vende al Jugador).

Concluimos que el modelo de regresion multiple no es el mas adecuado por solo explicar el 16.86% ademas de no cumplir algunos supuestos, recomendamos retitar los datos influyentes y realizar algún metodo de linealización para ver si asi cumplen con los supuestos y aumenta el % de varianza explicada del modelo o aplicar metodos no paramétricos.