CASO 2. Tablas de Frecuencias

Objetivo

Generar tablas de frecuencias con un conjunto de datos de 100 registros

Descripción

Crear un conjunto de datos de 100 registros con cuatro variables: nombre, genero (género de sexo), edad y deporte favorito de cada persona. Una vez construido el conjunto de datos elaborar tablas de frecuencias de los nombres, géneros (sexo) y deporte favorito; de igual forma determinar la tabla de frecuencia de las edades de las personas.

Sustento teórico

Una distribución de frecuencia es un resumen tabular de datos que muestra el número (frecuencia) de elementos en cada una de las diferentes clases disyuntas (que no se sobreponen). Anderson, D., Sweeney, D., & Williams, T. (2008).

Las tablas de frecuencia usualmente tienen dos columnas; una de ellas, la primera,muestra todos los posibles valores que asume la variable y la segunda, para cada valor de la variable muestra el número de veces que se presenta dicho valor, en el contexto en el que se está trabajando; tal número se denomina frecuencia.

Se puede tener tablas de atributos, de variables discretas y de variables continuas. De acuerdo a la forma como se organizan las frecuencias se tiene: tablas de frecuencias absolutas, de frecuencias relativas, de frecuencias porcentuales, de frecuencias acumuladas absolutas, de frecuencias acumuladas relativas y de frecuencias acumuladas porcentuales. (Sarmiento & Fernández, 2013, p. 42).

Frecuencia o Frecuencia Absoluta: Es el número de veces que se presenta un determinado dato de un carácter en los diferentes elementos de una población o la muestra. Se representa por \(ni\). Es el número de repeticiones de un determinado valor de la variable o una modalidad del atributo. La frecuencia absoluta también representa el número de elementos de la muestra que tiene el mismo valor o modalidad. La suma total de todas las frecuencias absolutas es el tamaño de la muestra de elementos observados y se representa por \(N\). (Cordero, Córdoba & Fernández, 2002, p. 48)

\[fi = {ni}\]

Frecuencia Relativa:

La frecuencia relativa de una clase es igual a la parte o proporción de los elementos que pertenecen a cada clase Anderson, D., Sweeney, D., & Williams, T. (2008).. Se obtiene dividiendo la frecuencia absoluta de un determinado valor o categoria de la variable entre la suma de las frecuencias absolutas de todos los valores observados, es decir, entre el tamaño de la muestra. Por tanto, la frecuencia relativa es una porción entre el número de veces que se repite un dato y el tamaño de la población y/o muestra. (Cordero, Córdoba & Fernández, 2002, p. 48).

En un conjunto de datos, en el que hay N observaciones, la frecuencia relativa de cada clase se determina:

\[fr = fi/N\]

Frecuencia Porcentual:

La frecuencia porcentual de una clase es la frecuencia relativa multiplicada por 100.Anderson, D., Sweeney, D., & Williams, T. (2008).

Es otra forma de presentar las frecuencias relativas, las cuales muestran una porción de la unidad, mientras que la frecuencia porcentual muestra qué tanto porciento de la muestra presenta un determiando valor (o categoría de la variable). “las frecuencias relativas se suelen presentar en porcentajes \(%fr\) que se obtienen al multiplicar por 100 el valor correspondiente de \(fr\). En este caso, la suma total de todas las frecuencias relativas porcentuales será 100 Cordero, Córdoba y Fernández (2002)

\[fp = {fr \cdot 100}\]

Una gráfica de barras o un diagrama de barras, es una gráfica para representar los datos cualitativos de una distribución de frecuencia, de frecuencia relativa o de frecuencia porcentual. En uno de los ejes de la gráfica (por lo general en el horizontal), se especifican las etiquetas empleadas para las clases (categorías). Para el otro eje de la gráfica (el vertical) se usa una escala para frecuencia, frecuencia relativa o frecuencia porcentual.Anderson, D., Sweeney, D., & Williams, T. (2008).

