Proyecto 2

19
ESCUELA POLITÉCNICA DEL EJÉRCITO INGENIERÍA ELECTRÓNICA REDES Y COMUNICACIÓN DE DATOS Proyecto I: Distribuciones Continuas y Procesos Estocásticos DANNY TABAREZ 27 mayo de 2011

Transcript of Proyecto 2

Page 1: Proyecto 2

ESCUELA POLITÉCNICA DEL EJÉRCITO

INGENIERÍA ELECTRÓNICA REDES Y

COMUNICACIÓN DE DATOS

Proyecto I: Distribuciones Continuas y Procesos

Estocásticos

DANNY TABAREZ

27 mayo de 2011

Page 2: Proyecto 2

Proyecto 2: Distribuciones Continuas y Procesos Estocásticos

1. Introducción El siguiente conjunto de actividades tienen por objetivo aplicar los conceptos estudiados sobre distribuciones continuas y cadenas de Markov en el modelaje de sistemas reales a través de Octave/MatLab.

2. Distribuciones Continuas En esta primera parte, usaremos la distribución exponencial para modelar el patrón de disparo de una neurona. Esto requiere consultar y familiarizarse con la distribución de probabilidad exponencial.

2.1. Confirmando el Modelo Bajo ciertas condiciones de laboratorio, una neurona tiene una tasa media de disparo de 10 Hz en otras palabras, la neurona se dispara en media una vez a cada 0.1 segundos. Se dice que T es una variable aleatoria que mide la brecha entre tiempos de disparo sucesivos. Datos de estos tiempos de disparo de una neurona han sido colectados en laboratorio. Estos datos serán usados para verificar que la distribución exponencial es un buen modelo para la variable aleatoria T. Cargue el vector “firingData” a partir del archivo proj2a.mat. Este vector contiene 1000 registros de Intervalos entre tiempos de disparo sucesivos, i.e., muestras de T.

1. Escriba la función densidad de probabilidad de T, asumiendo que tiene una distribución exponencial.

Asumiendo que la taza es ajustable a la distribución exponencial que nos permite mostrar la variación entre la sucesión de los diferentes eventos. Tenemos la siguiente fórmula para realizar el ajuste del vector de registros donde se encuentran los resultados el experimento.

( )* + Y en el caso contrario, los calores inferiores a 0 el valor que toma es 0 Asumiendo el proceso y el vector que vamos a usar

( )* +

Page 3: Proyecto 2

Usando la fórmula para la distribución exponencial en el cual observaremos la tendencia. Aplicando esto a Matlab ya con el vector cargado modelamos de la siguiente manera usando un script

*el valor de corresponde al valor de 10Hz de taza entregada como dato.

Page 4: Proyecto 2

Para visualizarlo de mejor forma,

2. Dado que sabemos que la tasa media de disparo es 10 Hz, cual es la mejor selección del parámetro del modelo de distribución exponencial?

Como podemos observar en el grafico anterior, se tiene una dispersión aunque es relativamente alta para el valor esperado de 0.1 segundos en disparo, todavía es necesario hacer corrección para que el porcentaje se a más alto en este

Page 5: Proyecto 2
Page 6: Proyecto 2

En este primer análisis se diría que con valores superiores a 10Hz se determina valores de respuesta más cercanos al valor esperado Mejor Lambda=10Hz.

Page 7: Proyecto 2

3. Genere un histograma de probabilidad como descrito abajo

4. En el mismo gráfico, dibuje la función densidad de probabilidad de la distribución exponencial con los parámetros seleccionados en (2) (utilice la función fplot de Octave/MatLab). Cuan bien encajan los datos experimentales en esta curva?

Page 8: Proyecto 2
Page 9: Proyecto 2

En definitiva el lambda que mejor se ajusta al análisis del histograma de probabilidades es el de

Código:

Información adicional: Para generar un histograma que refleje la densidad de probabilidad del muestreo de datos de disparo, se pueden usar las sentencias Octave/MatLab: >> n = histc(firingData; 0 : 0;025 : 1); >> bar(0 : 0;025 : 1; n=(1000 _ 0;025);0 histc0) La primera línea divide las muestras en `bins', cada uno de amplitud 0.025, y produce la variable n de cuantas muestras están en cada bin. La segunda línea calcula la probabilidad de cada bin, dividiendo la cuenta por el total de muestras (1000) y el ancho del bin, y dibuja el resultado como un gráfico de barras.

Page 10: Proyecto 2

2.2. Usando el Modelo Use el modelo exponencial para calcular: La función de distribución exponencial:

Esta fórmula calcula directamente el área bajo la curca desde 0 hasta el valor indicado, sabiendo esto se procede a los siguientes literales:

1. p(T <=0.15) Para el primer caso se evalúa en 0.15

Donde se obtiene

Page 11: Proyecto 2

2. p(T > 0.1) En este caso el valor seria desde el punto 0.1 en adelante, lo miso que restar los valores anteriores a 0.1 y restarlos de la unidad.

( ) ( )

Dónde:

Page 12: Proyecto 2

3. p(T > 0.15 |T > 0.05). Esta es la probabilidad que la neurona espere más de 0.15s antes de dispararse, dado que se ha observado que ya ha esperado 0.05s.

( | ) ( )

Dónde:

4. Puede explicar la conexión entre sus 2 ultimas respuestas?

Estas dos relaciones son las mismas, dado que al analizar el anterior literal, se llegó a una conclusión de un proceso sin memoria, al analizar la probabilidad condicional la única relación que se obtiene es que la probabilidad que el disparo dure 0.15 s dado que lleva 0.05 es lo mismo que decir que tan solo dure 0.1 segundos más.

Page 13: Proyecto 2

3. Modelos Probabilísticos En esta segunda parte, estudiaremos la distribución de las letras (caracteres alfabéticos) en el idioma Inglés. Datos de la ocurrencia de cada letra han sido obtenidos del diccionario encontrado en /usr/share/dict/words bajo Linux (usando solo las palabras que no contienen numerales). Estos datos serán usados para crear dos modelos probabilísticos. Cargue el archivo proj2b.mat en Octave/MatLab. Esto crea las siguientes variables:

1. chars, un arreglo conteniendo todas las letras en orden y un 27o símbolo <b>, significando la separación entre palabras - este debe ser tratado como cualquier otro carácter.

2. unigram counts, un vector conteniendo el número de ocurrencias de cada letra en el diccionario. Por ejemplo, unigram counts(1) es el número de veces que `a' ocurre en el diccionario.

3. bigram counts, una matriz conteniendo el número de veces que el par de letras aparecen como adyacentes en el diccionario. Por ejemplo, bigram counts(1; 2) es el número de veces que `a' es seguida por `b' en el diccionario.

3.1. Análisis 1. En Octave/MatLab, liste las letras ordenadas por cuan frecuentemente ellas ocurren en el

diccionario.

Estos son los valores de las bases de datos.

Page 14: Proyecto 2

Al ordenar estos caracteres tenemos:

Visualizando de otra manera la distribucion de las variables aleatorias idependientes. En el grafico de barras.

clc

chars; unigram_counts; for i=1:27 matriz(i)=…

unigram_counts(i,1); caracteres(i)=chars(i,1); end

for i=1:27 for j=1:i

if(matriz(i) < matriz(j)) buffer = matriz(j); buffer2=caracteres(j);

matriz(j) = matriz(i); caracteres(j)=…

caracteres(i);

matriz(i) = buffer; caracteres(i)=buffer2; end end end

for i=1:27 matriz2(i,1)=matriz(i); caracteres2(i,1)=…

caracteres(i); end

matriz2 caracteres2 bar(matriz2)

codigo del script de generacion de

los vectores que contienen los

caracteres y la frecuencia de cada

uno de ellos, metodos usados:

Burbuja Mejorada como algoritmo

principal, para ordenar los datos.

Page 15: Proyecto 2

2. ¿Cuál es el tamaño medio de una palabra en el diccionario? Cargando el diccionario a un programa editor de texto, podemos visualizar claramente con el uso del Word

Estos nos indican una media de palabras de entre 8.44==8 caracteres.

