DISTRIBUCIONES DE FRECUENCIAS

CONCEPTOS,TRABLAS Y GRAFICAS

Author
Affiliation
Giselle Tatiana Orozco Pineda
Tiana Valentina Vejarano Lopez
Published

November 1, 2023

1 PAQUETES A INSTALAR

Install.packages(“tidyverse”)

install.packages(“kableExtra”)

install.packages(“agricolae”)

install.packages(“RColorBrewer”)

install.packkages(“ggplos2”)

Nota
Es necesario instalar las paqueterias mencionadas anteriormente.

2 ACTIVAR PAQUETES

Code
library(tidyverse)
library(kableExtra)
library(agricolae)
library(RColorBrewer)
library(ggplot2)
Nota
Se requiere activar los paquetes mencionados anteriormente

3 INTRODUCCION

La distribución de frecuencias es uno de los conceptos fundamentales en estadística y desempeña un papel crucial en la organización, resumen y análisis de datos. Esta herramienta estadística es esencial para comprender cómo se distribuyen los valores o categorías dentro de un conjunto de observaciones, lo que a su vez nos permite extraer información valiosa y patrones significativos de los datos.

En esta introducción, exploraremos en detalle qué es una distribución de frecuencias, cómo se construye y cuál es su utilidad en el campo de la estadística. Desde su concepto básico hasta su aplicación práctica en la toma de decisiones informadas, la distribución de frecuencias es una herramienta esencial que permite a los estadísticos y analistas explorar y comunicar de manera efectiva las características subyacentes de los datos, ya sean valores numéricos o categorías.

4 VARIABLES ESTADISTICAS

Las variables estadísticas son atributos, características o medidas que se utilizan para representar y describir aspectos de un conjunto de datos. Estas variables pueden tomar diversas formas y tipos, y desempeñan un papel fundamental en la estadística y el análisis de datos, permitiendo comprender, resumir y tomar decisiones basadas en la información contenida en esos datos.

4.1 TIPOS DE VARIABLES

  1. Variables Cualitativas (Categóricas): Representan categorías o cualidades. Se dividen en:

    • Nominales: No tienen un orden intrínseco. Ejemplos: género, color, marca de automóvil.

    • Ordinales: Tienen un orden específico entre las categorías. Ejemplos: nivel de educación, clasificación socioeconómica.

  2. Variables Cuantitativas (Numéricas): Representan valores numéricos. Se dividen en:

    • Continuas: Pueden tomar un número infinito de valores en un rango. Ejemplos: edad, temperatura, ingresos.

    • Discretas: Tienen valores contables y generalmente son enteros. Ejemplos: número de hijos, cantidad de productos vendidos.

  1. Nivel Nominal: Las variables nominales representan categorías sin ningún orden intrínseco. Se utilizan principalmente para clasificar y contar. Ejemplo: género (masculino, femenino, otro).

  2. Nivel Ordinal: Las variables ordinales tienen categorías con un orden específico, pero la diferencia entre los valores no es constante ni significativa. Se utilizan para clasificar y ordenar. Ejemplo: nivel de satisfacción (baja, media, alta).

  3. Nivel de Intervalo: Las variables de intervalo tienen categorías con un orden específico, y la diferencia entre los valores es constante y significativa. El cero en estas variables no implica la ausencia de la característica. Ejemplo: temperatura en grados Celsius.

  4. Nivel de Razón: Las variables de razón son similares a las de intervalo, pero tienen un punto de partida absoluto (cero) que implica la ausencia de la característica. Las operaciones matemáticas como la multiplicación y la división son significativas en este nivel. Ejemplo: ingresos, edad.

  1. Variables Dependientes: Son aquellas que se estudian o analizan para comprender cómo cambian en respuesta a otras variables. A menudo se les llama “respuesta” o “variable de resultado”.

  2. Variables Independientes: Son aquellas que se utilizan para explicar o predecir cambios en las variables dependientes. También se les llama “variables explicativas” o “predictores”.

  3. Variables Confundidoras (Confounding Variables): Son aquellas que pueden influir en la relación entre las variables dependientes e independientes y deben controlarse en el análisis.

  4. Variables Control: Son aquellas que se mantienen constantes o se controlan para aislar el efecto de las variables independientes en las variables dependientes.

5 DISTRIBUCION DE FRECUENCIAS

Una distribución de frecuencias es una representación tabular o gráfica que muestra la frecuencia con la que aparecen diferentes valores en un conjunto de datos, lo que ayuda a resumir y visualizar la distribución de los datos.

5.1 TIPOS DE DISTRIBUCIONES DE FRECUENCIAS

RELATIVA

Se refiere a la proporción o el porcentaje de veces que ocurre un valor específico en relación con el total de observaciones. Se calcula dividiendo la frecuencia absoluta del valor por el tamaño total de la muestra.

