1. Introducción

En el presente trabajo se muestra una función elaborada en R que construye una tabla de distribución de frecuencias agrupada (usando inicialmente “Sturges” para obtener el número de clases). Se construye también el histograma, el polígono de frecuencias y la ojiva. Con esta rutina se pretende analizar los resultados obtenidos al elaborar un histograma con las formulas desarrolladas por Sturges, Scott y Freedman- Diaconis para hallar el número de clases que debe tener una tabla de frecuencias para datos agrupados.

  1. DESCRIPCION DEL PROBLEMA

En estadística descriptiva es imprescindible la construcción de tablas de frecuencia agrupadas cuando el número de datos una muestra es muy grande (n>30), cuando se trabaja con la población o cuando los datos son continuos, pues de lo contrario sería difícil analizarlos, interpretarlos y por ende darle una solución al problema estudiado. Es muy importante conocer las características principales de los datos para hacer análisis e interpretaciones más eficaces y cercanas a la realidad. Para esto, un analista puede escoger entre muchos métodos el más óptimo para representar en tablas agrupadas la información recolectada sin que se pierda información relevante para el investigador, en orden de ideas surgen métodos y teorías de diversos autores, para calcular el número de clases necesarios que deben considerarse para elaborar un histograma y que estas permitan representar fielmente los datos.

3 Preliminares

3.1 Distribución de frecuencias

La información estadística puede constar de un gran número de observaciones y mientras mayor sea el número, mayor puede ser la conveniencia y necesidad de presentarla en forma resumida, la cual puede permitir algunos detalles pero en cambio puede revelar la naturaleza general de la información. Un resumen de tal distribución se denomina. Distribución de Frecuencias. Puede decirse también, que una distribución es el patrón de variabilidad mostrado por los datos de una variable. La distribución muestra la frecuencia de cada valor de la variable.

3.2 Distribuciones De Frecuencias Para Datos Agrupados En Intervalo

Cuando los datos contienen una gran cantidad de elementos, para facilitar los cálculos es necesario agruparlos, a estos grupos se los llama intervalos o clases. Un intervalo es una serie de números incluidos entre dos extremos, así por ejemplo, el intervalo 40 - 45 está formado por 40, 41, 42, 43, 44 y 45, siendo 40 el límite inferior, 45 el límite superior, 39,5 límite real inferior (límite inferior disminuido en 5 décimas) y 40,5 el límite real superior (límite superior aumentado en 5 décimas). Calculando el Rango (R).- También se llama recorrido o amplitud total. Es la diferencia entre el valor mayor y el menor de los datos. R=xmax-xmin Regla de Sturges4. Esta establece como número de clases necesario, aproximadamente, c=3,3*log (n) +1 Donde n es el número de salidas y logan es el logaritmo de n en base 1. El valor de c es común redondearlo al entero más cercano. Otra regla razonable para el número de clases es:

c=sqrt(n)

3.3 Freedman-Diaconis rule

La regla de Freedman-Diaconis se puede utilizar para seleccionar el tamaño de los contenedores que se utilizarán en un histograma. [1] Tiene el nombre de David A. Freedman y Persi Diaconis.

Para un conjunto de mediciones empíricas muestreadas a partir de alguna distribución de probabilidad, la regla de Freedman-Diaconis está diseñada para minimizar la diferencia entre el área bajo la distribución de probabilidad empírica y el área bajo la distribución de probabilidad teórica. La ecuación general para la regla es: h=2*(IQ)n^(-1/3) Donde IQ es el rango intercuartilico de los datos.

  1. Rutinas para construcción de tablas de frecuencias e histogramas (Sturges, Scott y Freedman-Diaconis)

Esta rutina permite elaborar tablas de distribución de frecuencias agrupadas usando el método de Sturges. Para ello, se toman datos aleatorios que tienen una distribución normal con media 20 y desviación estandar igual a 5. Se construye un histograma, usando el verdadero número de clases que arroja Sturges (Histograma), a este se le agrega el polígono de frecuencias y posteriormente se contruyen los histogramas modificando en la función hist el argumento breaks por Sturges, Scott y Freedman-Diaconis.

Rutina 1.

