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, Overall, Value)

Determinar variable dependiente e independiente

La variable ‘x’ independiente es Overall que significa como se valora en su totalidad el jugador

La variable ‘y’ dependiente es Value character que sera el valor en el formato numerico que significa el valor economico del jugador

Limpiar Datos

source(file = "misfunciones.r")

Convertir el dato Value a numerico.

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

Limpiar los valores que tengan "cero y dejar solo los que tengan un valor mayor a el cero.

datos <- filter(datos, Valor > 0)

Lectura de los primeros diaz y ultimos diez registros

head(datos, 10); tail(datos, 10)
##    Overall   Value     Valor
## 1       94 \200110.5M 110500000
## 2       94    \20077M  77000000
## 3       92 \200118.5M 118500000
## 4       91    \20072M  72000000
## 5       91   \200102M 102000000
## 6       91    \20093M  93000000
## 7       91    \20067M  67000000
## 8       91    \20080M  80000000
## 9       91    \20051M  51000000
## 10      90    \20068M  68000000
##       Overall Value Valor
## 17946      47  \20060K 60000
## 17947      47  \20060K 60000
## 17948      47  \20070K 70000
## 17949      47  \20060K 60000
## 17950      47  \20060K 60000
## 17951      47  \20060K 60000
## 17952      47  \20060K 60000
## 17953      47  \20060K 60000
## 17954      47  \20060K 60000
## 17955      46  \20060K 60000

Checar en la grafica la dispersion del valor de los jugadoresb sobre el puntaje que tienen.

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

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

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

# Datos entrenamiento
datos.entrenamiento <- datos[entrena, ]  # [renglones, columna]

# Datos validación
datos.validacion <- datos[-entrena, ]

head(datos.entrenamiento, 10)
##    Overall   Value     Valor
## 1       94 \200110.5M 110500000
## 2       94    \20077M  77000000
## 3       92 \200118.5M 118500000
## 5       91   \200102M 102000000
## 6       91    \20093M  93000000
## 7       91    \20067M  67000000
## 8       91    \20080M  80000000
## 11      90    \20077M  77000000
## 12      90  \20076.5M  76500000
## 13      90    \20044M  44000000

Por medio de la correlacion por medio de las variables Overall y el valor del conjunto de datos para facilitar la interpretacion s ebusca generar una hipotesis.

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

Por medio de la correlacion de Pearson se esta midiendo la relacion estadistica de las variables Overall 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$Overall, datos.entrenamiento$Valor) 
## 
##  Pearson's product-moment correlation
## 
## data:  datos.entrenamiento$Overall and datos.entrenamiento$Valor
## t = 89.821, df = 12567, p-value < 0.00000000000000022
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.6145185 0.6358156
## sample estimates:
##       cor 
## 0.6252835

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.3909794

La relacion que se encuentra por medio de la regresio lineal es que el Overall el 39.1%" interviene en el valor del jugador. Como es un porcentaje se puede buscar otra variable que tenga un porcentaje mayor al 30.1 para buscar una correlacion mas elevada (si es que la hay).

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

summary(modelo)
## 
## Call:
## lm(formula = Valor ~ Overall, data = datos.entrenamiento)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
##  -9583770  -2104319   -889593   1030270 102871367 
## 
## Coefficients:
##              Estimate Std. Error t value            Pr(>|t|)    
## (Intercept) -31403214     378886  -82.88 <0.0000000000000002 ***
## Overall        511216       5692   89.82 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4434000 on 12567 degrees of freedom
## Multiple R-squared:  0.391,  Adjusted R-squared:  0.3909 
## F-statistic:  8068 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 = Overall, y = Valor)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Valor ~ Overall', x  =  'Overall') +
  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 =  -31403213.910327"
paste("Valor de b = ", modelo$coefficients[2])
## [1] "Valor de b =  511215.731269587"

Por cada unidad de Overall en el jugador el valor de Y aumenta 511215.7312696 veces.

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

head(datos.validacion, 10)
##    Overall  Value    Valor predicho
## 1       91   \20072M 72000000 15117418
## 2       91   \20051M 51000000 15117418
## 3       90   \20068M 68000000 14606202
## 4       89   \20089M 89000000 14094986
## 5       89   \20060M 60000000 14094986
## 6       89   \20038M 38000000 14094986
## 7       89   \20027M 27000000 14094986
## 8       88 \20069.5M 69500000 13583770
## 9       88   \20062M 62000000 13583770
## 10      88 \20073.5M 73500000 13583770
tail(datos.validacion, 10)
##      Overall Value Valor predicho
## 5377      48  \20020K 20000 -6864859
## 5378      48  \20060K 60000 -6864859
## 5379      48  \20040K 40000 -6864859
## 5380      47  \20040K 40000 -7376075
## 5381      47  \20050K 50000 -7376075
## 5382      47  \20060K 60000 -7376075
## 5383      47  \20060K 60000 -7376075
## 5384      47  \20070K 70000 -7376075
## 5385      47  \20060K 60000 -7376075
## 5386      47  \20060K 60000 -7376075

Interpretacion del caso

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

La variable independiente del caso es Overall ya que el puntaje que tenga no depende al 100% del el valor del jugador, puede depender de distintas variables que no estamos tomando en cuenta. La variabloe 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 39.1%. El cual significa que el valor del jugador depende solo del 39.1% de su puntaje. El valor del jugador puede estar representado por distintas variables que tienen como resultado el 100 de la relacion. El jugador tiene un valor por otras caracteristicas que completan el 61.9%.

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.