miércoles, 27 de enero de 2010

Números aleatorios y la distribución normal

Resumen: Se muestra cómo generar números aleatorios uniformes y no-uniformes, cómo saber si el método para generarlos es realmente bueno, qué es la  distribución normal y cuáles son algunas de sus aplicaciones.

Generadores de números aleatorios

Un generador de números pseudo-aleatorios es un algoritmo que genera una secuencia de números que es una buena aproximación a un conjunto de números aleatorios. Se dice que es una aproximación porque las secuencias son obtenidas por medios deterministas.

Para la Distribución Uniforme

La mayoría de los algoritmos de generadores pseudoaleatorios producen sucesiones que poseen una distribución uniforme según varios tipos de pruebas. Las clases más comunes de estos algoritmos son:
generadores lineales congruentes,
generadores Fibonacci demorados,
desplazamiento de registros con retroalimentación lineal, y
desplazamientos de registros con retroalimentación generalizada.

Entre los desarrollos más recientes de algoritmos pseudoaleatorios se encuentran Blum Blum Shub, Fortuna, y el Mersenne twister.

Para distribuciones no-uniformes

Para estas distribuciones lo que se busca es encontrar un cambio de variable, que concretamente consistirá en buscar una transformación y=f(x) para obtener la distribución deseada. Si la densidad de probabilidad de x es p(x), tenemos:

\[P(X \in x,x+dx) = P(Y\in y, y+dy)\]
\[p(x)dx=w(y)dy\]