set.seed(18)
y=function(n){
   x=round(rnorm(n,20,5),digits=1)
   m=nclass.Sturges(x)
   minx=min(x)
   w=ceiling((max(x)-minx)/m)             #Calcula la amplitud del intervalo
   b=(1:m)*w+minx                         #Calcula el límite superior del intervalo
   a=b-w                                  #Calcula el límite inferior del intervalo
   X=(a+b)/2                              #Calcula la marca de clase
   f=matrix(NA,nrow=m,ncol=1)
   F=matrix(NA,nrow=m,ncol=1)
   for(i in 1:m){
      f[i]=length(x[x>=a[i] & x<b[i]])    #Calcula la frecuencia
      F[i]=length(x[x<=b[i]])             #Calcula la frecuencia acumulada
   }
   frel=f/n                               #Calcula la frecuencia relativa
   Frel=F/n                               #Calcula la frecuencia relativa acumulada
   par(mfrow=c(3,2))
   hist(x,breaks=minx+w*(0:m),xlim=c(X[1]-w,X[m]+w),ylim=c(0,max(f)),main="Histograma Vs Polígono de Frecuencia",xlab="Clases",ylab="Frecuencia",col=c("green","darkgreen"))
   lines(c(X[1]-w,X,X[m]+w),c(0,f,0),"b")
   plot(minx+w*(0:m),c(0,F),xlim=c(a[1],b[m]),ylim=c(0,max(F)),main="Ojiva",xlab="Límite superior de la clase",ylab="Frecuencia acumulada",col="red","b")
   hist(x,breaks=nclass.FD(x),main="Histograma con Freedman-Diaconis",xlab="Clases",ylab="Frecuencia",col=c("green","darkgreen"))
   hist(x,breaks=nclass.scott(x),main="Histograma con Scott",xlab="Clases",ylab="Frecuencia",col=c("green","darkgreen"))
   hist(x,breaks="Sturges",main="Histograma con Sturges",xlab="Clases",ylab="Frecuencia", col=c("green","darkgreen"))
   return(data.frame(a,b,X,f,frel,F,Frel))
}

Rutina 2.

#Calcular la distribución de frecuencias de x con datos atípicos
y.atipico=function(n,k){
   #n: tamaño de la muestra x
   #k: número de datos atípicos a agregar al vector x
   set.seed(18)
   x=rnorm(n,20,5)
   set.seed(15)
   z=rnorm(k,0,3)
   z1=c(max(x)+1+z[z>=0],min(x)+z[z<0])
   x1=round(c(x,z1),digits=1)
   m=nclass.Sturges(x1)
   minx=min(x1)
   w=ceiling((max(x1)-minx)/m)             #Calcula la amplitud del intervalo
   b=(1:m)*w+minx                         #Calcula el límite superior del intervalo
   a=b-w                                  #Calcula el limite inferior del intervalo
   X=(a+b)/2                              #Calcula la marca de clase
   f=matrix(NA,nrow=m,ncol=1)
   F=matrix(NA,nrow=m,ncol=1)
   for(i in 1:m){
      f[i]=length(x1[x1>=a[i] & x1<b[i]])    #Calcula la frecuencia
      F[i]=length(x1[x1<=b[i]])             #Calcula la frecuencia acumulada
   }
   frel=f/n                                #Calcula la frecuencia relativa
   Frel=F/n                                #Calcula la frecuencia relativa acumulada
   par(mfrow=c(3,2))
   hist(x1,breaks=minx+w*(0:m),xlim=c(X[1]-w,X[m]+w),ylim=c(0,max(f)),main="Histograma Polígono de Frecuencia",xlab="Clases",ylab="Frecuencia",col=c("blue","darkblue"))
   lines(c(X[1]-w,X,X[m]+w),c(0,f,0),"b")
   plot(minx+w*(0:m),c(0,F),xlim=c(a[1],b[m]),ylim=c(0,max(F)),main="Ojiva",xlab="Límite superior de la clase",ylab="Frecuencia acumulada",col="red","b")
   hist(x1,breaks=nclass.FD(x),main="Histograma con Freedman-Diaconis",xlab="Clases",ylab="Frecuencia",col=c("blue","darkblue"))
   hist(x1,breaks=nclass.scott(x),main="Histograma con Scott",xlab="Clases",ylab="Frecuencia",col=c("blue","darkblue"))
   hist(x1,breaks="Sturges",main="Histograma con Sturges",xlab="Clases",ylab="Frecuencia", col=c("blue","darkblue"))
   return(data.frame(a,b,X,f,frel,F,Frel))
}

A continuación se presentan los resultados para n=20 y se agregarán 5 datos atípicos.

