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"
)
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"
)
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
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")
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")