## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout

El conjunto de datos utilizado es Bank Marketing

Los datos fueron extraidos de https://archive.ics.uci.edu/ml/datasets/Bank+Marketing#

#Lectura de datos
datos = read.csv("bank.csv", sep=";", header=T, check.names = F)

Tabla de frecuencias de la variable cualitativa “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","Estudent", "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
Estudent 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

Realizamos la tabla de datos de la variable cuantitativa “Day”

#Tabla de frecuencia variables cuantitativas
  #Frecuencia
edad=sort(unique(datos$day))       # 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$day, 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$day, 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] 141 141 3.12 3.12
(2-4] 244 385 5.40 8.52
(4-6] 368 753 8.14 16.66
(6-8] 370 1123 8.18 24.84
(8-10] 213 1336 4.71 29.55
(10-12] 303 1639 6.70 36.25
(12-14] 361 2000 7.98 44.24
(14-16] 338 2338 7.48 51.71
(16-18] 417 2755 9.22 60.94
(18-20] 458 3213 10.13 71.07
(20-22] 284 3497 6.28 77.35
(22-24] 138 3635 3.05 80.40
(24-26] 190 3825 4.20 84.61
(26-28] 294 4119 6.50 91.11
(28-30] 343 4462 7.59 98.69
(30-32] 59 4521 1.31 100.00

Pregunta 1: ¿Qué ocurre al construir directamente una tabla de frecuencia?¿Qué conclusiones se pueden extraer?}

Al realizar tablas de frecuencia es posible ver directamente cuantas veces se epite una determinada variable y así agrupar datos, lo cual puede ser útil si se están realizando alguna hipotesis enun estuidio que opcupe estadística descreptiva o una conclusión de un estudio de estadística inferencial

Grafíco de puntos para la variable “Day”

library("BHH2")
dotPlot(datos$day,xlab = "Días",)

Gráfico de Pie par la variable cualitativa “Job”

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="Set3",name = "Trabajo realizado")
plot(p)

grafico=ggplot(datos,aes(day)) # 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="maroon",color="maroon",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)")
grafico = grafico + ggtitle("Histograma")
ggplotly(grafico)

Pregunta 2: ¿Qué diferencia aprecia entre ambos tipos de representaciones?

Al comparar lo realizado con las tablas y los gráficos podemos concluir que ambas representaciones se complementan, ya que se puede observar ver que los gráficos son la representación visual de los datos de las tablas de frecuencia,lo que permite ver de una forma simple con lo que se está trabajando y así ayudar a la obtención de datos. Sin embargo, los gráficos no son muy precisos al trabajar con cantidades enormes de datos, con la información de las tablas de datos es más directa la obtención de información.