Si \( x \in U(0,1)\) la integración de esta ecuación resulta ser
$$\int_0^x dx = \int_{y_{min}}^y w(y')dy'$$

Si sabemos calcular la integral, obtenemos una relación del tipo \(X=g(Y)\), que se tiene que invertir para poder obtener \(Y=f(X)\). Ejemplos:
  1. Para generar números con distribución exponencial  \[ x=\int_0^y \lambda e^{-\lambda y'}dy= 1-e^{-\lambda y'},\]  por lo tanto, el cambio adecuado será $$y=-\frac{1}{\lambda}\ln (1-x).$$
  2. Para obtener numeros con distribución normal \( Y\in N(0,1)\), media 0 y varianza 1, nos queda la siguiente ecuación $$x=\int_{-\infty}^y e^{-y'^2/2}\frac{dy'}{\sqrt{2\pi}}.$$ La integral no se puede resolver analíticamente, y menos aun invertir la relación para obtener \(Y=f(X)\).  La mejor alternativa es aplicar el método polar, el cual es muy sencillo.

Pruebas de Aleatoriedad

Las pruebas de aleatoriedad consisten básicamente en dos tipos principales de pruebas; empíricas y teóricas. Estas pruebas son usadas para determinar que estemos ante un generados de números aleatorios competente.
  • Empíricas. Dentro de las empíricas podemos aplicar diferentes
  1. Test de uniformidad.
  2. Test Serial.
  3. Test de correlaciones.
  • Teóricas. Estas se efectúan sobre toda la secuencia.
  1. en el generados de secuencia lineal al determinar los valores de las constantes a, c y m.
  2. Test espectral: si se forman vectores con k valores consecutivos,
    \[ u_n= (x_n,x_{n+1}, \cdots, x_{n+k}), \]
    estos forman hiperplanos paralelos en el espacio k-dimensional. La separación dk entre los planos tiene que ser la mínima posible.

Distribución Normal

La distribución fue reconocida por primera vez por el francés Abraham de Moivre y más tarde Carl Friedrich Gauss hizo algunos cambios y desarrollo la ecuación de la curva, de ahí que también sea reconocida como "Campana de Gauss".
La distribución esta completamente determinada por dos parámetros: la media y la desviación estándar. La ecuación esta dada por
$$f(x)=\frac{1}{\sigma\sqrt{2\pi}}exp \{\frac{-1}{2}\left( \frac{x-\mu}{\sigma}\right)^2\}, \quad -\infty < x  < \infty$$

donde σ y μ son la media y la desviación estándar respectivamente.

La distribución Normal tiene ciertas propiedades de importancia:
  • Tiene una única moda, que coincide con su media y su mediana.
  • La curva normal es asintótica al eje de abscisas. Por ello, cualquier valor entre -∞\ y + es teóricamente posible. El área total bajo la curva es, por tanto, igual a 1.
  • Es simétrica con respecto a su media μ. Según esto, para este tipo de variables existe una probabilidad de un 50% de observar un dato mayor que la media, y un 50% de observar un dato menor.
  • La distancia entre la línea trazada en la media y el punto de inflexión de la curva es igual a una desviación típica (σ). Cuanto mayor sea σ, más aplanada será la curva de la densidad.
  • El área bajo la curva comprendido entre los valores situados aproximadamente a dos desviaciones estándar de la media es igual a 0.95. En concreto, existe un 95% de posibilidades de observar un valor comprendido en el intervalo (μ-1.96σ, μ+1.96σ).
  • La forma de la campana de Gauss depende de los parámetros μ y σ (Figura 3). La media indica la posición de la campana, de modo que para diferentes valores de μ la gráfica es desplazada a lo largo del eje horizontal. Por otra parte, la desviación estandar determina el grado de apuntamiento de la curva. Cuanto mayor sea el valor de σ , más se dispersarán los datos en torno a la media y la curva será más plana. Un valor pequeño de este parámetro indica, por tanto, una gran probabilidad de obtener datos cercanos al valor medio de la distribución.

Pruebas de Normalidad

Muchos resultados teóricos y prácticos provienen de distribuciones normales, por lo cual es de gran importancia tener pruebas estadísticas de que los datos siguen o no una distribución normal. Existen muchos métodos para analizar la normalidad de datos. Por ejemplo:
  • Prueba de Karl Pearson, basada en la distribución chi cuadrada y que corresponde a una prueba de bondad de ajuste.
  • Prueba de Smirnov Kolmogorov, descansa en los desvíos de la distribución teórica y empírica.
  • Prueba de Cramer-Von Mises, es útil para pequeñas muestras y usa los momentos como criterio.
  • Prueba de Gram-Charlier, usa la distribución de mismo nombre para inferir si la muestra es normal.
  • Prueba de Jarque y Bera, utiliza un estadístico en prueba que involucra la curtosis y la asimetría.
  • Prueba de R.C. Geary, usa los cumulantes muestrales y sus medias y desviaciones estándar.
  • Otras, como la de Shapiro-Wilk y aquéllas basadas en métodos numéricos.
Las pruebas de X² o la de Smirnov son las mas usadas y funcionan con cualquier distribución, sin embargo, la prueba R.C Geary es exclusiva para la distribución uniforme y es muy importante en la teoría de la normalidad por su sencillez, potencia y aplicación.

Aplicaciones de la Distribución Normal.

La distribución Normal es de gran importancia ya que como su nombre lo indica hay muchos fenómenos en los que algunas características siguen un comportamiento común o normal. Algunas de las aplicaciones o ramas donde se presenta algún tipo de distribución normal son:
  • Caracteres morfológicos de individuos (personas, animales, plantas,…) de una especie, por ejemplo: Tallas, pesos, envergaduras, diámetros, perímetros…
  • Caracteres fisiológicos, por ejemplo; efecto de una misma dosis de un fármaco, o de una misma cantidad de abono.
  • Caracteres sociológicos, por ejemplo: consumo de cierto producto por un mismo grupo de individuos, puntuaciones de examen.
  • Caracteres psicológicos, por ejemplo: cociente intelectual, grado de adaptación a un medio, etc.
  • Errores cometidos al medir ciertas magnitudes.
  • Valores estadísticos maestrales, por ejemplo: la media.
  • Otras distribuciones como la binomial o la de Poisson son aproximaciones normales.

Otras distribuciones de probabilidad

Para todos aquellos que programan en C++. La librería Boost contiene todas las distribuciones ya implementadas y listas para su uso. Dicha librería puede ser descargada de forma gratuita. A continuación se listan las distribuciones de números aleatorios más conocidas. Las ligas correspondientes muestran una descripción e implementación de la distribución que puede ser de gran ayuda.


Bernoulli Distribution
Beta Distribution
Binomial Distribution
Cauchy-Lorentz Distribution
Chi Squared Distribution
Exponential Distribution
Extreme Value Distribution
F Distribution
Gamma (and Erlang) Distribution
Hypergeometric Distribution
Laplace Distribution
Logistic Distribution
Log Normal Distribution
Negative Binomial Distribution
Noncentral Beta Distribution
Noncentral Chi-Squared Distribution
Noncentral F Distribution
Noncentral T Distribution
Normal (Gaussian) Distribution
Pareto Distribution
Poisson Distribution
Rayleigh Distribution
Students t Distribution
Triangular Distribution
Weibull Distribution
Uniform Distribution

En la siguiente pagina se puede encontrar un tutorial sobre como usar las distribuciones, así como algunos ejemplos en los que han sido usadas y la descripción de cada distribución.

Statistical Distributions and Functions
Non-Member Properties
Boost Worked Examples



No hay comentarios:

Publicar un comentario