Objetivo

Analizar caso FIFA mediante un modelo de regresión lienal simple*

Descripción

Determinar modelo de regresión lineal simple para establecer un análisi en el conjunto de datos del caso FIFA

Proceso

Cargar librerias

library(readr)
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(ggplot2)
library(caret)
## Warning: package 'caret' was built under R version 4.0.3
## Loading required package: lattice

Cargar Datos

getwd()
## [1] "C:/Users/pc/Documents/RStudio"
datos.fifa <- read.csv(file = "data.csv", encoding = "UTF-8")

datos <- select(datos.fifa, Wage, Value)

Determinar variable dependiente e independiente

La variable dependiende es ‘y’ que es Value Character que sera el valor en formato numerico que significa el valor economico de un jugador

La variable independendiente es ‘x’ que es Wage que significa salario del jugador.

Limpiar Datos

Cargar funciones

source(file = "misfunciones.r")

Limpiar y convertir dato wage y value en numerico.

datos <- datos %>%
  mutate(Valor = ifelse (substr(Value, nchar(Value), nchar(Value)) == 'M', fcleanValue(Value) * 1000000, fcleanValue(Value) * 1000)) %>%
  filter(Valor > 0)

datos <- datos %>%
  mutate(Salario = ifelse (substr(Wage, nchar(Wage), nchar(Wage)) == 'M', fcleanValue(Wage) * 1000000, fcleanValue(Wage) * 1000)) %>%
  filter(Salario > 0)

Primeros diez y ultimos diez registros.

head(datos, 10); tail(datos, 10)
##     Wage   Value     Valor Salario
## 1  \200565K \200110.5M 110500000  565000
## 2  \200405K    \20077M  77000000  405000
## 3  \200290K \200118.5M 118500000  290000
## 4  \200260K    \20072M  72000000  260000
## 5  \200355K   \200102M 102000000  355000
## 6  \200340K    \20093M  93000000  340000
## 7  \200420K    \20067M  67000000  420000
## 8  \200455K    \20080M  80000000  455000
## 9  \200380K    \20051M  51000000  380000
## 10  \20094K    \20068M  68000000   94000
##       Wage Value Valor Salario
## 17946  \2001K  \20060K 60000    1000
## 17947  \2001K  \20060K 60000    1000
## 17948  \2001K  \20070K 70000    1000
## 17949  \2001K  \20060K 60000    1000
## 17950  \2001K  \20060K 60000    1000
## 17951  \2001K  \20060K 60000    1000
## 17952  \2001K  \20060K 60000    1000
## 17953  \2001K  \20060K 60000    1000
## 17954  \2001K  \20060K 60000    1000
## 17955  \2001K  \20060K 60000    1000

Visualizar la dispersión de los datos

ggplot(datos, aes(x = Salario, y = Valor)) +
    geom_point()

Crear una particion de los datos para la validacion en un porcentaje 30% y 70%

Por medio de la correlacion por medio de las variables Wage y el valor del conjunto de datos para facilitar la interpretacion se busca generar una hipotesis.

set.seed(2020)
entrena <- createDataPartition(y = datos$Valor, p = 0.7, list = FALSE, times = 1)

datos.entrenamiento <- datos[entrena, ] 

datos.validacion <- datos[-entrena, ]

head(datos.entrenamiento, 10)
##     Wage   Value     Valor Salario
## 1  \200565K \200110.5M 110500000  565000
## 2  \200405K    \20077M  77000000  405000
## 3  \200290K \200118.5M 118500000  290000
## 5  \200355K   \200102M 102000000  355000
## 6  \200340K    \20093M  93000000  340000
## 7  \200420K    \20067M  67000000  420000
## 8  \200455K    \20080M  80000000  455000
## 11 \200205K    \20077M  77000000  205000
## 12 \200355K  \20076.5M  76500000  355000
## 13 \200125K    \20044M  44000000  125000
head(datos.validacion, 10)
##     Wage  Value    Valor Salario
## 4  \200260K   \20072M 72000000  260000
## 9  \200380K   \20051M 51000000  380000
## 10  \20094K   \20068M 68000000   94000
## 16 \200205K   \20089M 89000000  205000
## 22 \200200K   \20060M 60000000  200000
## 23 \200130K   \20038M 38000000  130000
## 25 \200215K   \20027M 27000000  215000
## 29 \200315K \20069.5M 69500000  315000
## 30 \200165K   \20062M 62000000  165000
## 31 \200315K \20073.5M 73500000  315000

