Objetivo

Identificar datos de población y muestra.

Descripción

Se cargan datos de un archivo que representa una población de jugadores de fútbol a nivel mundial y se extraen muestras que permiten observar algunos estadísticos. Las variables de interés son nacionalidad, edad, altura y peso.

La población contiene datos de futbolistas registrados en FIFA. Aquí se hace hincapié en que tal vez no sean todos los futbolistas profesionales, es una lista que se encuentra en portales abiertos con archivos descargables, de manera especiíica el archivo original se encuentra en la direción url siguiente: <https://www.kaggle.com/stefanoleone992/fifa-20-complete-player-dataset?select=players_20.csv>

A partir de la población se construyen varias muestras utilizando la función sample().

Desarrollo

Cargar librerías

library(readr)

Población

En una variable llamada poblacion, se carga un conjunto de datos con distintas variables o columnas.

poblacion <- read.csv("https://raw.githubusercontent.com/rpizarrog/Probabilidad-y-EstadIstica-VIRTUAL-DISTANCIA/main/datos/players_20.csv", encoding = "UTF-8", stringsAsFactors = TRUE)

La población es un conjunto de datos que contiene 18278 observaciones o registros y 104 variables o columnas.

Las variables de interés para este caso serán: nombre, nacionalidad, edad, estatura y peso (‘short_name’, ‘nationality’, ‘age’, ‘height_cm’, ‘weight_kg’).

De la población se extraen únicamente las columnas de interés usando la notación [‘nombre columna 1’, ‘nombre de columna 2’, ‘nombre de columna n’].

La variable en donde se vuelve a dejar el extracto de los datos de población únicamente cn las columnas elegidas, es nuevamente poblacion, es decir se actualiza y se sobreescribe la variable.

Con el argumento la expresión [,c(‘short_name’, ‘nationality’, ‘age’, ‘height_cm’, ‘weight_kg’)], se extraen todas las observaciones o registros con las columnas indicadas de poblacion.

poblacion <- poblacion[,c('short_name', 'nationality', 'age', 'height_cm', 'weight_kg')]

Modificar nombres de columnas

Con la función colnames(poblacion) se modifica a español los nombres de columnas

colnames(poblacion) <- c('nombre', 'nacion', 'edad', 'estatura', 'peso')

Primeros 20 registros

Con la función head(poblacion, 20) indicándole 20 se presentan los primeros 20 registros

head(poblacion,20)
##               nombre      nacion edad estatura peso
## 1           L. Messi   Argentina   32      170   72
## 2  Cristiano Ronaldo    Portugal   34      187   83
## 3          Neymar Jr      Brazil   27      175   68
## 4           J. Oblak    Slovenia   26      188   87
## 5          E. Hazard     Belgium   28      175   74
## 6       K. De Bruyne     Belgium   28      181   70
## 7      M. ter Stegen     Germany   27      187   85
## 8        V. van Dijk Netherlands   27      193   92
## 9          L. Modric     Croatia   33      172   66
## 10          M. Salah       Egypt   27      175   71
## 11         K. Mbappé      France   20      178   73
## 12      K. Koulibaly     Senegal   28      187   89
## 13           H. Kane     England   25      188   89
## 14           Alisson      Brazil   26      191   91
## 15            De Gea       Spain   28      192   82
## 16          N. Kanté      France   28      168   72
## 17      G. Chiellini       Italy   34      187   85
## 18         S. Agüero   Argentina   31      173   70
## 19      Sergio Ramos       Spain   33      184   82
## 20         L. Suárez     Uruguay   32      182   86

Ultimos 20 registros

Con la función tail(poblacion, 20) indicándole 20 se presentan los últimos 20 registros

tail(poblacion,20)
##              nombre              nacion edad estatura peso
## 18259    L. Collins               Wales   18      178   67
## 18260    H. Sveijer              Sweden   17      185   71
## 18261 A. De Angelis               Italy   21      174   62
## 18262     H. Shirai               Japan   19      170   60
## 18263     S. Callan Republic of Ireland   19      182   80
## 18264    F. Nevarez              Mexico   18      178   69
## 18265  Zhang Yufeng            China PR   21      178   76
## 18266     L. Offord             England   19      170   66
## 18267     Wang Peng            China PR   21      175   70
## 18268       J. Ryan Republic of Ireland   19      178   75
## 18269  M. Gallagher Republic of Ireland   18      178   70
## 18270  Huang Jiahui            China PR   18      183   74
## 18271      M. Sagaf             England   21      177   70
## 18272      E. Tweed Republic of Ireland   20      180   72
## 18273     P. Martin Republic of Ireland   20      188   84
## 18274    Shao Shuai            China PR   22      186   79
## 18275  Xiao Mingjie            China PR   22      177   66
## 18276     Zhang Wei            China PR   19      186   75
## 18277  Wang Haijian            China PR   18      185   74
## 18278    Pan Ximing            China PR   26      182   78

Estructura de los datos

Con la función str() se identifica el tipo de datos, la cantidad de registros y columnas que tienen la población.

Ahora la población tiene le mismo número de registros pero con 5 variables de estudio en lugar de las 50 iniciales.

