INTRODUCCIÓN

Las tablas de frecuencias agrupadas se utilizan en estadística como herramienta de organización y análisis de los dato una vez ha culminado la recopilación de los mismos. Esta técnica es de gran ayuda cuando el número de datos es muy grande y se usa con mayor frecuencia para agrupar observaciones de variables continuas. Para determinar el número de intervalos de clases y su amplitud existen varios métodos, en esta trabajo estamos interesados solo en tres, que son: Sturges, Scott y Freedman & Diaconis, en el primero se calculan un numero de clases determinado y en los otros dos lo que se calcula es el ancho o amplitud de los intervalos. Inicialmente se diseñó una función en R Core Team (2016) que nos permite agrupar datos utilizando el método de Sturges, descrito en Llinas & Rojas (2015). Además de la tabla de frecuencias, la función también nos arroja un histograma, un polígono de frecuencias absolutas y una ojiva. Para lograr esto se utilizaron varias funciones ya establecidas en R. una vez creada la función se corrieron 4 vectores aleatorios con distribución normal, con diferentes tamaños y con la misma media y desviación estándar; luego con el objetivo de analizar que método (Sturges, Scott y Freedman & Diaconis) nos ofrece una mayor información acerca de la distribución de un conjunto de datos cuando existen datos atípicos, generamos por cada vector creado dos histogramas, uno realizado por el método de Scott y el otro con el de Scott y Freedman & Diaconis. Por ultimo tomamos un Dataframe de la biblioteca MASS, llamada Melanoma y realizamos una tabla de frecuencias con la variable thickness, eligiendo el método adecuado según las características de las observaciones.

Objetivo General

??? Elaborar una función o rutina en R Project que realice una tabla de frecuencia de datos agrupados, Histograma de Frecuencia, polígono y Ojiva.

Objetivos Específicos:

Elaborar los comandos que permitan realizar el histograma de frecuencias absolutas acorde a la bibliografía consultada.

Analizar el efecto del uso de las técnicas de Sturger, Scott y Freedman- Diaconis en los histogramas de frecuencias.

Analizar la forma de distribución más estable de los histogramas de frecuencias absolutas generados con tamaños de muestras de 20, 30, 50 y 100

Descripción de problema

El uso de las tablas de frecuencias de datos agrupados con intervalos tiene usos muy útiles cuando se pretende resumir, analizar y presentar el comportamiento de una serie de datos o una variable frente a una temática de interés, sin embargo, su elaboración requieres de una serie de pasos o cálculos que, a pesar de no representar mayor complejidad, podría tornarse un poco tedioso al momento de requerirse su elaboración. Uno de software hoy más usado por los estadísticos es R Projets, pero éste carece de una función que permita realizar tablas de frecuencias de datos agrupados con intervalos con un solo comando, no obstante, brinda todas las herramientas necesarias para elaborar una rutina al servicio y acorde a las necesidades de los estadistas. En este contexto la creación de una función o rutina que realice una tabla de frecuencias agrupadas, Histograma, polígono de frecuencias absolutas y ojiva con solo especificar el vector de datos, surge como una herramienta útil en el ámbito académico e investigativo en general.

Marco Teórico

Martinez (2011), La estadística en su aspecto operativo es un conjunto de técnicas o métodos que permiten la observación, recopilación, ordenación, descripción, y análisis de un fenómeno. La elaboración de tablas o cuadros, facilita el análisis y la presentación de la información.

Para elaborar las tablas, se debe, antes que todo, identificar los caracteres o características que se investigaron, lo cual permite una mejor clasificación de lo observado. Las características de un fenómeno pueden ser cualitativas y cuantitativas. En el presente trabajo solo se considerará las características cuantitativas de una variable o fenómeno, las cuales solo se presentan expresadas en números, considerando que estos pueden ser de tipo discretos o continuos, los primeros refiriéndose aquellas variables que toman valores solo en números enteros y los segundos las variables que admite números fraccionarios.

Cundo la variable de interés tiene un gran número de observaciones (datos) y/o es de tipo continua, su análisis se torna complejo si no serializa algún tipo de tratamiento u organización, en tanto la aplicación de las tablas de frecuencia agrupadas en estas situaciones es una técnica valiosa como primera fase de análisis.