Una presentación gráfica usual para datos cuantitativos es el histograma. Esta gráfica se hace con datos previamente resumidos mediante una distribución de frecuencia, de frecuencia relativa o de frecuencia porcentual. Un histograma se construye colocando la variable de interés en el eje horizontal y la frecuencia, la frecuencia relativa o la frecuencia porcentual en el eje vertical. La frecuencia, frecuencia relativa o frecuencia porcentual de cada clase se indica dibujando un rectángulo cuya base está determinada por los límites de clase sobre el eje horizontal y cuya altura es la frecuencia, la frecuencia relativa o la frecuencia porcentual correspondiente. Anderson, D., Sweeney, D., & Williams, T. (2008).

1. Cargar librerías fdth

  • La librería fdth permite generar tablas de frecuencias
library(fdth)

2. Crear conjunto de datos llamado personas

  • Sembrar una semila set.seed()
set.seed(2020) # Año 2020, pueden poner el valor numérico a su gusto
  • Crear 100 nombres a partir de 20 nombres
  • Crear aleatorio el género entre Femenino y Masculino
  • Crear la edad aletorio entre 15 y 60
  • Crear el deporte favorito de cada persona aleatorio entre 10
losnombres <- c("JUAN", 'FRANCISCO', 'OSCAR', 'LUIS', 'GUILLERMO',
                "PATRICIA", 'ALICIA', 'EDGAR', 'LEONARDO', 'GABRIELA', 'LETICIA', 'NORMA', 'ANDREA', 'HORACIO', 'SANDRA', 'RUBEN', 'JAVIER', 'MARICELA', 'ROSARIO', 'GUILLERMINA')

nombres <- sample(losnombres, 100, replace = TRUE)
# nombres

generos <- sample(c('Femenino', 'Masculino'), 100, replace = TRUE)
                 
edades <- sample(15:60, 100, replace = TRUE)

misdeportes <- c("FUTBOL", 'TENIS', 'AJEDREZ', 'BASQUETBOL', 'ATLETISMO', 
                 'NATACION', 'KARATE', 'BEISBOL', 'FUTBOL AMERICANO', 'RUGBY')
deportes <- sample(misdeportes, 100, replace = TRUE)

