DISTRIBUCIÓN DE FRECUENCIAS
La distribución de frecuencias es una técnica descriptiva de los datos usada principalmente para reunir y resumir una gran cantidad de información, de tal manera que sea interpretable fácilmente para el lector.
En el ambiente de R se requiere de instalar algunas librerías en las cuales se agrupan funciones que permiten resolver los distintos análisis estadísticos.
Veamos un primer ejemplo ingresando datos en un vector denominado “x”:
Ingresamos el conjunto de datos:
x <- c(61,33,35,74,48,53,53,48,23,19,15,57,72,40,27,25,75,66,34,27,38,16,42,57,27,59,37,63,71,48)
Cargar la librería fdth
Para poder utilizar la librería fdth debemos instalarla previamente. Las librerías se instalan una única vez en el computador, y dependiendo del grupo de trabajo o programación, puede requerirse una actualización a futuro.
Nota: El término librería y paquete se utilizan de forma homóloga
Deberá instalar el paquete que vamos a utilizar. install.packages(“fdth”, dependencies = FALSE); también se puede realizar en el sistema de paquetes.
library(fdth) # carga la extensión fdth (para el cálculo de distribución de frecuencias.
Ejecución de una prueba
dist <- fdt(x,breaks="Sturges") # calcula la distribución de frecuencias utilizando la regla Sturges
dist #nos brinda una tabla con los cálculos de la distribución de frecuencias.
Class limits f rf rf(%) cf cf(%)
[14.85,25) 4 0.13 13.33 4 13.33
[25,35.15) 7 0.23 23.33 11 36.67
[35.15,45.3) 4 0.13 13.33 15 50.00
[45.3,55.45) 5 0.17 16.67 20 66.67
[55.45,65.6) 5 0.17 16.67 25 83.33
[65.6,75.75) 5 0.17 16.67 30 100.00
Nótese que se utiliza el nombre dist para el resultado del análisis. Los componentes mostrados en el resultado son los siguientes:
f= frecuencia absoluta
rf= frecuencia relativa
rf(%)= frecuencia relativa porcentual
cf= frecuencia acumulada
cf(%)=frecuencia acumulada porcentual
Además, es posible entregar una representación gráfica de los resultados, lo cual se llama histograma:
par(mfrow=c(3,2)) # particiona la ventana gráfica en 3x2. Facilita colocar distintos gráficos en una única ventana
hist(x, breaks = "Sturges") #histograma utilizando el numero de clases según Sturges
Otras funciones gráficas para representar un histograma de frecuencias
Histograma de frecuencias acumuladas
plot(dist, type="cfh")
Polígono de frecuencias acumulado
plot(dist, type="cfp")
Además, puede utilizar otros argumentos en la función plot para lograr realizar otras representaciones. Explore los otros argumentos graficos,“fh”, “fp”, “rfh”, “rfp”, “rfph”, “rfpp”, “d”, “cdh”, “cdp”, “cfh”, “cfp”, “cfph”, “cfpp”.
Por ejemplo:
plot(dist, type="fh")
plot(dist, type="fh", col="blue") #si desea añadir color a su gráfico
Nota: Mediante el comando ?plot() puede acceder a las ayudas que el ambiente R guarda para cada función. Por ejemplo, ?c() accede a la ayuda de la función concatenado; ?fdth() la ayuda de la función fdth().
Ejemplo 1
Utilizando una base de datos realizaremos un análisis de frecuencias para un dataset disponible dentro del ambiente R.
Utilice el set de datos que presenta R. Para visualizarlos utilice la siguiente función
data() # visualiza los datos de R y asociados a las extensiones que ha cargado
Loblolly #nombre del set de datos que utilizaremos
height age Seed
1 4.51 3 301
15 10.89 5 301
29 28.72 10 301
43 41.74 15 301
57 52.70 20 301
71 60.92 25 301
2 4.55 3 303
16 10.92 5 303
30 29.07 10 303
44 42.83 15 303
58 53.88 20 303
72 63.39 25 303
3 4.79 3 305
17 11.37 5 305
31 30.21 10 305
45 44.40 15 305
59 55.82 20 305
73 64.10 25 305
4 3.91 3 307
18 9.48 5 307
32 25.66 10 307
46 39.07 15 307
60 50.78 20 307
74 59.07 25 307
5 4.81 3 309
[ reached 'max' / getOption("max.print") -- omitted 59 rows ]
Para visualizar los títulos que contienen los datos Loblolly utillizamos la siguiente función:
head(Loblolly, n=5) #n=5 permite visualizar las primeras 5 filas.
height age Seed
1 4.51 3 301
15 10.89 5 301
29 28.72 10 301
43 41.74 15 301
57 52.70 20 301
Para crear la distribución de frecuencia, buscamos primeramente el rango de los valores de la variable de interés, en nuestro caso trabajaremos con la variable “age”.
datosfreq<- Loblolly $ age #utilizamos el símbolo de $ para separar de los datos la variable de interés.
datosfreq
[1] 3 5 10 15 20 25 3 5 10 15 20 25 3 5 10 15 20 25 3 5 10 15 20 25 3
[26] 5 10 15 20 25 3 5 10 15 20 25 3 5 10 15 20 25 3 5 10 15 20 25 3 5
[51] 10 15 20 25 3 5 10 15 20 25 3 5 10 15 20 25 3 5 10 15 20 25 3 5 10
[ reached getOption("max.print") -- omitted 9 entries ]
range(datosfreq)
[1] 3 25
En este caso observamos el rango de los datos, va de 3 a 25.
dist1 <- fdt(Loblolly $ age,breaks="Sturges")
dist1
Class limits f rf rf(%) cf cf(%)
[2.97,5.755) 28 0.33 33.33 28 33.33
[5.755,8.54) 0 0.00 0.00 28 33.33
[8.54,11.325) 14 0.17 16.67 42 50.00
[11.325,14.11) 0 0.00 0.00 42 50.00
[14.11,16.895) 14 0.17 16.67 56 66.67
[16.895,19.68) 0 0.00 0.00 56 66.67
[19.68,22.465) 14 0.17 16.67 70 83.33
[22.465,25.25) 14 0.17 16.67 84 100.00
Si queremos utilizar un rango diferente (start, end) con amplitud definida (\(h\)), utilizamos lo siguiente:
dist2 <- fdt(Loblolly $ age, start=3, end=28, h=5)
dist2
Class limits f rf rf(%) cf cf(%)
[3,8) 28 0.33 33.33 28 33.33
[8,13) 14 0.17 16.67 42 50.00
[13,18) 14 0.17 16.67 56 66.67
[18,23) 14 0.17 16.67 70 83.33
[23,28) 14 0.17 16.67 84 100.00
Si quisieramos utilizar un numero de clases diferente utilizamos el argumento \(k\):
dist3 <- fdt(Loblolly $ age, k=9) #utilizamos k para determinar el numero de clases deseado.
dist3
Class limits f rf rf(%) cf cf(%)
[2.97,5.4456) 28 0.33 33.33 28 33.33
[5.4456,7.9211) 0 0.00 0.00 28 33.33
[7.9211,10.397) 14 0.17 16.67 42 50.00
[10.397,12.872) 0 0.00 0.00 42 50.00
[12.872,15.348) 14 0.17 16.67 56 66.67
[15.348,17.823) 0 0.00 0.00 56 66.67
[17.823,20.299) 14 0.17 16.67 70 83.33
[20.299,22.774) 0 0.00 0.00 70 83.33
[22.774,25.25) 14 0.17 16.67 84 100.00
Cálculo de la obtención del número de clases en la distribución de frecuencias
Caso 1. Regla de Stockes
Utilizamos la siguiente fórmula:
\(K = 1+(Log (n) / Log(2))\)
en donde \(K\) es el numero de clases (intervalos), y \(n\) el numero de muestras.
Si observamos los datos Loblolly contiene 84 datos:
k<-(1+log(84) /log(2)) #obtenemos el numero de clases sugeridas para nuestros datos
k
[1] 7.392317
Caso 2. Regla de Sturges
Utilizamos la siguiente fórmula:
\(K=1 + (3.322*Log10(n))\) en donde \(n\) el numero de muestras.
Cálculo de la dimensión de los intervalos de clase:
\(w = R/k\), donde \(R\) es el rango de los datos (max-min).
k1<-1 + (3.322*log10(84))
k1
[1] 7.392456
El número de clase a formar: 7 aproximadamente, también podemos utilizar la siguiente función:
nclass.Sturges(datosfreq)
[1] 8
#Esta función nos recomienda 8 clases.
Opciones gráficas:
palette() #muestra los colores disponibles
[1] "black" "#DF536B" "#61D04F" "#2297E6" "#28E2E5" "#CD0BBC" "#F5C710"
[8] "gray62"
par(mfrow=c(3,2))
Utilizaremos la variable “height””
hist(Loblolly $ height,xlab="cantidad",ylab="frecuencia",main="Histograma", col="green3")
hist(Loblolly $ height, xlab="cantidad",ylab="frecuencia",main="histograma", col="56")
RESUMEN ESTADÍSTICO DE UNA SOLA VARIABLE, DENTRO DEL ANÁLISIS DE FRECUENCIA
head(Loblolly)
height age Seed
1 4.51 3 301
15 10.89 5 301
29 28.72 10 301
43 41.74 15 301
57 52.70 20 301
71 60.92 25 301
attach(Loblolly) #función que adjunta los datos al programa
summary(age) #note que ya no tendremos que separar por $, dado la función attach
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.0 5.0 12.5 13.0 20.0 25.0
summary(height)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.46 10.47 34.00 32.36 51.36 64.10
En este caso, la función attach() permite accesar de forma directa a la variable dentro del set de datos; detach() libera la variable. Esta función puede generar conflictos si no tiene en cuenta que se realizó el paso attach().
Ejercicios
Obtenga el set completo de la distribución de frecuencia para la variable -weight-.
Interprete la primera clase de la Frecuencia Absoluta.______________________________
Interprete la tercera clase de Frecuencia relativa:_________________________________
Interprete la segunda clase de Frecuencia Acumulada:_____________________________
Interprete la segunda clase de Frecuencia Relativa Acumulada:_________________________
Elabore un polígono de frecuencia, póngale titulo y color a su figura.:___________________________________________________________
Resumen de funciones utilizados en R
#library() Carga un paquete especifico de R
#attach() permite adjuntar los datos de acuerdo a como fueron nombradas las variable
#data() muestra conjunto de datos que contiene los paquetes que ha cargado
#head() visualiza los titulos que contiene los datos
#fdt() Función del paquete fdth que permite elaborar distribuciones de frecuencias
#hist() elabora un histograma de frecuencias.
#palette() muestra los colores disponibles
#par(mfrow=c(3,2)) permite dividir la ventana de graficos (3 filas, 2 columnas)
#range() obtiene el rango de datos de un vector
#sort() ordena los datos de la variable de interes en forma ascendente