\(fi= \frac{ni}{N}\)

ABSOLUTA Es el número de veces que ocurre un valor específico en un conjunto de datos.

\(Fi=\sum_{i=1}^{n} fi\)

RELATIVA ACOMULADA Es similar a la frecuencia acumulada, pero se expresa como una proporción acumulativa en lugar de un número acumulativo. Se calcula dividiendo la frecuencia acumulada por el tamaño total de la muestra.

\(fi= \frac{Ni}{N}\)

ABSOLUTA ACOMULADA

Es el número acumulado de observaciones iguales o menores a un valor específico en un conjunto de datos. Se calcula sumando las frecuencias absolutas de los valores en orden ascendente o descendente.

\(Fi=\sum_{i=1}^{n}fi\)

6 LEER BASE

Code
library(readr)
ESTUD_BASE <- read_delim("~/ESTUD_BASE.csv", 
    delim = ";", escape_double = FALSE, col_types = cols(`CALIFICACION FINAL` = col_character(), 
        ALTURA = col_character(), PESO = col_character()), 
    trim_ws = TRUE)
View(ESTUD_BASE)

6.1 MOSTRAR LAS PRIMERAS FILAS

Desplegar
Code
head(ESTUD_BASE)
# A tibble: 6 × 6
  GENERO    `NOMBRES ESTUDIANTES` `NIVEL DE INTERES` `CALIFICACION FINAL` ALTURA
  <chr>     <chr>                 <chr>              <chr>                <chr> 
1 Masculino Antonio               Alto               50                   1,65  
2 Masculino Marcos                Medio              35                   1,65  
3 Femenino  Leidy                 Alto               50                   1,55  
4 Masculino Camilo                Bajo               20                   1,72  
5 Femenino  Hillary               Alto               50                   1,55  
6 Femenino  Tatiana               Alto               48                   1,55  
# ℹ 1 more variable: PESO <chr>

6.2 LONGITUD Y NOMBRES DE LA BASE DE DATOS

Desplegar
Code
length(ESTUD_BASE)
[1] 6
Code
names(ESTUD_BASE)
[1] "GENERO"              "NOMBRES ESTUDIANTES" "NIVEL DE INTERES"   
[4] "CALIFICACION FINAL"  "ALTURA"              "PESO"               

6.3 ESTRUCTURA BASE DE DATOS

