Identificar datos de población y muestra.
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().
library(readr)
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')]
Con la función colnames(poblacion) se modifica a español los nombres de columnas
colnames(poblacion) <- c('nombre', 'nacion', 'edad', 'estatura', 'peso')
Con la función head(poblacion, 20) indicándole 20 se presentan los primeros 20 registros
head(poblacion)
## 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
Con la función tail(poblacion, 20) indicándole 20 se presentan los últimos 20 registros
tail(poblacion)
## nombre nacion edad estatura peso
## 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
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 ...
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
##
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
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)
str(muestra1)
## int [1:1828] 33 30 24 29 23 23 27 23 25 22 ...
summary(muestra1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 17.0 22.0 25.0 25.3 29.0 40.0
media1 <- round(summary(muestra1)[4],2)
media1
## Mean
## 25.3
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)
str(muestra2)
## int [1:3656] 26 24 27 26 22 21 20 22 21 28 ...
summary(muestra2)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 16.00 21.00 25.00 25.25 29.00 40.00
media2 <- round(summary(muestra2)[4],2)
media2
## Mean
## 25.25
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)
str(muestra3)
## int [1:5483] 27 29 22 23 32 29 28 26 33 23 ...
summary(muestra3)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 16.00 22.00 25.00 25.36 29.00 41.00
media3 <- round(summary(muestra3)[4],2)
media3
## Mean
## 25.36
Se construyen tres muestras a partir de una población que contiene \(18278\) registros y \(5\) variables de interés.
La muestra1 contiene \(1828\) registros, la muestra2 tiene \(3656\) registros y la muestra3 tiene \(5483\) registros.
Si la variable de interés es la edad, la media de la edad de la población es \(25.28\) años, los valores de la media de edad de cada muestras son: de la muestra1 su media de edad es 25.3, de la muestra2 su media de edad es 25.25 y de la muestra3 su media de edad es 25.36.
Con lo anterior se entiende que los estadísticos de una muestra deben acerarse en mucho a los parámetros poblacionales. ejemplo de ello, los valores de la media de cada muestra se acercan a los valores de la media de la población. \(\text{media de muestra} \approx \text{media poblacion}\)