Conjunto de datos

Se utilizará un data frame propio de R sobre el crecimiento de árboles de naranja.

datos = datasets::Orange

1.1 Distribución de frecuencia

Se crea una tabla de frecuencia sobre una variable cualitativa, el árbol.

fi=-as.numeric(sort(-table(datos$Tree)))
fac=cumsum(fi)
fri=as.numeric(fi/sum(fi))*100
frac=cumsum(fri)
tree=c("1","2","3","4","5")
frec_tree=data.frame(tree,fi,fac,fri=round(fri,2),frac=round(frac,2))
knitr::kable(frec_tree)
tree fi fac fri frac
1 7 7 20 20
2 7 14 20 40
3 7 21 20 60
4 7 28 20 80
5 7 35 20 100

Se crea una tabla de frecuencia sobra una variable cuantitativa, la edad de los árboles.

fi=as.numeric(table(datos$age))
fac=cumsum(fi)
fri=as.numeric(fi/sum(fi))*100
frac=cumsum(fri)
edad=sort(unique(datos$age))
frec_edad=data.frame(edad,fi,fac,fri=round(fri,2),frac=round(frac,2))
knitr::kable(head(frec_edad,5))
edad fi fac fri frac
118 5 5 14.29 14.29
484 5 10 14.29 28.57
664 5 15 14.29 42.86
1004 5 20 14.29 57.14
1231 5 25 14.29 71.43

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

La construcción de una tabla de frecuencia tiene como fin organizar y ordenar los datos que se tienen, como es el caso de un data frame. En particular una tabla de frecuencia permite ordenar los datos de tal manera que se tenga conocimiento de la cantidad de veces que se repite una variable en la muestra, la acumulación de estas mismas repeticiones asociada a una variable y los porcentajes de aparición que tienen. Se obtienen conclusiones meramente informativas, sin poder realizar ningún tipo de estimaciones, hipótesis, etc. Este tipo de tablas corresponden a la estadística descriptiva.

edad=sort(unique(datos$age))
n = length(edad)
k = round(1 + 3.3 * log(n))
h = round((max(edad)-min(edad))/k)
intervalos=hist(datos$age, plot=FALSE, breaks = k)$breaks
intervalos=paste("(",intervalos[1:(length(intervalos)-1)],"-",intervalos[2:(length(intervalos))],"]",sep="")
intervalos[1]="[0-200]"
fi = hist(datos$age, plot=FALSE, breaks = k)$counts      
fac=cumsum(fi)                                            
fri=as.numeric(fi/sum(fi))*100                            
frac=cumsum(fri)                                          
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-200] 5 5 14.29 14.29
(200-400] 0 5 0.00 14.29
(400-600] 5 10 14.29 28.57
(600-800] 5 15 14.29 42.86
(800-1000] 0 15 0.00 42.86
(1000-1200] 5 20 14.29 57.14
(1200-1400] 10 30 28.57 85.71
(1400-1600] 5 35 14.29 100.00

1.2 Gráficos

Se crea un gráfico de barras.

library(ggplot2)
library(plotly)
## 
## 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
p=ggplot(data=frec_tree, aes(x=reorder(tree, -fri),y=fi)) +
  geom_bar(stat="identity",fill="maroon",alpha=0.8) + theme_minimal() + 
  labs(title="Frecuencia absoluta - Tree", x="Tree", y = "Frecuencia absoluta")
ggplotly(p)

Se crea grafico de pie.

p=ggplot(frec_tree, aes(x="", y=fri, fill=reorder(tree, -fri))) +
  geom_bar(stat="identity", width=1) + coord_polar("y", start=0) + theme_minimal() +
  labs(title="Frecuencia relativa - Tree", x="Tree", y = "Frecuencia relativa (%)")
p=p + scale_fill_brewer(palette="RdPu",name = "Tipo de Árbol")
plot(p)

Se crea gráfico de Pareto.

p=ggplot(data=frec_tree, aes(x=reorder(tree, -fri),y=fi)) +
  geom_bar(stat="identity",fill="maroon",alpha=0.8) + theme_minimal() + 
  labs(title="Frecuencia absoluta y absoluta acumulada - Previsión", x="Previsión", y = "Frecuencia absoluta")
p = p + geom_point(aes(y=fac))
ggplotly(p)
library("BHH2")
dotPlot(datos$age,xlab = "EDAD (años)",)

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="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)

¿Qué diferencia aprecia entre ambos tipos de representaciones?

La estadística descriptiva presenta diversos tipos de gráficos y que, cada uno de estos tiene particularidades que lo hacen especialmente útil a la hora de querer representar y/o organizar datos específicos. Día a día se crean distintas representaciones que ayudan a organizar los datos. Se tienen gráficos para las variables cualitativas (tipo de árbol) y las cuantitativas (edad), en los cualitativas: el de pie se utiliza para una pequeña cantidad de datos, el de barras usa porcentajes, en Pareto se almacena la frecuencia acumulada, tanto Pareto como el de barras utiliza intervalos y el de pie no. En las cuantitativas se tiene el histograma nos indica la frecuencia de cada variable del data frame, mientras que el diagrama de puntos también indica frecuencia, pero con la diferencia que se construye con puntos en el que, cada uno de estos represente a un dato.