Gorgas, Cardiel, Samorano(2011), En estos casos se realiza un agrupamiento de los datos en intervalos y se hace un recuento del número de observaciones que caen dentro de cada uno de ellos. Dichos intervalos se denominan intervalos de clase, y al valor de la variable en el centro de cada intervalo se le llama marca de clase. De esta forma se sustituye cada medida por la marca de clase del intervalo a que corresponda. A la diferencia entre el extremo superior e inferior de cada intervalo se le llama amplitud del intervalo. Normalmente se trabajará con intervalos de amplitud constante.

La elaboración de la tabla anterior implica la realización de los siguientes pasos con los cuales vamos a garantizar que la información este resumida de manera eficiente, y se pueda obtener la mayor información posible:

  1. Organizar los diferentes valores que toma la variable estadística en orden ascendente.

  2. Calcular el Rango R=x_max-x_min

  3. Decidir el número k de intervalos de clase en que se van a agrupar los datos. Marca de clase o calcular utilizando la regla de sturger C=3,3*loga(n)+1 el entero más próximo.

  4. Calcular la amplitud w=R/C el entero más próxiom.

  5. Calcular el punto medio pm=(Unidad de medida)/2

  6. Determinar las fronteras de cada intervalo Frontera inf= x_min-pm y Frontera sup=Frontera inf+w , esto para el primer intervalo de clase, Evidentemente el extremo superior de cada intervalo ha de coincidir con el extremo inferior del siguiente para los siguientes intervalos de clase.

  7. Determinados los intervalos se debe hacer un recuento cuidadoso del número de observaciones que caen dentro de cada intervalo, para construir así la tabla de frecuencias.

  8. Frecuencia absoluta n_i: Definida como el número de veces que aparece repetido el valor en cuestión de la variable estadística en el conjunto de las observaciones realizadas. Si N es el número de observaciones (o tamaño de la muestra), las frecuencias absolutas cumplen las propiedades:

  9. Frecuencia relativa f_i: Cociente entre la frecuencia absoluta y el número de observaciones realizadas N.

  10. Frecuencia absoluta acumulada N_i: Suma de las frecuencias absolutas de los valores inferiores o igual a x_i, o número de medidas por debajo, o igual, que x_i. Evidentemente la frecuencia absoluta acumulada de un valor se puede calcular a partir de la correspondiente al anterior como

  11. Frecuencia relativa acumulada F_i: Cociente entre la frecuencia absoluta acumulada y el número de observaciones. Coincide además con la suma de las frecuencias relativas de los valores inferiores o iguales a x_i

  12. Cálculo de la marca de clase: c_i=(Frontera inf+Frontera sup)/2

Construidas las tablas de frecuencia el siguiente paso es interpretar los datos obtenidos. En los pasos descritos anteriormente se estableció la regla de stuger como la técnica para el cálculo del número de clases que debe tener la tabla de frecuencia, sin embargo existen otras técnicas que también pueden ser usadas, como lo son las formulas desarrolladas por Scott y Freedman- Diaconis.

Resultados

Se generaron cuatro vectores aleatorios de diferentes tamaños con distribución normal con media igual a 20 y distribución normal igual a 5, cada vector fue modificado con la función fix() para agregar datos atípicos.

a=round(rnorm(20,20,5),1)
b=round(rnorm(30,20,5),1)
c=round(rnorm(50,20,5),1)
d=round(rnorm(100,20,5),1)
fix(a)
fix(b)
fix(c)
fix(d)

La siguiente rutina fue creada con el fin de agrupar datos, utilizando la regla de Sturges para generar el número de intervalos o intervalos de clase. los vectores alatorios generados anteriormente fueron corridos con la función diseñada.

Tabla.F=function(x,PM){
n=length(x)
R=max(x)-min(x)
C=round(3.3*log10(n)+1)
W=ceiling(R/C)
Finf=min(x)-PM
Fsup=Finf+W
RR=data.frame(table(cut(x,seq(Finf,(Finf+(C)*W),by=W),right=F)))
RR2=transform(RR, Fa=cumsum(Freq),fr=Freq/n,Fr=cumsum(Freq)/n,MC=seq((Finf+Fsup)/2,(Finf+Fsup)/2+(C-1)*W,by=W))
print(RR2)
Int=seq(Finf,(Finf+(C-1)*W),by=W)
SInt=Int+W
ojiva=plot(SInt,RR2$Fa,type="o",main="Ojiva",ylab="Frecuencia Absoluta Acumulada",xlab="Fronteras Superiores Clases")
par(ps=7,mex=0.3,mfrow=c(1,2))
histograma=hist(x,breaks=seq(Finf,(Finf+(C)*W),by=W),labels=T,col="magenta2",right=F,ylab="Frecuencias Absollutas",xlab="Intervalos")
yy=hist(x,breaks=seq(Finf,(Finf+(C)*W),by=W),labels=T,col="magenta2",right=F,ylab="Frecuencias Absollutas",xlab="Intervalos",main="Poligono de Frecuencia")
lines(c(min(yy$breaks),yy$mids,max(yy$breaks)),c(0,yy$counts,0),type="l")
}
Tabla.F(a,0.05)
##          Var1 Freq Fa   fr   Fr    MC
## 1 [11.4,17.4)    6  6 0.30 0.30 14.45
## 2 [17.4,23.4)   10 16 0.50 0.80 20.45
## 3 [23.4,29.4)    2 18 0.10 0.90 26.45
## 4 [29.4,35.5)    1 19 0.05 0.95 32.45
## 5 [35.5,41.5)    1 20 0.05 1.00 38.45

