##
## 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
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 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 |
#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 |
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
library("BHH2")
dotPlot(datos$day,xlab = "Días",)
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)
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.