library(tidyverse)
library(ggplot2)
library(vcd)
library(modeest)
library(dplyr)
library(moments)

Directorio

setwd("/Users/manuelvargas/Documents/Maestria/Datasets")

Archivo

players <- read.csv("fifa_players.csv", header=T, sep=",")
## Warning in file(file, "rt"): cannot open file 'fifa_players.csv': No such file or
## directory
## Error in file(file, "rt"): cannot open the connection

Extrae la cantidad de rows deseados (Muestra)

sample_players <- head(players, n=150) 

Retorna las dimensiones del dataframe o table

dim(sample_players) 
## [1] 150  51

frecuencias absoluta por rendimiento de los jugadores

dfabs_rating <- table(sample_players$overall_rating)

frecuencias absoluta por edad de los jugadores

dfabs_ages <- table(sample_players$age)

Dataframe

df <- data.frame(sample_players)

Resumen Estadistico

summary <- summary(df)
View(summary)

Calculo de Media, Mediana y Moda de edades de jugadores

media_edad <- mean(sample_players$age)
mediana_edad <- median(sample_players$age)
moda_edad <- mlv(sample_players$age, method = "mfv")

Calculo de Media, Mediana y Moda de Rating de Jugadores

media_rating <- mean(sample_players$overall_rating)
mediana_rating <- median(sample_players$overall_rating)
moda_rating <- mlv(sample_players$overall_rating, method = "mfv")

Gráfico de barras de valores absolutos a nivel de edad de jugadoes

bp_ages <- barplot(dfabs_ages, xlab = "Edad del Jugador", 
                     ylab = "Cantidad de Jugadores",
                     main ="Edad de Jugadores", 
                     col = "#69b3a2", 
                     col.axis="#003722",
                     sub = "Data source: Kaggle"
)

plot of chunk unnamed-chunk-12

bp_ages
##       [,1]
##  [1,]  0.7
##  [2,]  1.9
##  [3,]  3.1
##  [4,]  4.3
##  [5,]  5.5
##  [6,]  6.7
##  [7,]  7.9
##  [8,]  9.1
##  [9,] 10.3
## [10,] 11.5
## [11,] 12.7
## [12,] 13.9
## [13,] 15.1
## [14,] 16.3
## [15,] 17.5
## [16,] 18.7
## [17,] 19.9
## [18,] 21.1
## [19,] 22.3

Gráfico de barras de valores absolutos a nivel de rating de jugadores

bp_rating <- barplot(dfabs_rating, xlab = "Rendimiento del Jugador", 
                    ylab = "Cantidad de Jugadores",
                    main ="Rendimiento de Jugadores", 
                    col = "#69b3a2", 
                    col.axis="#003722",
                    sub = "Data source: Kaggle"
        )

plot of chunk unnamed-chunk-13

bp_rating
##       [,1]
##  [1,]  0.7
##  [2,]  1.9
##  [3,]  3.1
##  [4,]  4.3
##  [5,]  5.5
##  [6,]  6.7
##  [7,]  7.9
##  [8,]  9.1
##  [9,] 10.3
## [10,] 11.5
## [11,] 12.7

Relacion entre la edad y el rating de los jugadores

bx_rel <- ggplot(df,aes(age, overall_rating, colour = overall_rating)) + geom_point()
bx_rel <- bx_rel + labs(title = "Relación entre la edad del jugador y su rendimiento",
                  subtitle = "Estudio de como la edad puede influir en el rendimiento de un jugador",
                  caption = "Data source: Kaggle",
                  x = "Edad", 
                  y = "Rendimiento",
                  tag = "Gráfica #3",  
                  col = "Rendimiento" )
bx_rel

plot of chunk unnamed-chunk-14

Analisis Estadístico Tabla de frecuencias agrupadas

frecuencias_rating <- function(y) 
{
  # Calcular el número de clases utilizando Sturges' rule
  sturges <- nclass.Sturges(y) 
  # Crear intervalos usando el número de clases calculado
  Intervalos <- cut(y, breaks = sturges)
  # Crear un marco de datos con las frecuencias
  data_frecuencia <- data.frame(table(Intervalos))
  
  #Frecuencias
  data_frecuencia <- transform(data_frecuencia, F_Acumulada = cumsum(Freq), F_Relativa = prop.table(Freq))
  data_frecuencia <- transform(data_frecuencia, F_Relativa_Acumulada= cumsum(F_Relativa))
  data_frecuencia <- transform(data_frecuencia, F_Relativa_Porcentaje = 100*F_Relativa, F_Relativa_Acumulada_Porcentaje = 100*F_Relativa_Acumulada)
  
  # Calcular el punto medio de las clases
  mid_points <- function(x, dp = 1) {
    lower_mc <- as.numeric(gsub(',.*','',gsub('\\(|\\[|\\)|\\]','', x)))
    upper_mc <- as.numeric(gsub('.*,','',gsub('\\(|\\[|\\)|\\]','', x)))
    return(round(lower_mc + (upper_mc - lower_mc) / 2, dp))
  }
  data_frecuencia <- transform(data_frecuencia, Marca_Clase = mid_points(Intervalos))
  
  # Devolver el marco de datos resultante
  return(data_frecuencia)
}
View(frecuencias_rating(sample_players$age))
View(frecuencias_rating(sample_players$overall_rating))

skewness(sample_players$age)
## [1] 0.6533014

La asimetria de la muestra de jugadores basados en su edad es positiva, significa que la distribucion es asimetrica hacia la derecha, por tanto, la cola es mas larga hacia la izquierda como se muestra en el histograma

kurtosis(sample_players$age)
## [1] 2.927387

La distribución dada tiene una curtosis inferior a 3, se dice que es playcúrtica, lo que significa que tiende a producir menos valores atípicos y menos extremos que la distribución normal.

age_hist <- hist(sample_players$age,xlab="Edad",
     main ="Histograma de Edad", 
     col = "#69b3a2", 
     col.axis ="#003722",
     sub = "Data source: Kaggle")

plot of chunk unnamed-chunk-17

skewness(sample_players$overall_rating)
## [1] 1.035118

La asimetria de la muestra de jugadores basados en su rating es positiva, significa que la distribucion es asimetrica hacia la derecha, por tanto, la cola es mas larga hacia la izquierda como se muestra en el histograma

kurtosis(sample_players$overall_rating)
## [1] 3.341378

La distribución dada tiene una curtosis es mayor que 3, esto indica que la distribución tiene más valores en las colas en comparación con una distribución normal, es decir, leptocúrtica, asi que se puede concluir que en la muestra existe una gran concentración de los valores en torno a su media (g2>3)

rating_hist <- hist(sample_players$overall_rating,xlab="Rating",
     main="Histograma de Rendimiento", 
     col = "#69b3a2", 
     col.axis ="#003722",
     sub = "Data source: Kaggle")

plot of chunk unnamed-chunk-19