3. Calcule la probabilidad de observar cada letra (incluyendo separaciones), asumiendo que las letras sucesivas en una palabra son independientes.

Usando la dispersión del primer literal, podemos llegar a la probabilidad de aparición de cada letra, asumiendo

Page 16: Proyecto 2

3.2. Modelos de Bigramas Las probabilidades en la sección anterior constituyen un modelo del lenguaje basado en unigramas. Ahora crearemos un modelo del lenguaje basado en bigramas. Ello hace la suposición de Markov { la Probabilidad de una letra depende de la letra precedente, pero dada la letra precedente, es independiente de todas las otras letras.

1. Use los datos en bigram counts para calcular el conjunto completo de probabilidades de bigramas para las letras, p(Li|Li-1), donde Li es cualquier letra y Li-1 es la letra precedente.

Contando la matriz de probabilidades. Que nos da todas las probabilidades posibles de las combinaciones.

Page 17: Proyecto 2

clc bigram_counts; matPro=bigram_counts;

for i=1:27 aux=0; for j=1:27 aux=aux+matPro(i,j); end

for j=1:27 matPro(i,j)=matPro(i,j)/aux; end end

matPro

Page 18: Proyecto 2

2. Use el modelo original de unigrama para calcular la probabilidad de observar la palabra `enjoyment', y de observar la palabra inexistente `eejmnnoty' (es útil trabajar usando bitácoras).

La probabilidad de obtener la palabra enjoyment y eejmnnoty

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

( ) Que es la misma probabilidad ya que al ser un análisis de variables independientes, se obtiene el mismo resultado para las dos palabras ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

( ) Solo es necesario multiplicar la probabilidad individual de cada una de las letras obtenidas de unigrams , la probabilidad es la misma dado que el valor es independiente. Y las dos palabras son las mismas, la única diferencia es que están desordenadas.

%% clc matriz=unigram_counts; aux=0; for i=1:27 aux=aux+matriz(i); end for i=1:27

matriz(i)=matriz(i)/aux; end matriz

%e %n %j %o %y %m %e %n %t enjoyment=matriz(5)*matr

iz(14)*matriz(10)*matriz

(15)*matriz(25)*...

matriz(13)*matriz(5)*mat

riz(14)*matriz(20); eejmnnoty=matriz(5)*matr

iz(5)*matriz(10)*matriz(

13)*matriz(14)*...

matriz(14)*matriz(15)*ma

triz(20)*matriz(25);

enjoyment eejmnnoty

Page 19: Proyecto 2

3. Ahora use el modelo de bigramas para calcular las probabilidades anteriores. Comente sobre sus resultados.

La probabilidad de obtener la palabra enjoyment y eejmnnoty:

Estas probabilidades son obtenidas del arreglo de bigramas, donde se considera cada probabilidad como la probabilidad anterior, excepto en la primera letra ‘e’ que se saca del unigrama del literal anterior. ( ) ( | ) ( | ) ( | ) ( | ) ( | ) ( | )

( | ) ( | ) ( ) ( | ) ( | ) ( | ) ( | ) ( | ) ( | )

( | ) ( | ) Estas probabilidades condicionales cambian su probabilidad por la consecuencia del evento anterior, esta probabilidad varia. Y esto con respecto a las probabilidades del literal anteriores es son relaciones diferentes por el concepto de dependencia e independencia.

4. Entregables Informe conteniendo todas las respuestas a los ejercicios e interrogantes planteados, incluyendo los listados completos de los códigos Octave/MatLab usados por los modelos.

%% enjoyment; eejmnnoty;

enjoyment=matriz(5)*matP

ro(5,14)*matPro(14,10)*m

atPro(10,15)...

*matPro(15,25)*matPro(25

,13)*matPro(13,5)*matPro

(5,14)... *matPro(14,20)

eejmnnoty=matriz(5)*matP

ro(5,5)*matPro(5,10)*mat

Pro(10,13)...

*matPro(13,14)*matPro(14

,14)*matPro(14,15)*matPr

o(15,20)... *matPro(20,25)

enjoyment eejmnnoty