Para cuestión de interpetación se determina el coeficiente de correlación entre las varibles Salario y Valor del conjunto de datos

correla <- cor(x = datos.entrenamiento$Salario, y = datos.entrenamiento$Valor, method = "pearson")
correla
## [1] 0.8591612

Por medio de la correlacion de Pearson se esta midiendo la relacion estadistica de las variables Wage y Value que son variables continuas. Para asosciar los elementos y tomar la correlacion en un rango de valores adecuados.

Basandonos en el 30 y 70 anteriormente

cor.test(datos.entrenamiento$Salario, datos.entrenamiento$Valor)
## 
##  Pearson's product-moment correlation
## 
## data:  datos.entrenamiento$Salario and datos.entrenamiento$Valor
## t = 188.22, df = 12567, p-value < 0.00000000000000022
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8545137 0.8636711
## sample estimates:
##       cor 
## 0.8591612

Se determida el R Square (coeficiente de determinacion cuyo proposito es predecir futuros resultados o probar hipotesis) para nuestro modelo de regresion lineal.

CR <- correla ^ 2
CR
## [1] 0.7381579

La relacion que se encuentra por medio de la regresio lineal es que el Overall el 73.82%" interviene en el valor del jugador..

modelo <- lm(formula = Valor ~ Salario, data = datos.entrenamiento)

summary(modelo)
## 
## Call:
## lm(formula = Valor ~ Salario, data = datos.entrenamiento)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -25014292   -609756   -311372     46592  58868607 
## 
## Coefficients:
##              Estimate Std. Error t value            Pr(>|t|)    
## (Intercept) 292987.55   28334.43   10.34 <0.0000000000000002 ***
## Salario        218.38       1.16  188.22 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2907000 on 12567 degrees of freedom
## Multiple R-squared:  0.7382, Adjusted R-squared:  0.7381 
## F-statistic: 3.543e+04 on 1 and 12567 DF,  p-value: < 0.00000000000000022

Evaluacion del modelo de regresion lineal. Utilizando la informacion de la formula con los datos 30 y 70 de la correlacion de las variables.

par(mfrow = c(2, 2))
plot(modelo)

¿QUE SON?

Residual vs Fitted: Deberia estar distribuidos aleatoriamente alrededor de la linea horizontal que representa un error residual de cero.

Normal Q-Q: deberia sugerir que los errores residuales se distribuyen normalmente.

Scale-Location Muestra la raiz cuadrada de los residuos estandarizados, como una funcion de los valores ajustados. No deberia existir una tendencia clara en ese trama.

Residual vs Leverage Las distancias mas grandes que 1 son sospechosos y sugieren la presencia de un valor atipico posible y su eliminacion podria tener efectos sobre la regresion.

Visualizacion de tendencias.

