El siguiente documento desarrolla las estadísticas sobre recursos hídricos, orientado en los códigos de Phyton. La teoría proviene del Capítulo 1 de Statistical Methods in Water Resources Techniques of Water Resources Investigations (Hesel, 2002). Los scripts están escritos en Python con la interfase IPython.
Medidas de Ubicación
Medida clásica – la media
La media (X) se calcula como la suma de todos los valores de datos (Xi), dividido por el tamaño de la muestra. Aquellos datos que se encuentren a mayor distancia del centro ejercen una fuerza hacia abajo que los más cercanos al centro. Si se elimina un punto cerca del centro, el punto de equilibrio sólo necesitará un pequeño ajuste para mantener el conjunto de datos en equilibrio. Pero si se suprimiera un valor de los valores límite, el punto de equilibrio se desplazaría de manera dramática. La media no es una medida "resistente" de ubicación.
Medida resistente - la Mediana
La mediana o percentil 50 ó P0.50, es el valor central de la distribución cuando los datos se clasifican por orden de magnitud. La mediana es sólo mínimamente afectada por la magnitud de una sola observación. La resistencia al efecto del cambio en un valor o a la presencia de observaciones periféricas es a menudo una propiedad deseable.
Ejemplo:
In[]: import numpy as np a = np.array([2,4,8,9,11,11,12]) b = np.array([2,4,8,9,11,11,120]) print "La media arimetrica del set a es: ", np.mean(a) print "La media arimetrica del set b es: ", np.mean(b) print "Pero" print "El valor medio del set a es: ", np.median(a) print "El valor medio del set b es: ", np.median(b) Out[]: La media arimetrica del set a es:8.14285714286 La media arimetrica del set b es:23.5714285714 Pero El valor medio del set a es:9.0 El valor medio del set b es:9.0
Otras medidas de Ubicación
Otras tres medidas de tendencia que se utilizan con menor frecuencia son: el moda, la media geométrica, la media armónica y la media truncada.
Moda
Es el valor que tiene la barra más alta en un histograma. Es mucho más aplicable para datos agrupados, datos que se registran únicamente de la manera en que llegan a un número finito de categorías, a diferencia de los datos continuos. Es muy fácil de obtener, sin embargo, es una pobre medida de ubicación para datos continuos, ya que su valor depende a menudo de la agrupación arbitraria de esos datos.
Ejemplo:
In[]: import numpy as np import scipy.stats a = np.array([1,2,3,1,2,1,1,1,3,2,2,1]) b = (3,4,5,6,7,8,5,5,6,2,3,1,2,5,5,1,3,2,2,1) print "La moda del set a es: ", scipy.stats.mode(a) print "La moda del set b es: ", scipy.stats.mode(b) #Sino quisieramos ver los parentesis tendriamos que hacer este script print "La moda del set a es: ", scipy.stats.mode(a)[0][0], "y se repite",scipy.stats.mode(a)[1][0] ,"veces" print "La moda del set b es: ", scipy.stats.mode(b)[0][0], "y se repite",scipy.stats.mode(a)[1][0] ,"veces" Out[]: La moda del set a es:(array([ 1.]), array([ 6.])) La moda del set b es:(array([ 5.]), array([ 5.])) La moda del set a es:1.0 y se repite 6.0 veces La moda del set b es:5.0 y se repite 6.0 veces
Media Geométrica
La media geométrica (GM) con frecuencia se reporta para un conjuntos de datos positivamente sesgados. GM es la media de los logaritmos, transforma de nuevo a sus unidades originales.
GM = exp (Meany), donde Yi = ln (Xi) ... eq 1,5
Media armónica
Calcula la media armónica a lo largo del eje especificado.
Esto es: n / (1/x1 + 1/x2 + ... + 1/xn)
Media truncada
El compromiso entre la mediana y la media está reflejado por la media truncada de las observaciones de menor a mayor valor y el cálculo de la media de lo que queda.
Estos estimadores son llamados "medias truncadas" y cualquier porcentaje deseable de datos puede ser recortado. El recorte más común es eliminar el 25 por ciento de los datos en cada extremo.
Ejemplo:
In[]: import numpy as np import scipy.stats #inicializamos el diccionario datos = {} #abrimos el archivo con los datos y poblamos el diccionario precipfile = open("C:\\Users\\Saul\\Dropbox\\Curso_19_Python_en_ Hidrologia\\1_Doc\\AuxFiles\\Ejercicio_Media_Geometrica.txt",'r') for precipline in precipfile: (clave,valor) = precipline.split() datos[clave] = valor print datos #borramos el encabezado y generamos un array de numpy con los datos de precipitacion del datos['Year'] print datos ppt = np.array([float(v) for k,v in datos.iteritems()]) print ppt #calculamos la media geometrica mediageom = scipy.stats.mstats.gmean(ppt) print "La media geométrica es =", mediageom #calculamos la media armónica mediaarmo = scipy.stats.mstats.hmean(ppt) print "La media armónica es =", mediaarmo #calculamos la media media = scipy.stats.cmedian(ppt,numbins=1000) print "La media =", media #calculamos los percentile 25% y 75% y hallamos la media recortada liminf = scipy.stats.scoreatpercentile(ppt,25) limsup = scipy.stats.scoreatpercentile(ppt,75) print "El 25% percentil es =", liminf, "y el 75% percentil es =", limsup trimean = scipy.stats.mstats.tmean(ppt,(108.2,136.025)) print "La media recortada es =", trimean Out[]: {'1991': '105.5', '1990': '136.7', '1993': '205.7', '1992': '109.1', '1995': '124', '1994': '169.8', '1997': '110', '1996': '114.1', '1999': '111', '1998': '109.1', '2005': '98.1', '1988': '132.3', '1989': '135.8', '2002': '151.4', '2003': '164.2', '2000': '104.9', '2001': '133.2', '2006': '96.2', '2007': '99.1', '2004': '130.2', 'Year': 'Ppt_mm'} {'1991': '105.5', '1990': '136.7', '1993': '205.7', '1992': '109.1', '1995': '124', '1994': '169.8', '1997': '110', '1996': '114.1', '1999': '111', '1998': '109.1', '2005': '98.1', '1988': '132.3', '1989': '135.8', '2002': '151.4', '2003': '164.2', '2000': '104.9', '2001': '133.2', '2006': '96.2', '2007': '99.1', '2004': '130.2'} [ 105.5136.7205.7109.1124. 169.8110. 114.1111. 109.1 98.1132.3135.8151.4164.2104.9133.2 96.2 99.1130.2] La media geométrica es = 124.394628085 La media armónica es = 122.082926002 La media = 114.121171171 El 25% percentil es = 108.2 y el 75% percentil es = 136.025 La media recortada es = 120.88
Referencias
Helsel, D.R. y R. M. Hirsch, 2002. Statistical Methods in Water Resources Techniques of Water Resources Investigations, Tomo 4, Capítulo A3. U.S. Geological Survey. 522 páginas.
Download the required data for this exercise here.