sábado, 21 de julio de 2012

Distribuciones Aleatorias con Python: Parte I

Es bien sabido que python posee una poderosa librería para generar números y distribuciones aleatorias. En este post explicaremos como generar números que siguen una distribución uniforme, una distribución gaussiana o normal y una distribución de pareto.

Adicionalmente, utilizaremos parte de lo aprendido en el post:


para graficar los histogramas de los datos generados.

Necesitaremos tener instalada la librería matplotlib, y utilizaremos adicionalmente la librería random que biene por defecto con python.

Pasamos entonces a mirar el código que nos permitirá hacer todo lo comentado anteriormente:

# -*- coding: utf-8 -*-
"""
Creado por: Alejandro J. Alvarez S.
19 de Junio de 2012
"""

import random as r
from matplotlib.pylab import hist, show, figure
uniforme=[] # Distribución uniforme entre 0 y 1
gaussiana=[] # Distribución Gaussiana, con centro 0 y desviación estándar 1
pareto=[] # Distribución de pareto, con parametro de forma alpha=3/2

numiter=100000
bins=100

for i in range(numiter):
uniforme.append(r.uniform(0,1))
gaussiana.append(r.gauss(0,1))
pareto.append(r.paretovariate(2.5))

figure()
h1=hist(uniforme,bins)

figure()
h2=hist(gaussiana,bins)

figure()
h3=hist(pareto,bins,(0,10))

show()

Observese que se crearon tres listas para guardar los numeros que siguen los tres tipos de distribuciones que deseamos simular. numiter es el número de iterados y bins, es el numero de partes en las que dividiremos el espacio muestral. Finalmente se crean tres figuras a partir de la data generada con el comando hist. por último, utilizamos la instrucción show() para mostrar en pantalla cada una de las figuras.

El resultado final es el siguiente:



Espero que este post les sea de utilidad.

Si te ha gustado este artículo, compártelo en facebook, twitter, google+, coméntalo, envíalo por correo, y si quieres mas información, pídela. Si no te gusta, critícalo. Tu tienes completo control sobre los contenidos de este blog.