jueves, 10 de mayo de 2012

Reporte # 3

Reporte # 3


Pruebas estadísticas para los Números Pseudoaleatorios

Esta tarea consiste en a través de investigación en línea, elige una librería de generación de números Pseudoaleatorios y pruebas estadísticas. Implementa a base de esto un programa (máx. 5 puntos) para determinar a) si los números generados de acoplan a la distribución indicada y b) si se puede considerar que los números generados presentan características deseables de "números aleatorios". Reporta los resultados junto con los mecanismos que seleccionaste (máx. 5 puntos).

Tiene dos objetivos principales determinar si los números aleatorios generados se acoplan a la distribución indicada y considerar sí los números generados presentan las características de "números aleatorios".

A continuación indico las herramientas utilizadas para hacer esto:

Lenguaje de Programación: Octave.

Distribución Elegida: Distribución Gamma, en Octave la encuentras como gamrnd().

Lenguaje Encargado de Graficar los resultados: Gnuplot.

Prueba elegida para ver si los números presentan caracteristicas de números aleatorios: Prueba de Frecuencia de Bloques.


Continuando

Determinar si los números aleatorios generados se acoplan a la distribución indicada.

Primeramente la sintaxis que maneja esta Distribución.



gamrnd (a, b, sz)

Los primeros dos valores son los parámetros que podra usar el código (para nuestro problema seria 1, el valor a proporcionarle), y el ultimo es el tamaño del arreglo (para generar arreglos apartir de 2 x 2 incluir en sz el 2 o el numero deseado).

Para saber que numeros darle habrá que ver como queremos que quede la gráfica para esto habría que observar gráficas ya definas y de ahí solo tomar los que vallamos a usar.


En base a lo anterior los valores que usare sera k = 9 y Theta = 0.5, por ende me quedaría una gráfica parecida a la negra.

Y cuya función de densidad esta dada por la siguiente formula.


Comenzando con el Primer Punto

Determinar si los números aleatorios generados se acoplan a la distribución indicada.

A continuación muestro el código hecho en Octave.


Este código solamente genera una cantidad (definida por el usuario) de números aleatorios y los guarda en un archivo .dat, se recomienda generar miles de números para que la gráfica quede lo mas exacta posible.


                               

El siguiente paso sera el generar la imagen y compararla con la de la distribución.

Para hacer esto hacemos uso de Gnuplot y del Siguiente Código.

En este código se compara dos cosas, los valores del archivo .dat y de la formula densidad de la distribución.
                                

Como logran observar la gráfica, lo figura en rojo es la generada con la formula y el histograma es de los valores del archivo.

Con esto determinamos que estos números generados si acoplan o pertenecen a esta Distribución.


¿Considerar sí los números generados presentan las características de "números aleatorios"?

Para finalizar esta entrada hay que verificar que los números generados anteriormente, realmente sean aleatorios (tengan propiedad).


Primeramente la prueba que utilizaremos es la de frecuencia por bloques, que nos dice que trata de verificar que la cantidad de ceros y unos por bloque de un arreglo total de números sea pareja.


Donde la cantidad de bloques N esta dado por n/m, donde n es el número de elementos, y m la cantidad de elementos por bloque.


A continuación el código y la imagen donde se demuestre que se esta usando la Prueba y los resultados.





Bibliografías

http://www.network-theory.co.uk/docs/octave3/octave_236.html
http://www.duke.edu/~hpgavin/gnuplot.html
http://es.wikipedia.org/wiki/Distribuci%C3%B3n_gamma

http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests.html

1 comentario:

  1. Bien; te pongo los puntos completos con los castigos de retraso pertinentes.

    ResponderEliminar