Crear tablas de contingencia y determinar medidas de dispersión de datos como edades, sueldos y calificaciones.
Instalar librerías anticipadamente con install.packages(fdth).
library(fdth)
Se establece valor de semilla.
set.seed(2021)
Se generan 200 edades en dos conjuntos de datos diferentes.
edades1 <- sample(x = 18:60,size = 200,replace = TRUE)
edades2 <- sample(x = 18:60,size = 200,replace = TRUE)
Se identifican los datos ordenados con la función order().
sort(edades1)
## [1] 18 18 18 18 18 18 18 19 19 20 20 20 20 20 21 21 21 21 22 22 22 22 22 23 23
## [26] 23 23 23 23 24 24 24 24 24 25 25 25 25 25 26 26 26 26 26 26 26 27 27 27 28
## [51] 28 28 28 28 28 29 29 29 30 30 30 30 30 30 30 31 32 32 32 32 32 33 33 33 33
## [76] 34 34 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 38
## [101] 39 39 39 39 39 39 39 39 39 39 39 40 40 40 40 40 40 41 41 41 41 41 41 42 43
## [126] 43 44 44 44 45 45 46 46 46 46 46 46 46 46 47 47 47 47 48 48 48 48 48 48 49
## [151] 49 50 51 51 51 51 52 52 53 53 53 53 54 54 54 54 54 54 54 54 55 55 55 55 55
## [176] 55 55 55 55 56 56 56 56 56 57 57 57 58 58 58 58 59 60 60 60 60 60 60 60 60
sort(edades2)
## [1] 18 18 18 18 18 19 20 20 20 20 21 21 21 21 21 21 22 22 22 22 23 23 23 23 23
## [26] 23 23 23 23 24 24 24 24 24 25 25 25 25 25 26 26 26 26 26 26 26 26 27 27 27
## [51] 27 28 28 28 29 29 30 30 30 30 30 31 31 31 32 32 32 33 33 33 33 33 34 34 34
## [76] 34 34 34 34 35 35 35 36 36 36 37 37 37 37 37 37 37 37 37 38 38 39 39 39 39
## [101] 40 40 40 40 40 40 41 41 41 41 42 42 42 42 42 42 42 42 43 43 43 43 43 43 43
## [126] 43 43 44 44 44 44 44 45 45 45 45 46 46 46 47 47 47 47 47 47 48 48 48 48 49
## [151] 49 50 50 50 50 51 51 51 51 51 52 52 52 52 53 53 53 54 54 54 54 55 55 55 55
## [176] 56 57 57 57 57 57 57 58 58 58 58 58 59 59 59 59 59 59 59 60 60 60 60 60 60
Se muestran las tablas de frecuencias del conjunto de datos edades1 y edades2.
En las tablas de frecuencias se determina matemáticamente el número de clases, La opción matemáticamente más consistente es la conocida como regla de Sturges.
La solución de esta ecuación proporciona una regla práctica para obtener el número de clases.
\[ k=1+3.322log10(N) \]
Siendo k el número de clases
log es la función logarítmica de base 10, log10()
y N el total de la muestra
El rango de clase de acuerdo a Sturges está dada por
\[ h=\frac{max(datos) - min(datos)}{k} \]
Siendo h el rango de cada clase y max(datos) - min(datos) el rango del total de los datos, es decir la diferencia entre límite superior menos límite inferior.
Existen otras formas de determinar el número de clases a utilizar, algunas más complejas, otras más simples.
Independientemente de la forma de cálculo seleccionada ya se Sturges, Scott o Freedman-Diaconis (FD), lo realmente importante es que la información mostrada en la tabla de frecuencia sea fácil de revisar, que no contenga un número excesivo de clases y que la información que en ella se refleja permita comprender cómo se presentan los datos en la población o de una muestra.
tabla.edades1 <- fdt(x = edades1)
tabla.edades1
## Class limits f rf rf(%) cf cf(%)
## [17.82,22.57) 23 0.12 11.5 23 11.5
## [22.57,27.33) 26 0.13 13.0 49 24.5
## [27.33,32.08) 22 0.11 11.0 71 35.5
## [32.08,36.83) 21 0.10 10.5 92 46.0
## [36.83,41.59) 31 0.16 15.5 123 61.5
## [41.59,46.34) 16 0.08 8.0 139 69.5
## [46.34,51.09) 17 0.09 8.5 156 78.0
## [51.09,55.85) 23 0.12 11.5 179 89.5
## [55.85,60.6) 21 0.10 10.5 200 100.0
hist(edades1)
plot(edades1)
Class limits significa el rango de cada clase
f significa la frecuencia, la suma de f debe ser el total de elementos.
rf significa frecuencia relativa la suma de todas las rf debe ser el 1
rf% significa el valor relativo pero en porcentaje, la suma de rf% debe ser el 100%
cf significa frecuencia acumulada
cf% significa frecuencia porcentual acumulada
tabla.edades2 <- fdt(x = edades2)
tabla.edades2
## Class limits f rf rf(%) cf cf(%)
## [17.82,22.57) 20 0.10 10.0 20 10.0
## [22.57,27.33) 31 0.16 15.5 51 25.5
## [27.33,32.08) 16 0.08 8.0 67 33.5
## [32.08,36.83) 18 0.09 9.0 85 42.5
## [36.83,41.59) 25 0.12 12.5 110 55.0
## [41.59,46.34) 29 0.14 14.5 139 69.5
## [46.34,51.09) 21 0.10 10.5 160 80.0
## [51.09,55.85) 15 0.07 7.5 175 87.5
## [55.85,60.6) 25 0.12 12.5 200 100.0
hist(edades2)
plot(edades2)
Las medidas de dispersión varianza y desviación estándar miden el valor de dispersión de un conjunto de datos numéricos.
La dispersión significa que tanto los datos están alejados de la media, el valor de la desviación se compara con la media y se interpreta que tanto los valores distan del valor de la media.
Con las funciones de var() y sd() se determinan la varianza y a desviación respectivamente y con mean() la media de la muestra.
media_edades1 <- mean(edades1)
media_edades2 <- mean(edades2)
varianza_edades1 <- mean(edades1)
varianza_edades2 <- mean(edades2)
desv.std_edades1 <- sd(edades1)
desv.std_edades2 <- sd(edades2)
Se muestran los valores generados, el punto y coma en R significa en una misma linea se ejecutan dos instrucciones o dos comandos, en este caso solo mostrar los valores.
media_edades1; media_edades2
## [1] 38.61
## [1] 38.945
varianza_edades1; varianza_edades2
## [1] 38.61
## [1] 38.945
desv.std_edades1; desv.std_edades2
## [1] 12.52166
## [1] 12.42028
El coeficiente de variación (CV) es un estadístico que permite comparar entre dos o mas conjuntos de datos cuál es estos tiene una dispersión mayor o menor.
Al identificar el CV de un conjunto de datos y compararlo con otro CV de otro conjunto de datos similares, se puede determinar cual de los datos tiene mayor o menor dispersión y se puede concluir en cual es estos está mas dispersos sus datos, es decir cuál de ellos se aleja mas o menos de la media, según sea el caso.
Para determinar el coeficiente de variación se establece la división de la desviación estándar entre la media del conjunto de datos.
\[ CV = \frac{\sigma}{\bar{x}} \]
CV_edades1 <- desv.std_edades1 / media_edades1
CV_edades1
## [1] 0.3243112
CV_edades2 <- desv.std_edades2 / media_edades2
CV_edades2
## [1] 0.3189184
Se generan 200 sueldos en dos conjuntos de datos diferentes.
sueldos1 <- sample(x = 10000:12000, size = 200, replace = TRUE)
sueldos2 <- sample(x = 1000:12000, size = 200, replace = TRUE)
Se identifican los datos ordenados con la función order().
sort(sueldos1)
## [1] 10007 10009 10011 10015 10023 10032 10040 10046 10054 10069 10076 10106
## [13] 10112 10117 10117 10122 10128 10133 10159 10184 10197 10204 10229 10236
## [25] 10240 10250 10257 10259 10277 10304 10306 10312 10343 10349 10359 10361
## [37] 10399 10431 10444 10448 10450 10464 10470 10471 10483 10490 10502 10512
## [49] 10521 10530 10576 10580 10598 10599 10606 10610 10630 10631 10650 10650
## [61] 10659 10666 10668 10669 10672 10713 10715 10725 10737 10757 10763 10772
## [73] 10783 10808 10813 10830 10854 10861 10880 10906 10907 10908 10918 10932
## [85] 10935 10961 11006 11019 11024 11035 11040 11057 11074 11082 11095 11135
## [97] 11137 11140 11172 11175 11196 11200 11200 11205 11214 11220 11225 11234
## [109] 11249 11256 11263 11269 11277 11287 11290 11293 11295 11296 11308 11323
## [121] 11335 11339 11346 11348 11351 11358 11368 11379 11379 11387 11389 11396
## [133] 11402 11411 11424 11427 11445 11474 11477 11495 11499 11502 11504 11517
## [145] 11521 11529 11532 11532 11538 11546 11550 11551 11555 11558 11559 11566
## [157] 11566 11573 11576 11599 11612 11613 11623 11641 11641 11644 11654 11673
## [169] 11679 11679 11709 11715 11722 11734 11760 11764 11781 11786 11792 11796
## [181] 11826 11829 11845 11846 11850 11859 11863 11868 11868 11884 11892 11897
## [193] 11910 11913 11933 11958 11975 11986 11989 11995
sort(sueldos2)
## [1] 1083 1346 1467 1483 1496 1534 1678 1720 1764 1898 1902 1995
## [13] 2039 2047 2064 2120 2228 2326 2466 2527 2552 2558 2587 2694
## [25] 2728 2792 2846 2864 2968 3030 3032 3074 3093 3115 3191 3290
## [37] 3455 3479 3536 3615 3628 3698 3793 3876 3878 3899 3961 4035
## [49] 4099 4129 4138 4176 4214 4223 4265 4330 4341 4427 4434 4651
## [61] 4670 4699 4729 4735 4745 4780 4855 4908 4967 4974 4984 4991
## [73] 5004 5023 5118 5265 5324 5565 5623 5660 5694 5736 5763 5766
## [85] 5789 5797 6021 6033 6117 6148 6255 6294 6359 6366 6397 6455
## [97] 6482 6490 6510 6563 6589 6603 6659 6681 6760 6817 6823 6843
## [109] 6864 6901 6932 7027 7082 7177 7186 7195 7216 7314 7361 7368
## [121] 7396 7454 7459 7574 7671 7713 7724 7736 7777 7833 7908 8023
## [133] 8031 8032 8084 8121 8135 8229 8233 8259 8276 8422 8574 8649
## [145] 8930 8939 8943 8989 9030 9080 9161 9246 9306 9386 9390 9558
## [157] 9674 9750 9756 9787 9882 9905 9923 9983 10119 10215 10263 10396
## [169] 10428 10439 10517 10600 10629 10797 10841 10883 10897 10941 10957 11006
## [181] 11134 11143 11242 11251 11275 11292 11309 11337 11386 11426 11547 11596
## [193] 11645 11688 11709 11725 11801 11919 11953 11973
Se muestran las tablas de frecuencias del conjunto de datos sueldos1 y sueldos2.
tabla.sueldos1 <- fdt(x = sueldos1, breaks = "Sturges")
tabla.sueldos1
## Class limits f rf rf(%) cf cf(%)
## [9906.93,10152.266) 18 0.09 9.0 18 9.0
## [10152.266,10397.601) 18 0.09 9.0 36 18.0
## [10397.601,10642.937) 22 0.11 11.0 58 29.0
## [10642.937,10888.272) 21 0.10 10.5 79 39.5
## [10888.272,11133.608) 16 0.08 8.0 95 47.5
## [11133.608,11378.943) 32 0.16 16.0 127 63.5
## [11378.943,11624.279) 36 0.18 18.0 163 81.5
## [11624.279,11869.614) 26 0.13 13.0 189 94.5
## [11869.614,12114.95) 11 0.06 5.5 200 100.0
hist(sueldos1) # Histograma
plot(sueldos1) # Gráfica de dispersión
tabla.sueldos2 <- fdt(x = sueldos2, breaks = "Sturges")
tabla.sueldos2
## Class limits f rf rf(%) cf cf(%)
## [1072.17,2296.6767) 17 0.09 8.5 17 8.5
## [2296.6767,3521.1833) 21 0.10 10.5 38 19.0
## [3521.1833,4745.69) 27 0.14 13.5 65 32.5
## [4745.69,5970.1967) 21 0.10 10.5 86 43.0
## [5970.1967,7194.7033) 29 0.14 14.5 115 57.5
## [7194.7033,8419.21) 26 0.13 13.0 141 70.5
## [8419.21,9643.7167) 15 0.07 7.5 156 78.0
## [9643.7167,10868.223) 19 0.10 9.5 175 87.5
## [10868.223,12092.73) 25 0.12 12.5 200 100.0
hist(sueldos2) # Histograma
plot(sueldos2) # Gráfica de dispersión
media_sueldos1 <- mean(sueldos1)
media_sueldos2 <- mean(sueldos2)
varianza_sueldos1 <- var(sueldos1)
varianza_sueldos2 <- var(sueldos2)
desv.std_sueldos1 <- sd(sueldos1)
desv.std_sueldos2 <- sd(sueldos2)
Se muestran los valores generados.
media_sueldos1; media_sueldos2
## [1] 11053.49
## [1] 6615.695
varianza_sueldos1; varianza_sueldos2
## [1] 342913.3
## [1] 9306433
desv.std_sueldos1; desv.std_sueldos2
## [1] 585.588
## [1] 3050.645
CV_sueldos1 <- desv.std_sueldos1 / media_sueldos1
CV_sueldos1
## [1] 0.05297766
CV_sueldos2 <- desv.std_sueldos2 / media_sueldos2
CV_sueldos2
## [1] 0.4611223
Se generan 500 calificaciones en dos conjuntos de datos diferentes.
calif1 <- sample(x = 70:100,size = 500,replace = TRUE)
calif2 <- sample(x = 70:100,size = 500,replace = TRUE)
Se identifican los datos ordenados con la función order().
sort(calif1)
## [1] 70 70 70 70 70 70 70 70 70 70 70 71 71 71 71 71 71 71
## [19] 71 71 71 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72
## [37] 72 72 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73
## [55] 73 73 73 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74
## [73] 74 74 74 74 74 75 75 75 75 75 75 75 75 75 75 75 75 75
## [91] 75 76 76 76 76 76 76 76 76 76 76 76 76 76 76 77 77 77
## [109] 77 77 77 77 77 77 77 77 77 78 78 78 78 78 78 78 78 78
## [127] 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
## [145] 78 79 79 79 79 79 79 79 79 79 79 79 80 80 80 80 80 80
## [163] 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
## [181] 80 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 82 82
## [199] 82 82 82 82 82 82 82 82 82 82 82 83 83 83 83 83 83 83
## [217] 83 83 83 83 83 83 84 84 84 84 84 84 84 84 84 84 84 84
## [235] 84 84 84 84 84 84 84 85 85 85 85 85 85 85 85 85 85 85
## [253] 85 85 85 85 85 85 85 85 85 86 86 86 86 86 86 86 86 86
## [271] 86 86 86 86 86 86 86 86 87 87 87 87 87 87 87 87 87 87
## [289] 87 87 87 87 87 87 87 88 88 88 88 88 88 88 88 88 88 88
## [307] 88 88 88 88 88 88 88 89 89 89 89 89 89 89 89 89 89 89
## [325] 89 89 89 89 89 89 89 90 90 90 90 90 90 90 90 90 91 91
## [343] 91 91 91 91 91 91 91 91 91 91 91 91 92 92 92 92 92 92
## [361] 92 92 92 92 92 92 92 92 92 92 92 93 93 93 93 93 93 93
## [379] 93 93 93 93 93 93 93 93 93 93 94 94 94 94 94 94 94 94
## [397] 94 94 94 94 94 94 94 94 94 95 95 95 95 95 95 95 95 95
## [415] 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 96
## [433] 96 96 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97
## [451] 97 97 97 97 97 97 97 97 97 98 98 98 98 98 98 98 98 98
## [469] 98 98 98 98 98 98 99 99 99 99 99 99 99 99 99 99 99 99
## [487] 99 99 100 100 100 100 100 100 100 100 100 100 100 100
sort(calif2)
## [1] 70 70 70 70 70 70 70 70 70 70 70 70 70 70 71 71 71 71
## [19] 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71
## [37] 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72
## [55] 72 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73
## [73] 73 73 73 74 74 74 74 74 74 74 74 74 75 75 75 75 75 75
## [91] 75 75 75 75 75 75 75 75 75 75 75 75 76 76 76 76 76 76
## [109] 76 76 76 76 76 76 76 76 77 77 77 77 77 77 77 77 77 77
## [127] 77 77 77 77 77 77 77 77 77 77 77 78 78 78 78 78 78 78
## [145] 78 78 78 78 78 78 78 78 78 78 78 79 79 79 79 79 79 79
## [163] 79 79 79 79 80 80 80 80 80 80 80 80 80 80 80 80 80 80
## [181] 80 80 80 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81
## [199] 81 81 81 81 81 81 81 81 81 82 82 82 82 82 82 82 82 82
## [217] 82 82 82 82 82 82 83 83 83 83 83 83 83 83 83 83 83 83
## [235] 83 83 84 84 84 84 84 84 84 84 84 84 84 84 84 85 85 85
## [253] 85 85 85 85 85 85 85 85 85 85 85 85 86 86 86 86 86 86
## [271] 86 86 86 86 86 86 87 87 87 87 87 87 87 87 87 87 87 87
## [289] 87 87 87 87 88 88 88 88 88 88 88 88 88 88 88 89 89 89
## [307] 89 89 89 89 89 89 89 89 89 89 89 89 89 90 90 90 90 90
## [325] 90 90 90 90 90 90 90 90 90 91 91 91 91 91 91 91 91 91
## [343] 91 91 91 91 91 91 92 92 92 92 92 92 92 92 92 92 92 92
## [361] 92 93 93 93 93 93 93 93 93 93 93 93 93 93 93 94 94 94
## [379] 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94
## [397] 94 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95
## [415] 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96
## [433] 97 97 97 97 97 97 97 97 97 97 97 97 97 98 98 98 98 98
## [451] 98 98 98 98 98 98 98 98 98 98 98 99 99 99 99 99 99 99
## [469] 99 99 99 99 99 99 99 100 100 100 100 100 100 100 100 100 100 100
## [487] 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Se muestran las tablas de frecuencias del conjunto de datos calif1 y calif2.
tabla.calif1 <- fdt(x = calif1, breaks = "Sturges")
tabla.calif1
## Class limits f rf rf(%) cf cf(%)
## [69.3,72.5) 38 0.08 7.6 38 7.6
## [72.5,75.6) 53 0.11 10.6 91 18.2
## [75.6,78.8) 54 0.11 10.8 145 29.0
## [78.8,82) 51 0.10 10.2 196 39.2
## [82,85.2) 65 0.13 13.0 261 52.2
## [85.2,88.3) 52 0.10 10.4 313 62.6
## [88.3,91.5) 41 0.08 8.2 354 70.8
## [91.5,94.7) 51 0.10 10.2 405 81.0
## [94.7,97.8) 54 0.11 10.8 459 91.8
## [97.8,101) 41 0.08 8.2 500 100.0
hist(calif1) # Histograma
plot(calif1) # Gráfica de dispersión
tabla.calif2 <- fdt(x = calif2, breaks = "Sturges")
tabla.calif2
## Class limits f rf rf(%) cf cf(%)
## [69.3,72.5) 55 0.11 11.0 55 11.0
## [72.5,75.6) 47 0.09 9.4 102 20.4
## [75.6,78.8) 53 0.11 10.6 155 31.0
## [78.8,82) 52 0.10 10.4 207 41.4
## [82,85.2) 57 0.11 11.4 264 52.8
## [85.2,88.3) 39 0.08 7.8 303 60.6
## [88.3,91.5) 45 0.09 9.0 348 69.6
## [91.5,94.7) 49 0.10 9.8 397 79.4
## [94.7,97.8) 48 0.10 9.6 445 89.0
## [97.8,101) 55 0.11 11.0 500 100.0
hist(calif2) # Histograma
plot(calif2) # Gráfica de dispersión
media_calif1 <- mean(calif1)
media_calif2 <- mean(calif2)
varianza_calif1 <- var(calif1)
varianza_calif2 <- var(calif2)
desv.std_calif1 <- sd(calif1)
desv.std_calif2 <- sd(calif2)
Se muestran los valores generados.
media_calif1; media_calif2
## [1] 85.038
## [1] 84.936
varianza_calif1; varianza_calif2
## [1] 75.86829
## [1] 85.50692
desv.std_calif1; desv.std_calif2
## [1] 8.710241
## [1] 9.246995
CV_calif1 <- desv.std_calif1 / media_calif1
CV_calif1
## [1] 0.1024276
CV_calif2 <- desv.std_calif2 / media_calif2
CV_calif2
## [1] 0.1088702
Las tablas de contingencia representan las clases y la frecuencias de casos de cada una de las clases, permiten observar los valores relativos y porcentuales de las frecuencias.
Con respecto a edades1 existe un 15.5% de valores que están en un rango o intervalo entre 36.83 y 41.59.
En relación a edades2 existe una cantidad de valores entre 36.83 y 46.34 que representan el 14.5%.
Con respecto a los valores estadísticos del conjunto de datos edades1, el valor de la media es de: 38.61, la desviación es de: 12.5216556.
Con respecto a los valores estadísticos del conjunto de datos edades2, el valor de la media es de: 38.945, la desviación es de: 12.4202774.
El coeficiente de variación de edades1 es de: 0.3243112 y el CV de edades2 es de: 0.3189184.
Existe mayor dispersión en los valores del conjunto de datos edades1 con respecto a edades2 por tener ligeramente mayor valor en su coeficiente de variación.
Con respecto a sueldos1 existe un 18% de valores que están en un rango o intervalo entre 11378.943 y 11624.279.
En relación a sueldos2 existe una cantidad de valores entre 5970.1967 y 7194.7033 que representan el 14.5%.
Con respecto a los valores estadísticos del conjunto de datos sueldos1, el valor la media es de: 1.105349^{4}, la desviación es de: 585.5880263.
Con respecto a los valores estadísticos del conjunto de datos sueldos2, el valor la media es de: 6615.695, la desviación es de: 3050.644669.
El coeficiente de variación de sueldos1 es de: 0.0529777 y el CV de sueldos2 es de: 0.4611223.
Existe mayor dispersión en los valores del conjunto de datos sueldos2 con respecto a sueldos1 por tener ligeramente mayor valor en su coeficiente de variación.
Con respecto a calif1 existe un 7.6% de valores que están en un rango o intervalo entre 69.3 y 72.5.
En relación a calif2 existe una cantidad de valores entre 69.3 y 72.5 que representan el 11%.
Con respecto a los valores estadísticos del conjunto de datos calif1, el valor la media es de: 85.038, la desviación es de: 8.7102407.
Con respecto a los valores estadísticos del conjunto de datos calif2, el valor la media es de: 84.936, la desviación es de: 9.2469951.
El coeficiente de variación de calif1 es de: 0.1024276 y el CV de calif2 es de: 0.1088702.
Existe mayor dispersión en los valores del conjunto de datos calif2 con respecto a calif1 por tener ligeramente mayor valor en su coeficiente de variación.