El presente archivo de datos llamado bank.csv fue extraído de https://archive.ics.uci.edu/ml/datasets/Bank+Marketing#

Distribución de Frecuencia

Tabla de frecuencias de la variable cualitativa Trabajo - Job

#Tabla de frecuencia variables cuanlitativas
  #Frecuencia
fi=-as.numeric(sort(-table(datos$job))) #Frecuencia absoluta
fac=cumsum(fi)                           #Frecuencia acumulada
fri=as.numeric(fi/sum(fi))*100           #Frecuencia relativa
frac=cumsum(fri)                         #Frecuencia relativa acumulada
job=c("admin.","unknown","unemployed","management","housemaid","entrepreneur","student",
                                       "blue-collar","self-employed","retired","technician","services")
  #Tabla
frec_job=data.frame(job,fi,fac,fri=round(fri,2),frac=round(frac,2))
  #Visualización
knitr::kable(frec_job)
job fi fac fri frac
admin. 969 969 21.43 21.43
unknown 946 1915 20.92 42.36
unemployed 768 2683 16.99 59.35
management 478 3161 10.57 69.92
housemaid 417 3578 9.22 79.14
entrepreneur 230 3808 5.09 84.23
student 183 3991 4.05 88.28
blue-collar 168 4159 3.72 91.99
self-employed 128 4287 2.83 94.82
retired 112 4399 2.48 97.30
technician 84 4483 1.86 99.16
services 38 4521 0.84 100.00

Tabla de frecuencias de la variable cuantitativa Edad - Age

  #Frecuencia
fi=as.numeric(table(datos$age))  #Frecuencia absoluta
fac=cumsum(fi)                    #Frecuencia acumulada
fri=as.numeric(fi/sum(fi))*100    #Frecuencia relativa
frac=cumsum(fri)                  #Frecuencia relativa acumulada
  #Tabla
edad=sort(unique(datos$age))
frec_edad=data.frame(edad,fi,fac,fri=round(fri,2),frac=round(frac,2))
  #Visualización
knitr::kable(head(frec_edad,5))
edad fi fac fri frac
19 4 4 0.09 0.09
20 3 7 0.07 0.15
21 7 14 0.15 0.31
22 9 23 0.20 0.51
23 20 43 0.44 0.95
knitr::kable(tail(frec_edad,5))
edad fi fac fri frac
63 81 1 4514 0.02 99.85
64 83 4 4518 0.09 99.93
65 84 1 4519 0.02 99.96
66 86 1 4520 0.02 99.98
67 87 1 4521 0.02 100.00

Tabla de frecuencias de la variable cuantitativa Edad - Age

#Tabla de frecuencia variables cuantitativas
  #Frecuencia
edad=sort(unique(datos$age))       # Ordenar los datos
n = length(edad)                    # Número de elementos de edad
k = round(1 + 3.3 * log(n))         # Aplicamos regla de Sturges
h = round((max(edad)-min(edad))/k)  # Cálculo de intervalo

 #Crear intervalos
intervalos=hist(datos$age, plot=FALSE, breaks = k)$breaks
intervalos=paste("(",intervalos[1:(length(intervalos)-1)],"-",intervalos[2:(length(intervalos))],"]",sep="")
intervalos[1]="[0-5]"

 #Cálculo de frecuencia
fi = hist(datos$age
          , plot=FALSE, breaks = k)$counts      #Frecuencia con intervalos
fac=cumsum(fi)                                            #Frecuencia acumulada
fri=as.numeric(fi/sum(fi))*100                            #Frecuencia relativa
frac=cumsum(fri)                                          #Frecuencia relativa acumulada  

frec_edad=data.frame(edad=intervalos,fi,fac,fri=round(fri,2),frac=round(frac,2))
knitr::kable(frec_edad)
edad fi fac fri frac
[0-5] 7 7 0.15 0.15
(20-25] 104 111 2.30 2.46
(25-30] 521 632 11.52 13.98
(30-35] 1020 1652 22.56 36.54
(35-40] 780 2432 17.25 53.79
(40-45] 608 3040 13.45 67.24
(45-50] 554 3594 12.25 79.50
(50-55] 432 4026 9.56 89.05
(55-60] 368 4394 8.14 97.19
(60-65] 44 4438 0.97 98.16
(65-70] 29 4467 0.64 98.81
(70-75] 25 4492 0.55 99.36
(75-80] 21 4513 0.46 99.82
(80-85] 6 4519 0.13 99.96
(85-90] 2 4521 0.04 100.00
¿Qué ocurre al construir directamente una tabla de frecuencia?¿Qué conclusiones se pueden extraer?

Particularmente para el caso de la variable edad, la tabla de frecuencia generada sirve para extraer la cantidad de veces que un dato se repite en todo el conjunto de datos, entonces por posible organizar que datos aparecen de manera más repetida que otros. Y a partir de este dato se pueden calcular otros como medidas de tendencia central, de posición, etc.

Gráfico de Barras Variable Cualitativa Job - Trabajo

p=ggplot(data=frec_job, aes(x=reorder(job, -fri),y=fi)) +
  geom_bar(stat="identity",fill="#d8b186",alpha=0.8) + theme_minimal() + 
  labs(title="Frecuencia absoluta - Trabajo", x="Trabajo", y = "Frecuencia absoluta")
ggplotly(p)

Gráfico Tipo Pie Variable Cualitativa Job - Trabajo

p=ggplot((frec_job), aes(x="", y=fri, fill=reorder(job, -fri))) +
  geom_bar(stat="identity", width=1) + coord_polar("y", start=0) + theme_minimal() +
  labs(title="Frecuencia relativa - Trabajo", x="Trabajo", y = "Frecuencia relativa (%)")
p=p + scale_fill_brewer(palette="PuOr",aesthetics = "colour",name = "Trabajo de Cliente")
plot(p)

Gráfico Tipo Pareto Cualitativa Job - Trabajo

p=ggplot(data=frec_job, aes(x=reorder(job, -fri),y=fi)) +
  geom_bar(stat="identity",fill="#d8b186",alpha=0.8) + theme_minimal() + 
  labs(title="Frecuencia absoluta y absoluta acumulada - Trabajo", x="Trabajo", y = "Frecuencia absoluta")
p = p + geom_point(aes(y=fac))
ggplotly(p)

Diagrama De Punto Variable Cuantitativa Edad - Age

dotPlot(datos$age,xlab = "EDAD (años)",)

Histograma Variable Cuantitativa Edad - Age

grafico=ggplot(datos,aes(age)) # Gráfico y datos base
#Histograma (25 niveles) (colores- http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf)
grafico = grafico + geom_histogram(bins=30,fill="#d8b186",color="#d8b186",alpha=0.8)
grafico = grafico + theme_bw() # Visualización estándar en blanco y negro
grafico = grafico + ylab("Frecuencia absoluta (edad)") + xlab("Edad (años)")
ggplotly(grafico)
¿Qué diferencia aprecia entre ambos tipos de representaciones?

Como se puede apreciar los gráficos de puntos son útiles para mostrar datos cuantitativos de una forma organizada, estos usan varios puntos para trazar datos a lo largo de un eje ordinal. En cambio el histograma generado, muestra la forma de los datos. El eje horizontal muestra sus valores de datos, con cada barra correspondiendo a un rango de valores. El eje vertical muestra cuántos puntos de datos tienen valores en el rango de cada barra.