Tabla.F(b,0.05)
##          Var1 Freq Fa         fr         Fr    MC
## 1 [7.95,12.9)    2  2 0.06666667 0.06666667 10.45
## 2 [12.9,17.9)    5  7 0.16666667 0.23333333 15.45
## 3 [17.9,22.9)   11 18 0.36666667 0.60000000 20.45
## 4 [22.9,27.9)    9 27 0.30000000 0.90000000 25.45
## 5   [27.9,33)    2 29 0.06666667 0.96666667 30.45
## 6     [33,38)    1 30 0.03333333 1.00000000 35.45

Tabla.F(c,0.05)
##          Var1 Freq Fa   fr   Fr    MC
## 1 [9.85,17.9)   19 19 0.38 0.38 13.85
## 2 [17.9,25.9)   23 42 0.46 0.84 21.85
## 3 [25.9,33.9)    6 48 0.12 0.96 29.85
## 4 [33.9,41.9)    1 49 0.02 0.98 37.85
## 5 [41.9,49.9)    0 49 0.00 0.98 45.85
## 6 [49.9,57.9)    0 49 0.00 0.98 53.85
## 7 [57.9,65.8)    1 50 0.02 1.00 61.85

Tabla.F(d,0.05)
##          Var1 Freq  Fa   fr   Fr    MC
## 1 [8.95,11.9)    1   1 0.01 0.01 10.45
## 2 [11.9,14.9)   13  14 0.13 0.14 13.45
## 3 [14.9,17.9)   17  31 0.17 0.31 16.45
## 4 [17.9,20.9)   22  53 0.22 0.53 19.45
## 5 [20.9,23.9)   21  74 0.21 0.74 22.45
## 6 [23.9,26.9)   17  91 0.17 0.91 25.45
## 7 [26.9,29.9)    6  97 0.06 0.97 28.45
## 8   [29.9,33)    3 100 0.03 1.00 31.45

Se generaron histogramas con los vectores aleatorios con distribución normal creados anteriormente, a estos se les modifico en el argumento breaks el metodo para calcular el número de clases (metodo de Scott y Freedman & Diaconis).

Para analizar el efecto que tiene cada uno de los métodos para generar clases o intervalos en un histograma, usaremos fórmulas de los métodos Sturges, Scott y Fredma & Diaconis tal y como las plantea R en el argumento breaks. Para hacer comparación entre ellos se generaron histogramas con cada uno de los vectores creados anteriormente.

par(ps=7,mex=0.3,mfrow=c(1,3))
hist(a,breaks ="Scott",right = F,main = "Metodo de Scott n=20",col = "lightblue2",labels=T)
hist(a,breaks ="FD",right = F,main = "Metodo de Freedman & Diaconis n=20",col = "lightblue2",labels=T)
hist(a,breaks ="Sturges",right = F,main = "Metodo de Sturges n=20",col = "lightblue2",labels=T)

par(ps=7,mex=0.3,mfrow=c(1,3))
hist(b,breaks ="Scott",right = F,main = "Metodo de Scott n=30",col = "khaki",labels=T)
hist(b,breaks ="FD",right = F,main = "Metodo de Freedman & Diaconis n=30",col = "khaki",labels=T)
hist(b,breaks ="Sturges",right = F,main = "Metodo de Sturges n=30",col = "khaki",labels=T)

