Se utiliza el conjunto de datos “AdultUCI” del paquete “arules” para mostrar las tablas de frecuencia y gráficos. ## Distribución de frecuencia ### Variable cualitativa Se utiliza el atributo workclass como variable cualitativa.
#Frecuencia
fi=-as.numeric(sort(-table(AdultUCI$workclass))) #Frecuencia absoluta
fac=cumsum(fi) #Frecuencia acumulada
fri=as.numeric(fi/sum(fi))*100 #Frecuencia relativa
frac=cumsum(fri) #Frecuencia relativa acumulada
work=c("Private", "Self-emp-not-inc", "Self-emp-inc", "Federal-gov", "Local-gov", "State-gov", "Without-pay", "Never-worked")
#Tabla
frec_work=data.frame(work,fi,fac,fri=round(fri,2),frac=round(frac,2))
#Visualización
knitr::kable(frec_work)
| work | fi | fac | fri | frac |
|---|---|---|---|---|
| Private | 33906 | 33906 | 73.64 | 73.64 |
| Self-emp-not-inc | 3862 | 37768 | 8.39 | 82.03 |
| Self-emp-inc | 3136 | 40904 | 6.81 | 88.84 |
| Federal-gov | 1981 | 42885 | 4.30 | 93.14 |
| Local-gov | 1695 | 44580 | 3.68 | 96.82 |
| State-gov | 1432 | 46012 | 3.11 | 99.93 |
| Without-pay | 21 | 46033 | 0.05 | 99.98 |
| Never-worked | 10 | 46043 | 0.02 | 100.00 |
Se utiliza el atributo age como variable cuantitativa. Se muestra una tabla únicamente con 10 edades debido a la extensión.
#Tabla de frecuencia variables cuantitativas
#Frecuencia
fi=as.numeric(table(AdultUCI$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(AdultUCI$age))
frec_edad=data.frame(edad,fi,fac,fri=round(fri,2),frac=round(frac,2))
#Visualización
knitr::kable(head(frec_edad,10))
| edad | fi | fac | fri | frac |
|---|---|---|---|---|
| 17 | 595 | 595 | 1.22 | 1.22 |
| 18 | 862 | 1457 | 1.76 | 2.98 |
| 19 | 1053 | 2510 | 2.16 | 5.14 |
| 20 | 1113 | 3623 | 2.28 | 7.42 |
| 21 | 1096 | 4719 | 2.24 | 9.66 |
| 22 | 1178 | 5897 | 2.41 | 12.07 |
| 23 | 1329 | 7226 | 2.72 | 14.79 |
| 24 | 1206 | 8432 | 2.47 | 17.26 |
| 25 | 1195 | 9627 | 2.45 | 19.71 |
| 26 | 1153 | 10780 | 2.36 | 22.07 |
Se agrupan las edades por intervalos.
#Tabla de frecuencia variables cuantitativas
#Frecuencia
edad=sort(unique(AdultUCI$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(AdultUCI$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(AdultUCI$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] | 3623 | 3623 | 7.42 | 7.42 |
| (20-25] | 6004 | 9627 | 12.29 | 19.71 |
| (25-30] | 6166 | 15793 | 12.62 | 32.33 |
| (30-35] | 6553 | 22346 | 13.42 | 45.75 |
| (35-40] | 6285 | 28631 | 12.87 | 58.62 |
| (40-45] | 5667 | 34298 | 11.60 | 70.22 |
| (45-50] | 4736 | 39034 | 9.70 | 79.92 |
| (50-55] | 3560 | 42594 | 7.29 | 87.21 |
| (55-60] | 2642 | 45236 | 5.41 | 92.62 |
| (60-65] | 1803 | 47039 | 3.69 | 96.31 |
| (65-70] | 935 | 47974 | 1.91 | 98.22 |
| (70-75] | 495 | 48469 | 1.01 | 99.24 |
| (75-80] | 225 | 48694 | 0.46 | 99.70 |
| (80-85] | 81 | 48775 | 0.17 | 99.86 |
| (85-90] | 67 | 48842 | 0.14 | 100.00 |
La construcción de tablas de frecuencia permite organizar un conjunto de datos mediante columnas, de tal forma que se agrupen al compartir el valor de una variable determinada. De una tabla de frecuencias se puede obtener la cantidad de repetición de un dato.
p=ggplot(data=frec_work, aes(x=reorder(work, -fri),y=fi)) +
geom_bar(stat="identity",fill="maroon",alpha=0.8) + theme_minimal() +
labs(title="Frecuencia absoluta - Trabajo", x="Trabajo", y = "Frecuencia absoluta")
ggplotly(p)
p=ggplot(frec_work, aes(x="", y=fri, fill=reorder(work, -fri))) +
geom_bar(stat="identity", width=1) + coord_polar("y", start=0) + theme_minimal() +
labs(title="Frecuencia relativa - Trabajo", x="Previsión", y = "Frecuencia relativa (%)")
p=p + scale_fill_brewer(palette="RdPu",name = "Tipo de Trabajo")
plot(p)
p=ggplot(data=frec_work, aes(x=reorder(work, -fri),y=fi)) +
geom_bar(stat="identity",fill="maroon",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)
dotPlot(AdultUCI$age,xlab = "Edad (años)",)
grafico=ggplot(AdultUCI,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="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)
Respecto a las representaciones para las variables cualitativas, el gráfico de barras muestra la frecuencia de variable mediante barras verticales, mientras que el gráfico de tipo pie utiliza la frecuencia relativa para representar la cantidad de datos en porcentajes, finalmente, el gráfico pareto utiliza la frecuencia absoluta con barras verticales y añade la frecuencia absoluta acumulada representada con puntos. Por otro lado, para las variables cuantitativas, el gráfico de puntos utiliza puntos para representar la frecuencia, mientras que el histograma grafica los datos mediante barras horizontales, indicando su frecuencia absoluta.