You are on page 1of 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
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


( )* +
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.


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
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.
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?
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.
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
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:
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.
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 27 o 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.


Al ordenar estos caracteres tenemos: 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)
Visualizando de otra manera la distribucion de las
variables aleatorias idependientes. En el grafico de
barras.
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.
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
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.
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
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). %%
clc
La probabilidad de obtener la palabra enjoyment y matriz=unigram_counts;
eejmnnoty 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
Que es la misma probabilidad ya que al ser un análisis de %n
variables independientes, se obtiene el mismo resultado %t
para las dos palabras 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
Solo es necesario multiplicar la probabilidad individual de triz(20)*matriz(25);
cada una de las letras obtenidas de unigrams , la
probabilidad es la misma dado que el valor es enjoyment
independiente. Y las dos palabras son las mismas, la única eejmnnoty
diferencia es que están desordenadas.
3. Ahora use el modelo de bigramas para
calcular las probabilidades anteriores.
Comente sobre sus resultados.

%%
La probabilidad de obtener la palabra enjoyment y enjoyment;
eejmnnoty: 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
Estas probabilidades son obtenidas del arreglo de
ro(5,5)*matPro(5,10)*mat
bigramas, donde se considera cada probabilidad como la
Pro(10,13)...
probabilidad anterior, excepto en la primera letra ‘e’ que
se saca del unigrama del literal anterior. *matPro(13,14)*matPro(14
,14)*matPro(14,15)*matPr
( ) ( | ) (| ) ( |) ( | ) ( | ) ( | ) o(15,20)...
( | ) ( | ) *matPro(20,25)

( ) ( | ) (| ) ( |) ( | ) ( | ) ( | ) enjoyment
( | ) ( | ) eejmnnoty

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.

You might also like