|
Histogramas con lenguaje R
Publicado el: 06-03-2008 @ 07:38 pm
Posiblemente, muchos de ustedes habrán oido hablar de las distribuciones "normales" de datos; sobre todo si han tomado un curso o han visto en alguna materia algo de estadística. Sin embargo, no son los únicos tipos de distribuciones que existen. Por ejemplo, yo tenía 476 valores de precipitación para el mes de julio, en mm de lámina, correspondientes a una estación climatológica y quería saber como lucia su distribución. Será cierto eso de que se ajustan a una distribución normal asimétrica. Para mayor "facilidad" en la visualización y representación, los 476 valores pueden desplegarse en una matriz de 28x17. Aquí están los valores: 2.2 0.9 1.9 0.1 2.2 8.3 7.1 0.1 0.3 0.3 23.3 25.1 6.6 17.1 11.4 1.4 0.2 1.1 6.9 0.4 19.0 0.6 0.4 13.8 0.1 1.6 8.7 13.4 7.8 3.7 3.8 21.5 24.8 27.2 2.6 5.2 0.4 11.5 18.4 0.6 10.3 0.2 0.3 0.2 1.1 15.7 10.1 0.3 8.0 5.0 1.8 0.3 6.7 6.8 7.0 3.8 1.1 5.2 13.7 1.9 50.4 1.8 1.7 14.6 4.0 6.2 56.1 7.0 1.3 7.9 0.2 6.9 1.2 1.8 2.9 4.5 5.5 1.8 23.0 3.0 20.2 19.9 1.1 6.8 5.0 0.5 1.5 1.1 22.2 2.1 1.2 1.8 3.8 18.1 10.9 0.4 4.9 4.9 0.4 16.2 30.9 86.2 3.3 40.6 0.3 57.0 2.1 15.6 13.9 4.2 1.7 5.7 11.5 3.5 9.7 0.2 37.1 9.2 0.6 18.7 4.0 0.6 3.8 15.4 19.4 2.9 9.9 15.0 2.7 0.4 2.3 1.1 0.2 3.3 33.4 0.8 7.9 0.2 30.6 2.1 3.3 10.5 1.6 7.3 0.7 2.1 50.4 1.2 0.4 16.7 24.3 1.2 3.0 0.5 9.2 16.7 4.9 20.4 4.2 0.1 2.0 0.6 0.2 21.8 0.6 0.4 0.5 9.5 60.9 4.0 12.8 0.8 11.0 6.6 4.8 12.0 0.2 4.4 0.3 4.9 3.6 46.8 0.4 8.5 4.9 4.4 17.1 21.5 2.7 5.0 0.2 11.5 2.5 1.3 7.5 3.1 12.1 2.2 3.0 2.2 21.3 3.5 9.5 7.0 13.8 1.8 37.5 0.2 0.4 0.5 1.6 2.7 0.2 2.1 2.2 6.8 1.5 4.6 0.3 2.6 12.3 2.4 0.8 13.0 15.5 38.3 9.5 0.1 0.2 7.3 1.6 14.7 3.0 10.6 8.8 0.2 15.9 9.7 43.0 4.7 0.7 4.0 2.1 6.5 5.0 6.1 1.4 25.5 9.8 1.9 2.7 0.3 5.7 41.6 1.5 7.8 0.7 1.5 0.3 10.5 6.0 10.7 0.8 8.5 16.2 28.3 22.4 3.5 7.7 0.8 2.2 1.2 15.4 8.1 1.8 34.8 4.8 4.4 12.3 26.0 2.9 5.5 4.9 10.1 1.6 27.1 2.0 0.5 9.9 0.9 23.7 4.3 0.5 1.3 29.9 0.4 0.7 2.5 1.6 9.8 0.2 4.1 13.5 7.3 0.4 10.0 0.7 2.6 4.2 3.0 1.3 1.2 5.0 2.6 3.9 0.6 0.4 0.6 14.8 3.8 7.0 13.4 3.5 1.6 19.9 4.0 12.0 0.2 1.3 3.7 1.4 6.4 0.4 1.0 2.4 20.0 11.1 0.2 1.4 5.0 2.6 0.1 11.3 18.5 0.2 0.4 6.4 5.5 6.0 1.3 7.6 0.3 7.6 3.8 1.9 25.4 0.6 0.1 23.8 3.6 1.1 6.2 0.9 1.0 13.1 10.0 13.1 1.2 5.2 0.3 17.2 2.1 14.7 1.5 2.9 0.8 2.7 29.2 15.0 6.1 38.2 34.6 12.0 0.5 9.6 1.3 17.4 2.6 2.4 3.2 0.9 6.5 6.3 21.9 8.4 12.1 7.2 0.2 25.5 8.0 0.2 8.0 3.3 0.8 8.6 4.1 3.0 9.2 4.5 6.1 44.6 130.7 0.4 31.0 6.8 7.8 2.9 6.8 13.1 0.2 1.2 3.7 13.5 4.5 0.2 7.5 4.4 0.9 7.2 8.5 32.3 0.6 55.2 27.4 22.3 3.7 0.4 2.3 2.2 22.8 0.6 1.0 0.1 7.2 0.5 2.1 0.4 7.3 0.5 4.0 1.1 19.6 29.0 1.1 10.3 7.7 2.1 0.8 1.1 7.3 13.2 1.8 1.6 2.3 5.1 1.4 1.9 1.7 0.5 3.6 9.8 6.2 25.1 2.6 2.8 3.8
Aunque la matriz no se observa de la mejor manera posible porque los valores individuales no presentan el mismo número de cifras significativas, lo cierto es que en realidad los valores los tenía reservados como un vector de 476 valores (julio.in). Para cargarlo en el interprete de R: jul<- read.table("julio.in")
para extraer la porción que me interesa para desplegar el histograma: julio<- jul[,1] Para producir el histograma: hist (julio, main="Histograma de la variable Julio", xlab="variable julio", ylab="Frecuencias", breaks=19, col="green", border="red")
cuya imagen es la siguiente: 
donde se observa claramente la asimetría positiva. Para verificar intuitivamente si se ajusta a una distribución normal asimétrica podríamos usar la fórmula de Fiering que describe matemáticamente ese tipo de distribución: X = (2/SKEW)*(((SKEW/6)*(x-(SKEW/6))+1)³-1)*DESVEST+MEDIA
donde X, SKEW, x, DESVEST y MEDIA representan, respectivamente, la variable individual, la asimetría de la serie de datos diarios, un número aleatorio (media cero varianza uno), la desviación estándar de los datos diarios y la media de los valores diarios. A partir de los 476 valores anteriores (matriz 28x17) se puede encontrar que SKEW = 3,97, DESVEST = 12,22 y MEDIA = 8,32. Ahora sólo nos toca generar 476 números aleatorios, determinar el valor de X para cada uno de ellos y representar los datos mediante un histograma para observar como se distribuyen. Por tanto: SKEW<-3.97
DESVEST<-12.22
MEDIA<-8.32
x<- rnorm(476)
for(i in 1:476){ X[i]<-(2/SKEW)*(((SKEW/6)*(x[i]-(SKEW/6))+1)^3-1)*DESVEST+MEDIA; if(X[i] < 0) X[i] = 0.1}
hist (X, main="Histograma de la variable Julio", xlab="variable julio", ylab="Frecuencias", breaks=29, col="green", border="red")
La imagen resultante: 
refleja, fuera de cualquier otro análisis al respecto, que la distribución normal asimétrica parece adecuada para representar este tipo de variable.
Ultima actualización el 06-07-2008 @ 07:06 pm
|