Determinar medidas de localizaci?n basadas en estad?sticos cuartiles y percentiles utilizando de un conjunto de datos as? como determinar su significado, visualizaci?n e interpretaci?n.
El caso pretende dar a conocer como determinar cuartiles y percentiles de un conjunto de datos.
Los datos ser? simulados, primero un conjunto de valores num?ricos y la segunda parte se hace uso de los datos descargados del promedio de alumnos.
Este caso inicia con la declaraci?n con cargar las librer?as, posteriormente, se simulan los datos y se descargan los datos de alumnos, finalmente se aplican los cuartiles y percentiles as? como su visualizaci?n , se identifica tambi?n su significado e interpretaci?n.
Existen adem?s de la media, mediana y moda otras medidas de posici?n, estas consisten en determinar la ubicaci?n de los valores que dividen un conjunto de observaciones en partes iguales. Estas medidas son los cuartiles, deciles y percentiles. (Lind, Marchal, and Wathen 2015).
Los cuartiles dividen a un conjunto de observaciones en cuatro partes iguales de en un conjunto de valores ordenados de menor a mayor. (Lind, Marchal, and Wathen 2015).
Hablando de medida de localizaci?n mediana, esta significa que se?ala el centro de los datos ordenados, es decir al 50% o 0.50.
De igual manera, los cuartiles dividen a un conjunto de observaciones en cuatro partes iguales. El primer cuartil, que se representa mediante Q1, es el valor bajo el cual se presenta 25% o 0.25 de las observaciones, y el tercer cuartil, simbolizado por Q3, es el valor bajo el cual se presenta 75% o 0.75 de las observaciones. El cuartil dos 2 es igual al valor que se representa el 50% es decir igua a la mediana. (Lind, Marchal, and Wathen 2015).
Hablar de percentiles (porcentaje) significa encontrar el valor de los datos ordenados en una localizaci?n porcentual entre 11y 100, es decir al 20, al 45%, al 60% o al 85%, es decir cualquier valor entre 1% y 100%en t?rminos porcentuales o lo que es lo mismo cualquier valor entre 0 y 1 en t?rminos relativos.
Los deciles significa dividir el conjunto de datos ordenados en 10 partes, de tal forma que el primer decil est? al 10%, el segundo al 20% y as? sucesivamente hasta llegar al 100%.
Algunos razonmientos e igualdades ser?a por ejemplo, el cuartil 1 o Q1 que es el 25%, es igual al percentil 25; el decil 6 al 60%es igual al percentil 6060, y as? algunas similitudes de localizaci?n.
La interpretaci?n de cuartiles, percentiles y deciles radica en determinar cu?ntos datos est?n por encima o por debajo de esa medida de localizaci?n.
Por ejemplo como lo menciona Lind (2015), si un promedio general de estudiantes en la universidad se encuentra en el octavo decil, se podr?a concluir que 80% de los estudiantes tuvieron un promedio general inferior a ese valor y un 20% superior al valor encontrado. Si un promedio estuvo en el 92 percentil, entonces 92% de los estudiantes tuvo ese promedio general menor al valor encontrado, y solo 8% de ellos tuvo uno mayor.(Lind, Marchal, and Wathen 2015).
Lo mismo sucede con los cuartiles, significa interpretar y determinar el porcentaje y la cantidad de elementos que est? por encima o por debajo del \(25\), del \(50\%\) o del \(75\%\) de los datos.
Para determinar el valor de un cuartil o un percentil se puede utilizar la siguiente f?rmula
\[ L_p = (n+1) \cdot \frac{p}{100} \]
Siendo:
Lp El valor del percentil o del cuartil a buscar
n Es el total de los datos pp Es el valor porcentual 25,30,50,75,…
100 dividido entre cien es el valor relativo
El diagrama de caja permite es una representaci?n gr?fica basada en cuartiles que ayuda a presentar un conjunto de datos. Para construir un diagrama de caja solo se necesitan estos estad?sticos: valor m?nimo, Q1 (primer cuartil), mediana o Q2 (segundo cuartil), Q3 (tercer cuartil) y valor m?ximo.
El diagrama de caja tambi?n revele el concepto de rango intercuartil que significa la cantidad o la densidad de elementos que hay entre el Q1 y Q3; este rango inercuartil significa que el 50% de los datos est? en ese rango.
Luego existe otro significado del diagrama, se pueden ver cuales son valores at?picos, extra?os, muy altos o muy bajos, o outliers en ingl?s. Un dato at?pico se trata de un valor que no concuerda con el resto de los datos. (Lind, Marchal, and Wathen 2015).
Se define como un valor m?s de 1.5 veces la amplitud del rango intercuartil m?s peque?o que Q1, o mayor que Q3. (Lind, Marchal, and Wathen 2015).
\[ \text{dato at?pico > Q3}=Q3 + 1.5\cdot(Q3-Q1)) \]
y
\[ \text{dato at?pico < Q1}=Q1 - 1.5\cdot(Q3-Q1)) \]
estos datos se encuentran a 1.5 veces el valor del rango intercuartil.
\[ \text{rango intercuartil RI =}Q3 - Q1 \]
En Lenguaje R se utiliza la funci?n quantile para determinar tanto cuartiles como percentiles y hasta deciles.
La funci?n tiene un atributo type que permite determinar los cuartiles de acuerdo a autores y cada uno de ellos con sus f?rmulas matem?ticas para su c?lculo, finalmente los valores que da una u otra f?rmula son muy similares entre si y lo trascendente es el significado y la interpretaci?n que hay que darle a estas medidas de localizaci?n.
El desarrollo del caso utiliza primero datos simulados.
Luego, se utilizan y se descargan los datos de alumnos que existen en la direcci?n “alumnos.”
Con ambos datos se encuentran cuartiles y percentiles; finalmente se visualizan con diagramas de cajas utilizando la librer?a ggplot.
Al final del caso se busca la interpretaci?n del mismo.
Se cargan las librer?as readr y ggplot2 cuya utilidad es disponer de funciones para importar datos de archivos separados por coma o csv y visualizar diversos tipos de gr?ficos respectivamente.
Code
Se crean datos con la funci?n sample de tal vez 100 valores de edades de personas entre 18 y 65. La variable datos es un vector que almacena dichos valores.
set.seed(2021)
datos <- sample(18:65, 100, replace = TRUE)
datos
## [1] 24 55 63 56 29 23 55 55 63 22 64 56 58 40 29 35 20 63 57 43 53 54 39 48 65
## [26] 51 36 21 39 22 26 55 35 60 23 39 23 32 51 39 33 32 41 34 55 54 37 21 47 25
## [51] 36 20 19 34 57 58 48 26 46 44 28 53 55 63 32 35 26 36 33 61 51 54 59 61 39
## [76] 55 44 61 30 50 63 38 42 48 62 28 26 40 60 39 53 47 63 65 24 46 18 36 62 53
n <- length(datos)
n
## [1] 100
datos <- c(datos, c(-13,9,96,150))
datos
Ordenando y mostrando los datos para luego determinar medidas de localizaci?n cuartiles y percentiles
datos.ordenados <- datos[order(datos)]
datos.ordenados
## [1] 18 19 20 20 21 21 22 22 23 23 23 24 24 25 26 26 26 26 28 28 29 29 30 32 32
## [26] 32 33 33 34 34 35 35 35 36 36 36 36 37 38 39 39 39 39 39 39 40 40 41 42 43
## [51] 44 44 46 46 47 47 48 48 48 50 51 51 51 53 53 53 53 54 54 54 55 55 55 55 55
## [76] 55 55 56 56 57 57 58 58 59 60 60 61 61 61 62 62 63 63 63 63 63 63 64 65 65
\[ L_p = (n+1) \cdot \frac{p}{100} \]
Estos valores deber?n ser aproximados a utilizar la funci?n quantile() en R
q1 <- datos.ordenados[(n+1) * 25/100]; q1
## [1] 32
q2 <- datos.ordenados[(n+1) * 50/100]; q2
## [1] 43
q3 <- datos.ordenados[(n+1) * 75/100]; q3
## [1] 55
Para el resto del caso se le har? caso a los valores generados por la funci?n quantile().
Q1 <- quantile(datos, c(0.25), type = 6); Q1
## 25%
## 32
Q2 <- quantile(datos, c(0.50), type = 6); Q2
## 50%
## 43.5
Q3 <- quantile(datos, c(0.75), type = 6); Q3
## 75%
## 55
La mediana siempre ser? igual al cuartil del 50% o al segundo cuartil
mediana <- median(datos)
mediana
## [1] 43.5
Q2
## 50%
## 43.5
Los percentiles es dividir los datos en un porcentaje a decisi?n del analista, puede ser al 10%, al 20%, al 30%… al 90%.
P10 <- quantile(datos, c(0.10)); P10
## 10%
## 23
percentiles <- quantile(datos, c(0.2, 0.40, 0.50, 0.60, 0.80), type = 6)
percentiles
## 20% 40% 50% 60% 80%
## 28.2 39.0 43.5 50.6 57.0
Se determinan los valores m?nimos y m?ximos y se muestran.
La funci?n summary() describe los mismos datos.
minimo <- min(datos)
maximo <- max(datos)
minimo; Q1; Q2; Q3; maximo
## [1] 18
## 25%
## 32
## 50%
## 43.5
## 75%
## 55
## [1] 65
summary(datos)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 32.00 43.50 43.27 55.00 65.00
library(ggplot2)
El vector de los datos se transforma a estructura data.frame para poderlo tratar con la liber?a ggplot2.
datos <- data.frame(datos)
datos
## datos
## 1 24
## 2 55
## 3 63
## 4 56
## 5 29
## 6 23
## 7 55
## 8 55
## 9 63
## 10 22
## 11 64
## 12 56
## 13 58
## 14 40
## 15 29
## 16 35
## 17 20
## 18 63
## 19 57
## 20 43
## 21 53
## 22 54
## 23 39
## 24 48
## 25 65
## 26 51
## 27 36
## 28 21
## 29 39
## 30 22
## 31 26
## 32 55
## 33 35
## 34 60
## 35 23
## 36 39
## 37 23
## 38 32
## 39 51
## 40 39
## 41 33
## 42 32
## 43 41
## 44 34
## 45 55
## 46 54
## 47 37
## 48 21
## 49 47
## 50 25
## 51 36
## 52 20
## 53 19
## 54 34
## 55 57
## 56 58
## 57 48
## 58 26
## 59 46
## 60 44
## 61 28
## 62 53
## 63 55
## 64 63
## 65 32
## 66 35
## 67 26
## 68 36
## 69 33
## 70 61
## 71 51
## 72 54
## 73 59
## 74 61
## 75 39
## 76 55
## 77 44
## 78 61
## 79 30
## 80 50
## 81 63
## 82 38
## 83 42
## 84 48
## 85 62
## 86 28
## 87 26
## 88 40
## 89 60
## 90 39
## 91 53
## 92 47
## 93 63
## 94 65
## 95 24
## 96 46
## 97 18
## 98 36
## 99 62
## 100 53
ggplot(data = datos, mapping = aes(x=datos)) + geom_boxplot(outlier.colour="red")
ggplot(data = datos, mapping = aes(y=datos)) + geom_boxplot(outlier.colour="red")
Se importan los datos de alumnos.
Cabe hacer notar que en este conjunto de datos existen datos en la variable Promedio que son igual a cero, esto se interpreta como datos at?picos o que tal vez no debieran ser considerados en an?lisis estad?sticos.
datos.alumnos <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/datos/promedios%20alumnos/ALUMNOS%20EJ2021.csv")
head(datos.alumnos)
## NoControl Alumno Semestre Cr.Aprobados Cr.Cursando Promedio Carrera
## 1 1 1 12 207 19 79.84 SISTEMAS
## 2 2 2 13 226 9 82.55 SISTEMAS
## 3 3 3 10 235 10 95.16 SISTEMAS
## 4 4 4 13 231 14 79.32 SISTEMAS
## 5 5 5 10 235 10 92.67 SISTEMAS
## 6 6 6 10 235 10 91.25 SISTEMAS
tail(datos.alumnos)
## NoControl Alumno Semestre Cr.Aprobados Cr.Cursando Promedio Carrera
## 6037 750 750 9 170 20 81.16 ARQUITECTURA
## 6038 751 751 7 103 19 84.43 ARQUITECTURA
## 6039 752 752 4 76 34 92.47 ARQUITECTURA
## 6040 753 753 4 84 26 89.74 ARQUITECTURA
## 6041 754 754 3 52 28 87.75 ARQUITECTURA
## 6042 755 755 2 18 22 86.50 ARQUITECTURA
n <- nrow(datos.alumnos)
n
## [1] 6042
Se factoriza la variable Carrera para que en summary se obtenga la frecuencia de la columna Carrera.
datos.alumnos$Carrera <- factor(datos.alumnos$Carrera)
summary(datos.alumnos)
## NoControl Alumno Semestre Cr.Aprobados
## Min. : 1.0 Min. : 1.0 Min. : 1.000 Min. : 0.0
## 1st Qu.:112.0 1st Qu.:112.0 1st Qu.: 3.000 1st Qu.: 53.0
## Median :245.0 Median :245.0 Median : 5.000 Median :109.0
## Mean :268.1 Mean :268.1 Mean : 5.428 Mean :114.8
## 3rd Qu.:394.0 3rd Qu.:394.0 3rd Qu.: 8.000 3rd Qu.:172.0
## Max. :755.0 Max. :755.0 Max. :17.000 Max. :264.0
## NA's :499
## Cr.Cursando Promedio Carrera
## Min. : 3.00 Min. : 0.00 ARQUITECTURA : 755
## 1st Qu.:23.00 1st Qu.: 82.20 INDUSTRIAL : 721
## Median :27.00 Median : 85.83 CIVIL : 674
## Mean :26.09 Mean : 79.33 QUIMICA : 564
## 3rd Qu.:30.00 3rd Qu.: 89.50 GESTION : 557
## Max. :42.00 Max. :100.00 ADMINISTRACION: 492
## (Other) :2279
Se determinan los cuartiles de la variable Promedio de los datos de alumnos con la funci?n quantile().
cuartiles <- quantile(x = datos.alumnos$Promedio, probs = c(0.25, 0.50, 0.75), type = 6)
cuartiles
## 25% 50% 75%
## 82.20 85.83 89.50
Q1 <- cuartiles[1]; Q1
## 25%
## 82.2
Q2 <- cuartiles[2]; Q2
## 50%
## 85.83
Q3 <- cuartiles[3]; Q3
## 75%
## 89.5
El 50%de los datos est? entre 82.2 y 89.5. El RI rango intercuartil es Q3???Q1o sea 7.3.
Los valores at?picos mayores a Q3 ser?n los que est?n por encima de 100.45 y los valores at?picos menores a Q1 ser?n los que est?n por debajo de 71.25
atipicos.mayores <- Q3 + 1.5 * (Q3-Q1)
atipicos.mayores
## 75%
## 100.45
atipicos.menores <- Q1 - 1.5 * (Q3-Q1)
atipicos.menores
## 25%
## 71.25
ggplot(data = datos.alumnos, mapping = aes(y=Promedio)) + geom_boxplot(outlier.colour="red")
En este diagrama de caja se detecta que hay valores at?picos principalemente los que tienen 00 en la variable promedio.
Aqu? es en donde se hace prudente tomar decisiones de que ?hacer con esos valores?, por lo pronto la decisi?n es simple, son alumnos que no tienen promedio en su historia acad?mica, es decir que no han cursado semestre alguno y no han cerrado al menos un periodo escolar.
Por medio de la funci?n subset() vista anteriormente, se eliminan o filtran esos registros.
datos <- subset(datos, Promedio > 0) significa quitar los alumnos que no tienen promedio a?n.
datos.alumnos <- subset(datos.alumnos, Promedio > 0)
head(datos.alumnos)
## NoControl Alumno Semestre Cr.Aprobados Cr.Cursando Promedio Carrera
## 1 1 1 12 207 19 79.84 SISTEMAS
## 2 2 2 13 226 9 82.55 SISTEMAS
## 3 3 3 10 235 10 95.16 SISTEMAS
## 4 4 4 13 231 14 79.32 SISTEMAS
## 5 5 5 10 235 10 92.67 SISTEMAS
## 6 6 6 10 235 10 91.25 SISTEMAS
tail(datos.alumnos)
## NoControl Alumno Semestre Cr.Aprobados Cr.Cursando Promedio Carrera
## 6037 750 750 9 170 20 81.16 ARQUITECTURA
## 6038 751 751 7 103 19 84.43 ARQUITECTURA
## 6039 752 752 4 76 34 92.47 ARQUITECTURA
## 6040 753 753 4 84 26 89.74 ARQUITECTURA
## 6041 754 754 3 52 28 87.75 ARQUITECTURA
## 6042 755 755 2 18 22 86.50 ARQUITECTURA
n<-nrow(datos.alumnos)
n
## [1] 5535
cuartiles <- quantile(x = datos.alumnos$Promedio, probs = c(0.25, 0.50, 0.75), type = 6)
cuartiles
## 25% 50% 75%
## 83.24 86.36 89.83
Q1 <- cuartiles[1]; Q1
## 25%
## 83.24
Q2 <- cuartiles[2]; Q2
## 50%
## 86.36
Q3 <- cuartiles[3]; Q3
## 75%
## 89.83
summary(datos.alumnos)
## NoControl Alumno Semestre Cr.Aprobados Cr.Cursando
## Min. : 1.0 Min. : 1.0 Min. : 2.000 Min. : 4 Min. : 3.0
## 1st Qu.:106.0 1st Qu.:106.0 1st Qu.: 3.000 1st Qu.: 53 1st Qu.:23.0
## Median :239.0 Median :239.0 Median : 6.000 Median :109 Median :28.0
## Mean :262.2 Mean :262.2 Mean : 5.826 Mean :115 Mean :26.1
## 3rd Qu.:388.0 3rd Qu.:388.0 3rd Qu.: 8.000 3rd Qu.:172 3rd Qu.:30.0
## Max. :755.0 Max. :755.0 Max. :17.000 Max. :264 Max. :42.0
##
## Promedio Carrera
## Min. : 70.00 INDUSTRIAL : 653
## 1st Qu.: 83.25 ARQUITECTURA : 633
## Median : 86.36 CIVIL : 594
## Mean : 86.60 GESTION : 518
## 3rd Qu.: 89.83 QUIMICA : 515
## Max. :100.00 ADMINISTRACION: 458
## (Other) :2164
ggplot(data = datos.alumnos, mapping = aes(y=Promedio)) + geom_boxplot(outlier.colour="red") +
labs(title = "Promedio de Alumnos",subtitle = paste("Q1 = ",Q1, ", Q2 = ",Q2, ", Q3 = ",Q3))
Se siguen visualizando datos at?picos, sin embargo estos si son datos extra?os pero reales, que significa que hay alumnos con promedio de 100 y alumnos con promedio de 70 aproximadamente.
ggplot(data = datos.alumnos, aes(x=Promedio)) +
geom_histogram(bins = 30) +
geom_vline(aes(xintercept = Q1,
color = "Q1"),
linetype = "dashed",
size = 1) +
geom_vline(aes(xintercept = Q2,
color = "Q2"),
linetype = "dashed",
size = 1) +
geom_vline(aes(xintercept = Q3,
color = "Q3"),
linetype = "dashed",
size = 1) +
labs(title = "Histograma de Promedio de Alumnos",subtitle = paste("Cuartil 1 al 25% = ",Q1, ", Cuartil 2 al 50% = ",Q2, ", Cuartil 3 al 75% = ",Q3))
Los cuartiles son ubicaciones de los datos en las posiciones del 25%, 50%, 75% o el 100%. Es decir, las posiciones un cuarto, dos cuartos, tres cuartos, y el cuatro cuarto. El intercuatil es la diferencia entre el tercer y el primer cuartil de una distribución.
El promedio de 80 está por debajo del segundo cuartil, que es 86.30, es decir, la media.
Lind, Douglas, William Marchal, and Samuel Wathen. 2015. Estad?stica Aplicada a Los Negocios y La Econom?a. Decimo Sexta. M?xico, D.F.: McGraw-Hill.