Desplegar
Code
str(ESTUD_BASE)
spc_tbl_ [19 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
 $ GENERO             : chr [1:19] "Masculino" "Masculino" "Femenino" "Masculino" ...
 $ NOMBRES ESTUDIANTES: chr [1:19] "Antonio" "Marcos" "Leidy" "Camilo" ...
 $ NIVEL DE INTERES   : chr [1:19] "Alto" "Medio" "Alto" "Bajo" ...
 $ CALIFICACION FINAL : chr [1:19] "50" "35" "50" "20" ...
 $ ALTURA             : chr [1:19] "1,65" "1,65" "1,55" "1,72" ...
 $ PESO               : chr [1:19] "68" "70" "51" "68" ...
 - attr(*, "spec")=
  .. cols(
  ..   GENERO = col_character(),
  ..   `NOMBRES ESTUDIANTES` = col_character(),
  ..   `NIVEL DE INTERES` = col_character(),
  ..   `CALIFICACION FINAL` = col_character(),
  ..   ALTURA = col_character(),
  ..   PESO = col_character()
  .. )
 - attr(*, "problems")=<externalptr> 

7 VARIABLES CUALITATIVAS GENERO Y NIVEL DE INTERES

Desplegar
Code
as.data.frame(table(ESTUD_BASE$GENERO))
       Var1 Freq
1  Femenino   10
2 Masculino    9

7.1 TABLA DE FRECUENCIA

Desplegar
Code
FrecAbs1 <- table(ESTUD_BASE$GENERO) 
FrecAbs1

 Femenino Masculino 
       10         9 
Code
FrecRel1 <- round(prop.table(FrecAbs1), 4)
FrecRel1

 Femenino Masculino 
   0.5263    0.4737 
Code
FrecRelP1 <- FrecRel1*100
FrecRelP1

 Femenino Masculino 
    52.63     47.37 

7.2 CONCATENAR VARIABLE GENERO

Desplegar
Code
tabla_genero <- cbind(FrecAbs1, FrecRel1, FrecRelP1)
tabla_genero
          FrecAbs1 FrecRel1 FrecRelP1
Femenino        10   0.5263     52.63
Masculino        9   0.4737     47.37

7.3 CAMBIAR NOMBRE DE COLUMNAS DE LA TABLA_GENERO

Desplegar
Code
colnames(tabla_genero) <- c("fi", "hi", "hi%")
tabla_genero
          fi     hi   hi%
Femenino  10 0.5263 52.63
Masculino  9 0.4737 47.37
Desplegar
Code
as.data.frame(table(ESTUD_BASE$GENERO))
       Var1 Freq
1  Femenino   10
2 Masculino    9

7.4 TABLA DE FRECUENCIA

Desplegar
Code
FrecAbs2 <- table(ESTUD_BASE$`NIVEL DE INTERES`) 
FrecAbs2

 Alto  Bajo Medio 
    8     4     7 
Code
FrecRel2 <- round(prop.table(FrecAbs2), 4)
FrecRel2

  Alto   Bajo  Medio 
0.4211 0.2105 0.3684 
Code
FrecRelP2 <- FrecRel2*100
FrecRelP2

 Alto  Bajo Medio 
42.11 21.05 36.84 

7.5 CONCATENAR VARIABLE NIVEL DE INTERES

Desplegar
Code
tabla_nivel<- cbind(FrecAbs2, FrecRel2, FrecRelP2)
tabla_nivel
      FrecAbs2 FrecRel2 FrecRelP2
Alto         8   0.4211     42.11
Bajo         4   0.2105     21.05
Medio        7   0.3684     36.84

7.6 CAMBIAR NOMBRE DE COLUMNAS DE LA TABLA_NIVEL

Desplegar
Code
colnames(tabla_nivel) <- c("fi", "hi", "hi%")
tabla_nivel
      fi     hi   hi%
Alto   8 0.4211 42.11
Bajo   4 0.2105 21.05
Medio  7 0.3684 36.84

8 VARIABLE CUALITATIVA NOMINAL GENERO

Code
kable(tabla_genero, format = "markdown", digits = 1)
fi hi hi%
Femenino 10 0.5 52.6
Masculino 9 0.5 47.4
Code
Tabla_gener<- table(ESTUD_BASE$GENERO)
barp1 <- barplot(Tabla_gener, main = "DIAGRAMA DE BARRAS VARIABLE GENERO FRECUENCIA ABSOLUTA", xlab = "GENERO",ylab = "FRECUENCIA", ylim = c(0,14),
        col = c("yellow", "orange"))
        text(barp1, Tabla_gener + 0.5, labels =Tabla_gener)

Code
color <- brewer.pal(length(ESTUD_BASE$GENERO), "Set2") 
pie1 <- pie(FrecAbs1, labels = FrecAbs1, col = c("yellow", "orange"), main = "DIAGRAMA CIRCULAR VARIABLE CUALITATIVA GENERO") 

 legend('topleft', legend=rownames(FrecAbs1), bty='n',
       fill=c("yellow", "orange"))

9 de 19 personas son masculinos que correponden al 47.4%

9 VARIABLE CUALITATIVA ORDINAL NIVEL DE INTERES

Code
kable(tabla_nivel, format = "markdown", digits = 10)
fi hi hi%
Alto 8 0.4211 42.11
Bajo 4 0.2105 21.05
Medio 7 0.3684 36.84
Code
tabla_nivel<- table(ESTUD_BASE$`NIVEL DE INTERES`)
barp1 <- barplot(tabla_nivel, main = "DIAGRAMA DE BARRAS VARIABLE NIVEL DE INTERES FRECUENCIA ABSOLUTA", xlab = "NIVEL DE INTERES",ylab = "FRECUENCIA", ylim = c(0,10),
        col = c("pink", "skyblue","purple"))
        text(barp1, tabla_nivel + 0.5, labels =tabla_nivel)

Code
color <- brewer.pal(length(ESTUD_BASE$`NIVEL DE INTERES`), "Set2") 
pie1 <- pie(FrecAbs2, labels = FrecAbs2, col = c("pink", "skyblue","purple"), main = "DIAGRAMA CIRCULAR VARIABLE CUALITATIVA NIVEL DE INTERES") 

 legend('topleft', legend=rownames(FrecAbs2), bty='n',
       fill=c("pink", "skyblue","purple"))

El nivel de interes del 36.84% de los estudiantes es medio, el 21.05% de los estudiantes tienen un nivel de interes bajo y el 42.11% tiene un nivel de interes alto.

10 CRUCE DE VARIABLES

Code
tabla_cruce <- table(ESTUD_BASE$GENERO,ESTUD_BASE$`NIVEL DE INTERES`)

tabla <- round(prop.table(tabla_cruce), 1)

tabla_cruce %>%

  kable(align = "c") %>% 

  kable_styling(bootstrap_options = "basic")
Alto Bajo Medio
Femenino 4 3 3
Masculino 4 1 4
Code
barp6 <- barplot(tabla_cruce, main = "DIAGRAM DE BARRAS APILADAS ", xlab = "NIVEL DE INTERES", ylab = "GENERO", ylim = c(0,20), legend.text = rownames(tabla_cruce), args.legend = list(x = "topright"), col = c("purple","green"), beside = FALSE)

Code
barp6 <- barplot(tabla_cruce,main = "Diagrama de barras Compuesta", xlab ="NIVEL DE INTERES", ylab = "GENERO", ylim = c(0,15), legend = rownames(tabla_cruce), col = c("purple","green"), beside = TRUE)
text(barp6, tabla_cruce + 0, labels = tabla_cruce, pos = 3)

De 9 hombres 4 tienen un nivel de interes alto, 4 medio y 1 bajo. por lo tanto, de 10 mujeres 4 tienen un nivel de interes alto, 3 bajo y 3 medio

11 VARIBLES CUANTITATIVA DISCRETA CALIFICACION FINAL

Code
FrecAbs3 = table(ESTUD_BASE$`CALIFICACION FINAL`)
FrecAbsA3 = cumsum(FrecAbs3)
FrecRel3 = round(prop.table(FrecAbs3), 3)
FrecReP3 = FrecRel3*100
FrecRelAP3 = cumsum(FrecReP3)
Tabla_califica = cbind(FrecAbs3,FrecAbsA3,FrecRel3,FrecReP3,FrecRelAP3)
colnames(Tabla_califica) = c("ni","Ni","hi","hi%","Hi%")
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")
cbind.data.frame(Tabla_califica) %>%
  kable(align = "c") %>% 
  kable_styling(bootstrap_options = Form.Basic)
ni Ni hi hi% Hi%
20 2 2 0.105 10.5 10.5
22 2 4 0.105 10.5 21.0
35 4 8 0.211 21.1 42.1
36 3 11 0.158 15.8 57.9
45 2 13 0.105 10.5 68.4
48 3 16 0.158 15.8 84.2
50 3 19 0.158 15.8 100.0
Code
j <- c(0,2,2,4,3,2,3,3)
k <- c(10,20,22,35,36,45,48,50)
plot(x = k, y = j, xlab = "CALIFICACION FINAL", ylab = "Frecuencia", pch = 15, col = "red")
segments(x0 =k, y0 = 0, x1 =k, y1 =j, lwd = 2, col = "red")

Code
fx <- c(20, 22, 35, 36, 45, 48, 50)/50
Fx <- cumsum(fx)
x <- seq(20, 50, length.out = length(Fx))
plot(x, Fx, type = "s", xlab = "CALIFICACION FINAL", ylab = "Porcentaje acumulado", col = "red", lwd = 2)

De 19 estudientes solo tres obtuvieron como calificacion final 50.

12 VARIABLES CUANTITATIVA CONTINUA ALTURA

Code
FrecAbs4 = table(ESTUD_BASE$PESO)
FrecAbsA4 = cumsum(FrecAbs4)
FrecRel4 = round(prop.table(FrecAbs4), 3)
FrecReP4 = FrecRel4*100
FrecRelAP4 = cumsum(FrecReP4)
tabla1_peso = cbind(FrecAbs4,FrecAbsA4,FrecRel4,FrecReP4,FrecRelAP4)
colnames(tabla1_peso) = c("ni","Ni","hi","hi%","Hi%")
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")
cbind.data.frame(tabla1_peso) %>%
  kable(align = "c") %>% 
  kable_styling(bootstrap_options = Form.Basic)
ni Ni hi hi% Hi%
51 7 7 0.368 36.8 36.8
68 7 14 0.368 36.8 73.6
70 5 19 0.263 26.3 99.9
Code
par(mfrow=c(2,2))
h1 <- graph.freq(tabla1_peso, col="purple", frequency =1, main="frecuencia absoluta\nh1")
h2 <- graph.freq(tabla1_peso, col="pink", frequency =2 , main="poligono de
frecuencia\nh2")
polygon.freq(h2, col="green", lwd=2, frequency =2)
h3 <- graph.freq(tabla1_peso, col="orange", frequency =3 ,main="densidad\nh3")
h4 <- graph.freq(tabla1_peso, col="blue", frequency =3 , main="densidad
normal\nh4", density=4)
normal.freq(h4, col="brown", lty=4,lwd=2, frequency=3)

Code
h9 <- ogive.freq(h1,axes=FALSE,type="b", main="ojiva de frecuencias",
col="red")
axis(2,round(h9[,2],1),las=2)
axis(1,round(h9[,1],1),las=2)

Code
hh <- hist(tabla1_peso,nclass=6, plot=FALSE)

h11<-graph.freq(hh, frequency=2, col=colors()[367]
,main="Histograma de frecuencias relativas" ,axes=F)
axis(1,h11$breaks,las=2)
axis(2,round(h11$relative,2),las=2)

En total son 19 estudiantes de ellos 7 pesan 51 y el 73.6% pesa 68.