personal <- data.frame(nombres, generos, edades, deportes)
personal
##         nombres   generos edades         deportes
## 1         NORMA  Femenino     15           KARATE
## 2          JUAN Masculino     53         NATACION
## 3        JAVIER  Femenino     58           FUTBOL
## 4          LUIS  Femenino     58         NATACION
## 5      GABRIELA  Femenino     36 FUTBOL AMERICANO
## 6      PATRICIA Masculino     26            TENIS
## 7        JAVIER Masculino     26           KARATE
## 8        ANDREA Masculino     24           KARATE
## 9         EDGAR  Femenino     27            RUGBY
## 10     GABRIELA Masculino     41         NATACION
## 11     MARICELA  Femenino     59         NATACION
## 12        RUBEN Masculino     56            RUGBY
## 13    FRANCISCO Masculino     55       BASQUETBOL
## 14        RUBEN Masculino     58           KARATE
## 15        OSCAR Masculino     43            RUGBY
## 16    FRANCISCO Masculino     39            RUGBY
## 17        EDGAR  Femenino     33       BASQUETBOL
## 18         LUIS  Femenino     16          AJEDREZ
## 19     MARICELA  Femenino     58            RUGBY
## 20      HORACIO Masculino     18            TENIS
## 21      HORACIO  Femenino     25           KARATE
## 22        NORMA  Femenino     33       BASQUETBOL
## 23        RUBEN  Femenino     43           KARATE
## 24       SANDRA  Femenino     55            TENIS
## 25      HORACIO  Femenino     16           KARATE
## 26       ALICIA  Femenino     34          BEISBOL
## 27  GUILLERMINA  Femenino     21           KARATE
## 28     MARICELA Masculino     22            TENIS
## 29  GUILLERMINA Masculino     28          BEISBOL
## 30  GUILLERMINA  Femenino     58       BASQUETBOL
## 31        RUBEN Masculino     39 FUTBOL AMERICANO
## 32        NORMA  Femenino     50            RUGBY
## 33     MARICELA Masculino     37           FUTBOL
## 34     GABRIELA  Femenino     24          AJEDREZ
## 35     PATRICIA  Femenino     27         NATACION
## 36       SANDRA Masculino     41        ATLETISMO
## 37      LETICIA  Femenino     49         NATACION
## 38       ANDREA  Femenino     41          BEISBOL
## 39       ANDREA  Femenino     41          AJEDREZ
## 40       ANDREA Masculino     34          BEISBOL
## 41    FRANCISCO  Femenino     37        ATLETISMO
## 42        RUBEN  Femenino     21          AJEDREZ
## 43       ANDREA  Femenino     42        ATLETISMO
## 44         JUAN  Femenino     19         NATACION
## 45     PATRICIA Masculino     41        ATLETISMO
## 46        OSCAR Masculino     53          BEISBOL
## 47       ANDREA  Femenino     36         NATACION
## 48      LETICIA Masculino     35 FUTBOL AMERICANO
## 49    GUILLERMO  Femenino     39       BASQUETBOL
## 50      LETICIA  Femenino     59         NATACION
## 51     PATRICIA  Femenino     40          AJEDREZ
## 52    FRANCISCO Masculino     30          AJEDREZ
## 53        OSCAR Masculino     33         NATACION
## 54     MARICELA  Femenino     46           KARATE
## 55         JUAN  Femenino     40 FUTBOL AMERICANO
## 56       ALICIA Masculino     56        ATLETISMO
## 57        EDGAR Masculino     50            RUGBY
## 58       ANDREA Masculino     50           FUTBOL
## 59    FRANCISCO  Femenino     23            TENIS
## 60    GUILLERMO  Femenino     42            TENIS
## 61         LUIS Masculino     15        ATLETISMO
## 62      ROSARIO Masculino     59          BEISBOL
## 63        RUBEN  Femenino     56          AJEDREZ
## 64         LUIS  Femenino     48          BEISBOL
## 65  GUILLERMINA Masculino     59        ATLETISMO
## 66     MARICELA Masculino     20        ATLETISMO
## 67     GABRIELA  Femenino     55        ATLETISMO
## 68         JUAN  Femenino     38        ATLETISMO
## 69       SANDRA Masculino     17           FUTBOL
## 70     LEONARDO Masculino     40        ATLETISMO
## 71        RUBEN Masculino     52            RUGBY
## 72     PATRICIA Masculino     48         NATACION
## 73     GABRIELA Masculino     48          AJEDREZ
## 74         JUAN  Femenino     18         NATACION
## 75         JUAN Masculino     54           FUTBOL
## 76       JAVIER  Femenino     23          BEISBOL
## 77        EDGAR  Femenino     57           KARATE
## 78       SANDRA Masculino     24          AJEDREZ
## 79        NORMA  Femenino     57            RUGBY
## 80     MARICELA  Femenino     56       BASQUETBOL
## 81       ANDREA  Femenino     26       BASQUETBOL
## 82    GUILLERMO Masculino     55          AJEDREZ
## 83        RUBEN  Femenino     44       BASQUETBOL
## 84  GUILLERMINA Masculino     46           FUTBOL
## 85  GUILLERMINA  Femenino     45           FUTBOL
## 86  GUILLERMINA  Femenino     52           KARATE
## 87      HORACIO Masculino     41          BEISBOL
## 88       ANDREA  Femenino     25       BASQUETBOL
## 89       JAVIER  Femenino     46        ATLETISMO
## 90       ANDREA  Femenino     16          AJEDREZ
## 91       ALICIA Masculino     25 FUTBOL AMERICANO
## 92     LEONARDO  Femenino     15       BASQUETBOL
## 93        EDGAR Masculino     28          AJEDREZ
## 94        OSCAR  Femenino     21            RUGBY
## 95        OSCAR Masculino     33          AJEDREZ
## 96    FRANCISCO  Femenino     20        ATLETISMO
## 97       ANDREA Masculino     44          AJEDREZ
## 98        EDGAR Masculino     31          AJEDREZ
## 99         LUIS Masculino     59        ATLETISMO
## 100      ALICIA  Femenino     24          AJEDREZ