y(20)
##      a    b    X f frel  F Frel
## 1 10.6 14.6 12.6 4 0.20  4 0.20
## 2 14.6 18.6 16.6 4 0.20  9 0.45
## 3 18.6 22.6 20.6 5 0.25 13 0.65
## 4 22.6 26.6 24.6 3 0.15 16 0.80
## 5 26.6 30.6 28.6 3 0.15 19 0.95
## 6 30.6 34.6 32.6 1 0.05 20 1.00
y.atipico(20,5)

##      a    b    X f frel  F Frel
## 1  9.6 14.6 12.1 5 0.25  5 0.25
## 2 14.6 19.6 17.1 5 0.25 10 0.50
## 3 19.6 24.6 22.1 4 0.20 16 0.80
## 4 24.6 29.6 27.1 6 0.30 20 1.00
## 5 29.6 34.6 32.1 3 0.15 23 1.15
## 6 34.6 39.6 37.1 2 0.10 25 1.25

A continuación se presentan los resultados para n=30 y se agregarán 5 datos atípicos.

y(30)
##      a    b    X f      frel  F      Frel
## 1 13.7 16.7 15.2 5 0.1666667  5 0.1666667
## 2 16.7 19.7 18.2 6 0.2000000 11 0.3666667
## 3 19.7 22.7 21.2 8 0.2666667 19 0.6333333
## 4 22.7 25.7 24.2 7 0.2333333 26 0.8666667
## 5 25.7 28.7 27.2 4 0.1333333 30 1.0000000
## 6 28.7 31.7 30.2 0 0.0000000 30 1.0000000
y.atipico(30,5)

##      a    b    X f       frel  F      Frel
## 1  9.2 14.2 11.7 8 0.26666667  8 0.2666667
## 2 14.2 19.2 16.7 9 0.30000000 17 0.5666667
## 3 19.2 24.2 21.7 6 0.20000000 23 0.7666667
## 4 24.2 29.2 26.7 7 0.23333333 30 1.0000000
## 5 29.2 34.2 31.7 2 0.06666667 32 1.0666667
## 6 34.2 39.2 36.7 3 0.10000000 35 1.1666667
## 7 39.2 44.2 41.7 0 0.00000000 35 1.1666667

A continuación se presentan los resultados para n=50 y se agregarán 5 datos atípicos.

y(50)
##      a    b    X  f frel  F Frel
## 1 13.4 16.4 14.9  7 0.14  7 0.14
## 2 16.4 19.4 17.9 11 0.22 18 0.36
## 3 19.4 22.4 20.9 11 0.22 29 0.58
## 4 22.4 25.4 23.9 12 0.24 41 0.82
## 5 25.4 28.4 26.9  7 0.14 49 0.98
## 6 28.4 31.4 29.9  1 0.02 49 0.98
## 7 31.4 34.4 32.9  1 0.02 50 1.00
y.atipico(50,5)

##      a    b    X  f frel  F Frel
## 1  9.2 14.2 11.7 11 0.22 11 0.22
## 2 14.2 19.2 16.7 12 0.24 23 0.46
## 3 19.2 24.2 21.7 16 0.32 39 0.78
## 4 24.2 29.2 26.7 10 0.20 49 0.98
## 5 29.2 34.2 31.7  2 0.04 51 1.02
## 6 34.2 39.2 36.7  4 0.08 55 1.10
## 7 39.2 44.2 41.7  0 0.00 55 1.10

A continuación se presentan los resultados para n=100 y se agregarán 5 datos atípicos.

y(100)
##      a    b    X  f frel   F Frel
## 1  7.8 11.8  9.8  1 0.01   2 0.02
## 2 11.8 15.8 13.8 17 0.17  19 0.19
## 3 15.8 19.8 17.8 27 0.27  47 0.47
## 4 19.8 23.8 21.8 27 0.27  74 0.74
## 5 23.8 27.8 25.8 20 0.20  95 0.95
## 6 27.8 31.8 29.8  6 0.06  99 0.99
## 7 31.8 35.8 33.8  1 0.01 100 1.00
## 8 35.8 39.8 37.8  0 0.00 100 1.00
y.atipico(100,5)

##      a    b    X  f frel   F Frel
## 1  8.3 12.3 10.3  8 0.08   8 0.08
## 2 12.3 16.3 14.3 23 0.23  31 0.31
## 3 16.3 20.3 18.3 25 0.25  58 0.58
## 4 20.3 24.3 22.3 29 0.29  85 0.85
## 5 24.3 28.3 26.3 12 0.12  97 0.97
## 6 28.3 32.3 30.3  3 0.03 100 1.00
## 7 32.3 36.3 34.3  3 0.03 104 1.04
## 8 36.3 40.3 38.3  2 0.02 105 1.05

  1. Análisis