ggplot(data = datos, mapping = aes(x = Salario, y = Valor)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Valor ~ Salario', x  =  'Salario') +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula 'y ~ x'

Determinar la prediccion

Predecir conforme a la fórmula y=a+bx

paste("Valor de a = ", modelo$coefficients[1])
## [1] "Valor de a =  292987.553576029"
paste("Valor de b = ", modelo$coefficients[2])
## [1] "Valor de b =  218.384057537379"

Por cada unidad de salario en el jugador el valor de Y aumenta 218.3840575 veces.

prediccion <- predict(modelo, newdata = datos.validacion)
datos.validacion <- mutate(datos.validacion, predicho = prediccion)

head(datos.validacion, 10)
##     Wage  Value    Valor Salario predicho
## 1  \200260K   \20072M 72000000  260000 57072843
## 2  \200380K   \20051M 51000000  380000 83278929
## 3   \20094K   \20068M 68000000   94000 20821089
## 4  \200205K   \20089M 89000000  205000 45061719
## 5  \200200K   \20060M 60000000  200000 43969799
## 6  \200130K   \20038M 38000000  130000 28682915
## 7  \200215K   \20027M 27000000  215000 47245560
## 8  \200315K \20069.5M 69500000  315000 69083966
## 9  \200165K   \20062M 62000000  165000 36326357
## 10 \200315K \20073.5M 73500000  315000 69083966
tail(datos.validacion, 10)
##      Wage Value Valor Salario predicho
## 5377  \2001K  \20020K 20000    1000 511371.6
## 5378  \2001K  \20060K 60000    1000 511371.6
## 5379  \2001K  \20040K 40000    1000 511371.6
## 5380  \2001K  \20040K 40000    1000 511371.6
## 5381  \2001K  \20050K 50000    1000 511371.6
## 5382  \2001K  \20060K 60000    1000 511371.6
## 5383  \2001K  \20060K 60000    1000 511371.6
## 5384  \2001K  \20070K 70000    1000 511371.6
## 5385  \2001K  \20060K 60000    1000 511371.6
## 5386  \2001K  \20060K 60000    1000 511371.6

Interpretacion del caso

¿Cuáles son las variables independientes y dependientes del caso y qué significan (x & y)?

La variable independiente del caso es Wage que es pago que recibe cada jugador. La variable dependiente es Value porque en este caso lo que queremos identificar es que tanto influye el puntaje del jugador con el valor del mismo.

¿Cuál es el valor de correlación entre las dos variables y qué significa?

El valor de la correlacion al final quedo en 73.82%. El cual significa que el valor del jugador depende del 73.82% de su salario. El valor del jugador puede estar representado por distintas variables que tienen como resultado el 100 de la relacion.

Cuál es valor del coeficiente de correlación CR o R Square en el modelo?

Como lo explique en el espacio de R Square El R Square es el coeficiente de determinacion cuyo proposito es predecir futuros resultados o probar hipotesis para nuestro modelo de regresion lineal. Es la correlacion de las dos variables al cuadrado. que da como resultado la correlacion final de las dos variables.

¿Cuál es el valor de a y b en la ecuación de regresión lineal simple $ y = a + b (x)$y qué significa?

El valor de a y b son los valores de las dos variables aplicadas con el metodo pearson despues de haber sido determinadas con el coeficiente de determinadas.

Es el valor de los coeficientes que se estima como a (intercepcion estimada) y b (overall estimado) segun el modelo.

Qué tan bien predice el modelo?

El modelo tambien puede predecir la influencia de cada variable con otra para comprender que tanto depende una de otra para el resultado final de los datos que se tienen. Ademas de determinar cuales son los datos que mas influyen en nuestra muestra de datos.

Es el modelo de regresión lineal simple adecuado para predecir el valor económico del jugador basado únicamente en la variable Overall?

Se podria decir que en parte si es util dependiendo de para que se requiera pero puede haber otros modelos que nos ayuden a facilitar la identificion de las correlaciones que tengan un mejor porcentaje de influencia para que por medio de las graficas se pueda expresar de una mejor manera el resultado y determinar de una manera el “porque” se tiene tal precio eñl jugador en este caso.

Es el modelo de regresión lineal simple adecuado para predecir el valor económico del jugador basado únicamente en la variable Salario?

A mi punto de vista es el adeciando para la correlacion.

¿Qué diferencias hay con el caso 5?

La diferencia es que esta correlacion da un porcentaje mas alto del anterior y eso da como referencia la siguiente cuestion.

El valor del jugador depende mucho del salario ya que si es jugador gana tanto dinero se debe tomar en cuenta que el valor de el debe depender mucho de cuanto deban de pagarle.