3. Crear tabla de frecuencias con table() de la variable nombres

  • La variable de interés es nombres
  • table() genera la frecuencia de cada elemento
  • transform()) tranforma … significa renglones columnas
  • Con data.frame se construye un data.frame
  • con names() se modifica los nombres de variables de un data.frame
    1. Determinar frecuencia absoluta
#table(personal$nombres)
#transform(table(personal$nombres))
tabla_frec.nombres <- data.frame(transform(table(personal$nombres)))
names(tabla_frec.nombres) <- c('nombres', 'freq') 
tabla_frec.nombres
##        nombres freq
## 1       ALICIA    4
## 2       ANDREA   11
## 3        EDGAR    6
## 4    FRANCISCO    6
## 5     GABRIELA    5
## 6  GUILLERMINA    7
## 7    GUILLERMO    3
## 8      HORACIO    4
## 9       JAVIER    4
## 10        JUAN    6
## 11    LEONARDO    2
## 12     LETICIA    3
## 13        LUIS    5
## 14    MARICELA    7
## 15       NORMA    4
## 16       OSCAR    5
## 17    PATRICIA    5
## 18     ROSARIO    1
## 19       RUBEN    8
## 20      SANDRA    4
  • Total de elementos \(N\)
N <- nrow(personal)
N
## [1] 100
    1. Determinar frecuencia relativa
freq.r <- tabla_frec.nombres$freq / N
freq.r
##  [1] 0.04 0.11 0.06 0.06 0.05 0.07 0.03 0.04 0.04 0.06 0.02 0.03 0.05 0.07 0.04
## [16] 0.05 0.05 0.01 0.08 0.04
    1. Determinar frecuencia porcentual
freq.p <- freq.r * 100
freq.p
##  [1]  4 11  6  6  5  7  3  4  4  6  2  3  5  7  4  5  5  1  8  4
  • Construyendo tabla de distribución
tabla_frec.nombres <- cbind(tabla_frec.nombres, freq.r, freq.p)
tabla_frec.nombres
##        nombres freq freq.r freq.p
## 1       ALICIA    4   0.04      4
## 2       ANDREA   11   0.11     11
## 3        EDGAR    6   0.06      6
## 4    FRANCISCO    6   0.06      6
## 5     GABRIELA    5   0.05      5
## 6  GUILLERMINA    7   0.07      7
## 7    GUILLERMO    3   0.03      3
## 8      HORACIO    4   0.04      4
## 9       JAVIER    4   0.04      4
## 10        JUAN    6   0.06      6
## 11    LEONARDO    2   0.02      2
## 12     LETICIA    3   0.03      3
## 13        LUIS    5   0.05      5
## 14    MARICELA    7   0.07      7
## 15       NORMA    4   0.04      4
## 16       OSCAR    5   0.05      5
## 17    PATRICIA    5   0.05      5
## 18     ROSARIO    1   0.01      1
## 19       RUBEN    8   0.08      8
## 20      SANDRA    4   0.04      4

4. Crear tabla de frecuencias con fdt_cat() de la variable nombres

  • fdt_cat() es una función que genera la tabla de distribución
  • La variable de interés sigue siendo nombres
  • Genera los mismos valores que ‘tabla_frec.nombres’ , sólo que se agregan los acumulados
  • La función data.frame() convierte la tabla de distribución generada por fdt_cat() en un data.frame (conjunto de datos).
  • La función names() cambia los nombres de la tabla_frec.nombres.2
  • Finalmente la tabla de distribución generada se construye ordenado de mayor a menor con repecto a la frecuencia