Para facilitar los análisis se crearon las siguientes rutinas que permiten agrupar los histogramas de acuerdo al argumento utilizado en breaks.

#Para comparar los histogramas con Sturges de distintos tamaños
set.seed(18)
N=c(20,30,50, 100)   #Vector que guarda los tamaños de muestra a comparar
par(mfrow=c(2,2))
for(i in 1:length(N)){
n=N[i]
x=round(rnorm(n,20,5),digits=1)
hist(x, probability=TRUE,main="Histograma de diferentes tamaños con Sturges", xlab=n,
ylab="Frecuencia relativa",ylim=c(0,0.09), col="lightyellow")
curve(dnorm(x,20,5),from =min(x),to=max(x),add=T)
}

#Para comparar los histogramas con Scott de distintos tamaños
set.seed(18)
N=c(20,30,50, 100)      #Vector que guarda los tamaños de muestra a comparar
par(mfrow=c(2,2))
for(i in 1:length(N)){
n=N[i]
x=round(rnorm(n,20,5),digits=1)
hist(x, breaks=nclass.scott(x),probability=TRUE,main="Histograma de diferentes tamaños con Scott", xlab=n,
ylab="Frecuencia relativa", ylim=c(0,0.1),col="lightyellow")
curve(dnorm(x,20,5),from =min(x),to=max(x),add=T)
}

#Para comparar los histogramas con Freedman-Diaconis de distintos tamaños
set.seed(18)
N=c(20,30,50, 100)   #Vector que guarda los tamaños de muestra a comparar
par(mfrow=c(2,2))
for(i in 1:length(N)){
n=N[i]
x=round(rnorm(n,20,5),digits=1)
hist(x, breaks=nclass.FD(x),probability=TRUE,main="Histograma de diferentes tamaños con Freedman-Diaconis", xlab=n,
ylab="Frecuencia relativa", ylim=c(0,0.1),col="lightyellow")
curve(dnorm(x,20,5),from =min(x),to=max(x),add=T)
}

Como se puede observar en los gráficos anteriores a medida n crece la distribución de los histogramas tiende a ser más estable para los tres métodos sin embargo se debe tener en cuenta que Sturges es más eficiente para muestrass cuyo tamaño está entre 30 y 200 como bien es conocido.

  1. Interrogantes.

¿Por qué después de aproximadamente 90 años los libros de estadística y profesores de estadística siguen empleando “Sturges” en la actualidad?

Esto es porque el método de Sturges es más sencillo de manipular en comparación con los métodos de Scott y Freedman-Diaconis. Didácticamente el método de Sturges es más fácil de enseñar pues requiere de menor tiempo para calcular el número de clases, lo cual facilita que el estudiante pueda familiarizarce mejor con el procedimiento desde temprana edad. A demás no es necesario hallar por ejemplo la cuasidesviación típica y el rango intercuartílico que se emplean en otros métodos, cuyos procedimientos de calculo resultan más complejos para los estudiantes.

  1. Conclusiones

Se puede decir que para muestras de distintos tamaños el método que muestra una distribución más estable es el de Scott y además es menos sensible a la presencia de datos atípicos. Por lo cual es aconsejable trabajar la construcción de histogramas con este método.

  1. REFERENCIAS BIBLIOGRÁFICAS

  2. Introducción a la Estadística con R José M ª Barrius , Virgilio Gómez, Mª José Haro y Francisco Parreño
  3. USAC FACULTAD DE INGENIERÍA ÁREA DE ESTADÍSTICA Coordinación MANUAL DE ESTADÍSTICA DESCRIPTIVA. Guatemala, noviembre 2011
  4. http://www.monografias.com/trabajos87/distribucion-frecuencias-datos-agrupados-intervalos/distribucion-frecuencias-datos-agrupados-intervalos.shtml#ixzz4ZoRsv3K6
  5. Llinás, H., Rojas, C. Estadística Descriptiva y Distribuciones de Probabilidad. Ediciones Uninorte. Barranquilla, 2009.
  6. Documento: Tema 2 Estadística descriptiva 1 Conceptos y objetivos de la estadística descriptiva.(20119 tomado de: http://www2.ulpgc.es/hege/almacen/download/26/26702/tema2.pdf
  7. Introducción a la estadística computacional usando R, Elmer Rodriguez