str(poblacion)
## 'data.frame':    18278 obs. of  5 variables:
##  $ nombre  : Factor w/ 17354 levels "<U+FFFD>. Blanaru","<U+FFFD>. Fara",..: 9773 3210 12708 7904 4505 8745 11813 16600 9783 11649 ...
##  $ nacion  : Factor w/ 162 levels "Afghanistan",..: 6 122 19 135 13 13 58 109 35 44 ...
##  $ edad    : int  32 34 27 26 28 28 27 27 33 27 ...
##  $ estatura: int  170 187 175 188 175 181 187 193 172 175 ...
##  $ peso    : int  72 83 68 87 74 70 85 92 66 71 ...

Describir los datos

Con la función summary() se encuentran los parámetros de la población.

Las medidas que genera summary() para datos numéricos o cuantitativos son la media, mediana, valores máximos y mínimos, cuartiles al 25%, 50% y 75% que serán medidas que se estudiarán por separado en siguientes casos.

Con datos cualitativos categóricos o denotados como factores en R, se identifican la cantidad de ocasiones que hay de cada uno, es decir la frecuencia. De igual forma la función identifica si existen datos como NA que se interpreta como datos vacíos.

summary(poblacion)
##           nombre            nacion           edad          estatura    
##  J. Rodríguez:   11   England  : 1667   Min.   :16.00   Min.   :156.0  
##  Paulinho    :    9   Germany  : 1216   1st Qu.:22.00   1st Qu.:177.0  
##  J. García   :    8   Spain    : 1035   Median :25.00   Median :181.0  
##  J. Hernández:    7   France   :  984   Mean   :25.28   Mean   :181.4  
##  J. Williams :    7   Argentina:  886   3rd Qu.:29.00   3rd Qu.:186.0  
##  J. Clarke   :    6   Brazil   :  824   Max.   :42.00   Max.   :205.0  
##  (Other)     :18230   (Other)  :11666                                  
##       peso       
##  Min.   : 50.00  
##  1st Qu.: 70.00  
##  Median : 75.00  
##  Mean   : 75.28  
##  3rd Qu.: 80.00  
##  Max.   :110.00  
## 

Muestra

Se identifica como \(N\) como el total de registros de la población y se obtiene mediante la función nrow().

N <- nrow(poblacion)
N
## [1] 18278

Muestra1

Se extra con la función sample() una muestra de la población digamos el \(10\% \text{ de 18278 equivale a }1828 \ registros\)

Se identifica a \(n\) como la cantidad de registros de la muestra.

Con la función round() se redondea a valor entero el resultado de sacar el 10% de \(N\)

n <- round(N * 0.10)
n
## [1] 1828

Ahora se determina una muestra de los datos con la función sample(), con los parámetro adecuados se le dice que a partir de población se deben extraer \(n\) registros y que no se repitan, es decir que sean diferentes.

La variable de interés es edad por lo que la muestra es un vector numérico

muestra1 <- sample(x = poblacion$edad, size = n, replace = FALSE)

Descripción de muestra1

str(muestra1)
##  int [1:1828] 23 33 27 18 26 25 21 18 18 31 ...
summary(muestra1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   17.00   21.00   25.00   25.19   28.00   41.00

Media de edad muestra1

media1 <- round(summary(muestra1)[4],2)
media1
##  Mean 
## 25.19

Muestra2

Se extra con la función sample() una muestra de la población digamos el \(20\% \text{ de 18278 equivale a }3656\ registros\).

n <- round(N * 0.20)
n
## [1] 3656

Se determina otra muestra de los datos con la función sample(), el nombre ahora es muestra2.

muestra2 <- sample(x = poblacion$edad, size = n, replace = FALSE)

Descripción de muestra2

str(muestra2)
##  int [1:3656] 20 22 29 27 23 19 33 29 32 19 ...
summary(muestra2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   16.00   22.00   25.00   25.27   29.00   40.00

Media de edad muestra2

media2 <- round(summary(muestra2)[4],2)
media2
##  Mean 
## 25.27

Muestra3

Se extra con la función sample() una muestra de la población digamos el \(30\% \text{ de 18278 equivale a }5483 \ registros\)

Se determina otra tercera muestra de los datos con la función sample(), el nombre ahora es muestra3.

n <- round(N * 0.30)
n
## [1] 5483

Se determina otra muestra de los datos con la función sample(), el nombre ahora es muestra3

muestra3 <- sample(x = poblacion$edad, size = n, replace = FALSE)

Descripción de muestra3

str(muestra3)
##  int [1:5483] 22 25 25 32 27 29 30 25 27 25 ...
summary(muestra3)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   16.00   22.00   25.00   25.35   29.00   40.00

Media de edad muestra3

media3 <- round(summary(muestra3)[4],2)
media3
##  Mean 
## 25.35

Interpretación

A partir de la población de jugadores de FIFA 15 a FIFA 20 con 18278 datos (considerando 5 variables), se han obtenido tres muestras. Las muestras contienen 1828, 3656 y 5483 registros respectivamente.

Se ha calculado la media aritmética para las tres muestras, enfocandose en la variable “edad”. La primera muestra genera una media de 25.19 años, la segunda muestra de 25.27. y para la tercera muestra de 25.35

Se puede observar que los estadísticos obtenidos son similares entre si y podría considerarse que la media poblacional debe tener un valor similar. Lo anterior se ha verificado al calcularla y obtener un valor de \(\text{media de muestra} \approx \text{media poblacion}\)