tabla_frec.nombres.2 <- data.frame(fdt_cat(personal$nombres))
names(tabla_frec.nombres.2) <- c('nombres', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.nombres.2
##        nombres freq freq.r freq.p freq.acum frec.por.acum
## 1       ANDREA   11   0.11     11        11            11
## 2        RUBEN    8   0.08      8        19            19
## 3  GUILLERMINA    7   0.07      7        26            26
## 4     MARICELA    7   0.07      7        33            33
## 5        EDGAR    6   0.06      6        39            39
## 6    FRANCISCO    6   0.06      6        45            45
## 7         JUAN    6   0.06      6        51            51
## 8     GABRIELA    5   0.05      5        56            56
## 9         LUIS    5   0.05      5        61            61
## 10       OSCAR    5   0.05      5        66            66
## 11    PATRICIA    5   0.05      5        71            71
## 12      ALICIA    4   0.04      4        75            75
## 13     HORACIO    4   0.04      4        79            79
## 14      JAVIER    4   0.04      4        83            83
## 15       NORMA    4   0.04      4        87            87
## 16      SANDRA    4   0.04      4        91            91
## 17   GUILLERMO    3   0.03      3        94            94
## 18     LETICIA    3   0.03      3        97            97
## 19    LEONARDO    2   0.02      2        99            99
## 20     ROSARIO    1   0.01      1       100           100

5. Visualizar tabla de frecuencias de nombres (Barra)

barplot(height = tabla_frec.nombres.2$freq, names.arg = tabla_frec.nombres.2$nombres)

6. Visualizar un histograma de la variable edades

hist(personal$edades, main = "Frecuencia de edades", xlab = "Edades", ylab = "Frecuencias")

7. Crear tabla de frecuencias con table() de la variable edades

  • La función table() genera frecuencias
tabla.frec.edades <- data.frame(transform(table(personal$edades)))
# tabla.frecuencias.edades

names(tabla.frec.edades) <- c("edades", "freq")
tabla.frec.edades
##    edades freq
## 1      15    3
## 2      16    3
## 3      17    1
## 4      18    2
## 5      19    1
## 6      20    2
## 7      21    3
## 8      22    1
## 9      23    2
## 10     24    4
## 11     25    3
## 12     26    3
## 13     27    2
## 14     28    2
## 15     30    1
## 16     31    1
## 17     33    4
## 18     34    2
## 19     35    1
## 20     36    2
## 21     37    2
## 22     38    1
## 23     39    3
## 24     40    3
## 25     41    6
## 26     42    2
## 27     43    2
## 28     44    2
## 29     45    1
## 30     46    3
## 31     48    3
## 32     49    1
## 33     50    3
## 34     52    2
## 35     53    2
## 36     54    1
## 37     55    4
## 38     56    4
## 39     57    2
## 40     58    5
## 41     59    5
  • Gráfica de frecuencias de tabla_frec.edades
barplot(height = tabla.frec.edades$freq, 
        names.arg = tabla.frec.edades$edades,
        main = "Frecuencias de Edades",
        xlab = "Edades", ylab = "Frecuencias")

8. Crear tabla de frecuencias con fdt() de la variable edades

    1. Determinar frecuencia absoluta
    1. Determinar frecuencia relativa
    1. Determinar frecuencia porcentual
    1. Determinar frecuencia acumulada
    1. Determinar frecuencia porcentual acumulada
tabla.frec.edades_2 <- fdt(personal$edades)
tabla.frec.edades_2 <- data.frame(tabla.frec.edades_2$table)

names(tabla.frec.edades_2) <- c('clases', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum') 
tabla.frec.edades_2
##            clases freq freq.r freq.p freq.acum frec.por.acum
## 1  [14.85,20.442)   12   0.12     12        12            12
## 2 [20.442,26.035)   16   0.16     16        28            28
## 3 [26.035,31.627)    6   0.06      6        34            34
## 4  [31.627,37.22)   11   0.11     11        45            45
## 5  [37.22,42.812)   15   0.15     15        60            60
## 6 [42.812,48.405)   11   0.11     11        71            71
## 7 [48.405,53.998)    8   0.08      8        79            79
## 8  [53.998,59.59)   21   0.21     21       100           100

9. Visualizar tabla de frecuencias de edades (Barra)

  • Gráfica de frecuencias de tabla_frec.edades
barplot(height = tabla.frec.edades_2$freq, 
        names.arg = tabla.frec.edades_2$clases,
        main = "Frecuencias de Clases",
        xlab = "Clases de edades", ylab = "Frecuencias")

10. Crear tabla de frecuencias con fdt_cat() de la variable genero

    1. Determinar frecuencia absoluta
    1. Determinar frecuencia relativa
    1. Determinar frecuencia porcentual
    1. Determinar frecuencia acumulada
    1. Determinar frecuencia porcentual acumulada
tabla_frec.genero <- data.frame(fdt_cat(personal$generos))
names(tabla_frec.genero) <- c('generos', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.genero
##     generos freq freq.r freq.p freq.acum frec.por.acum
## 1  Femenino   55   0.55     55        55            55
## 2 Masculino   45   0.45     45       100           100

11. Visualizar tabla de frecuencias de generos (Barra)

barplot(height = tabla_frec.genero$freq, 
        names.arg = tabla_frec.genero$generos,
        main = "Frecuencias de Géneros",
        xlab = "Géneros", ylab = "Frecuencias")

* Un pastel

pie(x = tabla_frec.genero$freq, 
    labels = tabla_frec.genero$generos,
    col = c(155,100))

12. Crear tabla de frecuencias con fdt_cat() de a variable deportes

    1. Determinar frecuencia absoluta
    1. Determinar frecuencia relativa
    1. Determinar frecuencia porcentual
    1. Determinar frecuencia acumulada
    1. Determinar frecuencia porcentual acumulada
tabla_frec.deporte <- data.frame(fdt_cat(personal$deportes))
names(tabla_frec.deporte) <- c('deportes', 'freq', 'freq.r', 'freq.p', 'freq.acum', 'frec.por.acum')
tabla_frec.deporte
##            deportes freq freq.r freq.p freq.acum frec.por.acum
## 1           AJEDREZ   16   0.16     16        16            16
## 2         ATLETISMO   14   0.14     14        30            30
## 3          NATACION   12   0.12     12        42            42
## 4            KARATE   11   0.11     11        53            53
## 5        BASQUETBOL   10   0.10     10        63            63
## 6             RUGBY   10   0.10     10        73            73
## 7           BEISBOL    9   0.09      9        82            82
## 8            FUTBOL    7   0.07      7        89            89
## 9             TENIS    6   0.06      6        95            95
## 10 FUTBOL AMERICANO    5   0.05      5       100           100

13. Visualizar tabla de frecuencias de deportes (Barra)

barplot(height = tabla_frec.deporte$freq, 
        names.arg = tabla_frec.deporte$deportes,
        main = "Frecuencias de deportes",
        xlab = "Deportes", ylab = "Frecuencias")

14. Describir el caso. Por medio de 80 a 100 palabras describir el CASO 2

Va una descripción libre, generar ideas de los puntos

  • De acuerdo a la representación de la tabla de distribución de los nombres del conjunto de datos, se observa que “ANDREA” es el nombre con mayor frecuencia que representa el 11% del total de los casos.
  • El caso refleja que existe mas personas de entre 55 y 60 años de acuerdo al histograma.
  • Generar ideas