par(ps=7,mex=0.3,mfrow=c(1,3))
hist(c,breaks ="Scott",right = F,main = "Metodo de Scott n=50",col =  "navajowhite1",labels=T)
hist(c,breaks ="FD",right = F,main = "Metodo de Freedman & Diaconis n=50",col ="navajowhite1",labels=T)
hist(c,breaks ="Sturges",right = F,main = "Metodo de Sturges n=50",col ="navajowhite1",labels=T)

par(ps=7,mex=0.3,mfrow=c(1,3))
hist(d,breaks ="Scott",right = F,main = "Metodo de Scott n=100",col =  "navajowhite1",labels=T)
hist(d,breaks ="FD",right = F,main = "Metodo de Freedman & Diaconis n=100",col ="navajowhite1",labels=T)
hist(d,breaks ="Sturges",right = F,main = "Metodo Sturges n=100",col ="navajowhite1",labels=T)

De acuerdo a los histogramas obtenidos bajo los tres métodos de cálculos de clases, obtuvimos que para una muestra pequeña, para este ejercicio n=20, resulta indiferente usar el método de Scott o Sturges debido a que resultaron gráficos idénticos. Para el caso de Método de Freedman & Diaconis se crea un número más alto de clases, sin embargo el grafico de histograma no se refleja la distribución de los datos normales.

Para el caso del vector de 30 datos observamos que el número de clases en los tres métodos es la misma, dado que las clases poseen la misma amplitud; por lo tanto los histogramas son idénticos.

Para n=50 ocurre lo mismo que en el caso anterior, tenemos la misma amplitud y numero de clases para los tres métodos, con la novedad de que la distribución de los datos se aprecia de una mejor forma.

Para el vector de datos de n=100 observamos que los histogramas con los métodos de Scott y Freedman & Diaconis son iguales. Para el método de Sturges se observa una disminución del número de clases, y la distribución de los datos no se logra apreciar.

Mediante el metodo de Sturges se genero una tabla de frecuencias de la variable thickness, la cual se encuentra en el dataframe Melanoma de la biblioteca MASS. Melanoma contiene datos de 205 pacientes con melanoma maligno en dinamarca. thickness es el espesor del melanoma en milimetros (mm).

library(MASS)
head(Melanoma)
##   time status sex age year thickness ulcer
## 1   10      3   1  76 1972      6.76     1
## 2   30      3   1  56 1968      0.65     0
## 3   35      2   1  41 1977      1.34     0
## 4   99      3   0  71 1968      2.90     0
## 5  185      1   1  52 1965     12.08     1
## 6  204      1   1  28 1971      4.84     1
attach(Melanoma)
Tabla.F(thickness,0.005)
##          Var1 Freq  Fa          fr        Fr     MC
## 1 [0.095,2.1)  109 109 0.531707317 0.5317073  1.095
## 2  [2.1,4.09)   53 162 0.258536585 0.7902439  3.095
## 3 [4.09,6.09)   19 181 0.092682927 0.8829268  5.095
## 4  [6.09,8.1)   13 194 0.063414634 0.9463415  7.095
## 5  [8.1,10.1)    3 197 0.014634146 0.9609756  9.095
## 6 [10.1,12.1)    1 198 0.004878049 0.9658537 11.095
## 7 [12.1,14.1)    5 203 0.024390244 0.9902439 13.095
## 8 [14.1,16.1)    1 204 0.004878049 0.9951220 15.095
## 9 [16.1,18.1)    1 205 0.004878049 1.0000000 17.095

Conclución

A pesar de que R no posee una función para realizar una tabla de frecuencias agrupadas, nos brinda todas las herramientas para el diseño de una función que realice o supla esta eventual necesidad. La función creada en este trabajo la nombramos como Tabla.F (), la cual posee dos argumentos, el primero es un vector de datos cualquiera y el segundo es el punto medio de unidad de medida; la función genera los gráficos de histograma, el polígono de frecuencias absolutas y la ojiva para la distribución. La función fue probada con 4 vectores aleatorios de distribución normal, arrojando las salidas deseadas.

Con respecto al análisis de los métodos para generar el número de clases de un histograma, concluimos que para elegir entre ellos debemos experimentar con cada uno de los métodos y quedarnos con el que nos brinde una mejor visualización de la distribución de los datos. Sin embargo se observa que a medida que aumentamos el tamaño de n, el método de Scott y el de Freedman & Diaconis refleja de una mejor manera la distribución de los datos.

Bibliografía

Martínez, C (2012).Estadística y Muestreo. Ecoe Ediciones. 352-355.

Llinas, H (2014).Estadística desciptiva y distribuciones de probabilidad.Universidad del Norte.22-33.